aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/v8/qjsvalue_impl_p.h
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2011-08-04 13:16:12 +0200
committerQt by Nokia <qt-info@nokia.com>2011-08-04 14:38:49 +0200
commitd4b6e43e7f096925d5761e53860a35b995a4eb0a (patch)
tree8f84933adab074e9f96183b3094ced58a6779bbf /src/declarative/qml/v8/qjsvalue_impl_p.h
parent5a594e5bfd2f000204bd4c883719e0069ad3a772 (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.h23
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(); }