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/tools | |
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/tools')
-rw-r--r-- | src/lib/corelib/tools/scripttools.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/lib/corelib/tools/scripttools.h b/src/lib/corelib/tools/scripttools.h index 4230c898c..4aff3d397 100644 --- a/src/lib/corelib/tools/scripttools.h +++ b/src/lib/corelib/tools/scripttools.h @@ -88,6 +88,21 @@ private: QScriptEngine *m_scriptEngine; }; +template <class T> +void attachPointerTo(QScriptValue &scriptValue, T *ptr) +{ + QVariant v; + v.setValue<quintptr>(reinterpret_cast<quintptr>(ptr)); + scriptValue.setData(scriptValue.engine()->newVariant(v)); +} + +template <class T> +T *attachedPointer(const QScriptValue &scriptValue) +{ + const quintptr ptr = scriptValue.data().toVariant().value<quintptr>(); + return reinterpret_cast<T *>(ptr); +} + } // namespace Internal } // namespace qbs |