diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2011-08-04 13:16:12 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-08-04 14:38:49 +0200 |
commit | d4b6e43e7f096925d5761e53860a35b995a4eb0a (patch) | |
tree | 8f84933adab074e9f96183b3094ced58a6779bbf /src/declarative/qml/v8/qjsvalue_impl_p.h | |
parent | 5a594e5bfd2f000204bd4c883719e0069ad3a772 (diff) |
Move QJSValue InvalidValue definition to "inline" header
Avoid warning "inline function ‘QJSValuePrivate::QJSValuePrivate()’
used but never defined" when only qjsvalue_p.h is included
for a compilation unit.
Change-Id: I75bb49dedbfcedf5f71c25210371f03663572b46
Reviewed-on: http://codereview.qt.nokia.com/2620
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Diffstat (limited to 'src/declarative/qml/v8/qjsvalue_impl_p.h')
-rw-r--r-- | src/declarative/qml/v8/qjsvalue_impl_p.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/declarative/qml/v8/qjsvalue_impl_p.h b/src/declarative/qml/v8/qjsvalue_impl_p.h index adff6ce945..1970505f13 100644 --- a/src/declarative/qml/v8/qjsvalue_impl_p.h +++ b/src/declarative/qml/v8/qjsvalue_impl_p.h @@ -42,6 +42,29 @@ QT_BEGIN_NAMESPACE +// This template is used indirectly by the Q_GLOBAL_STATIC macro below +template<> +class QGlobalStaticDeleter<QJSValuePrivate> +{ +public: + QGlobalStatic<QJSValuePrivate> &globalStatic; + QGlobalStaticDeleter(QGlobalStatic<QJSValuePrivate> &_globalStatic) + : globalStatic(_globalStatic) + { + globalStatic.pointer->ref.ref(); + } + + inline ~QGlobalStaticDeleter() + { + if (!globalStatic.pointer->ref.deref()) { // Logic copy & paste from SharedDataPointer + delete globalStatic.pointer; + } + globalStatic.pointer = 0; + globalStatic.destroyed = true; + } +}; + +Q_GLOBAL_STATIC(QJSValuePrivate, InvalidValue) QJSValuePrivate* QJSValuePrivate::get(const QJSValue& q) { Q_ASSERT(q.d_ptr.data()); return q.d_ptr.data(); } |