diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-02-05 16:00:18 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-02-05 18:34:40 +0100 |
commit | b8d079de7749ed6eb9c26f1f902eab1515be7865 (patch) | |
tree | 3ac19621d5a6d6fb2d9d62a15c0a4152f290ed42 /src/lib/corelib/language/evaluator.cpp | |
parent | 95ef6ebf845797df4c0a6753e970cf435d99b16c (diff) |
centralize pointer-to-scriptvalue-attachment
Introduce attachPointerTo and attachedPointer
functions in scripttools.h.
Change-Id: I15ad41a51820035d621320b0a76978c7da0b75ed
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'src/lib/corelib/language/evaluator.cpp')
-rw-r--r-- | src/lib/corelib/language/evaluator.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lib/corelib/language/evaluator.cpp b/src/lib/corelib/language/evaluator.cpp index 29b3837fd..43778086d 100644 --- a/src/lib/corelib/language/evaluator.cpp +++ b/src/lib/corelib/language/evaluator.cpp @@ -36,6 +36,7 @@ #include <jsextensions/jsextensions.h> #include <logging/translator.h> #include <tools/error.h> +#include <tools/scripttools.h> #include <tools/qbsassert.h> #include <QDebug> #include <QScriptEngine> @@ -54,7 +55,7 @@ Evaluator::~Evaluator() { QHash<const Item *, QScriptValue>::iterator it = m_scriptValueMap.begin(); for (; it != m_scriptValueMap.end(); ++it) { - EvaluationData *data = EvaluationData::get(*it); + EvaluationData *data = attachedPointer<EvaluationData>(*it); if (data) { if (data->item) data->item->setPropertyObserver(0); @@ -167,20 +168,20 @@ QScriptValue Evaluator::scriptValue(const Item *item) edata->item->setPropertyObserver(this); scriptValue = m_scriptEngine->newObject(m_scriptClass); - edata->attachTo(scriptValue); + attachPointerTo(scriptValue, edata); return scriptValue; } void Evaluator::onItemPropertyChanged(Item *item) { - EvaluationData *data = EvaluationData::get(m_scriptValueMap.value(item)); + EvaluationData *data = attachedPointer<EvaluationData>(m_scriptValueMap.value(item)); if (data) data->valueCache.clear(); } void Evaluator::onItemDestroyed(Item *item) { - delete EvaluationData::get(m_scriptValueMap.value(item)); + delete attachedPointer<EvaluationData>(m_scriptValueMap.value(item)); m_scriptValueMap.remove(item); } |