diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2011-12-12 14:04:39 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-14 09:55:28 +0100 |
commit | b0133b8fa4b1ad9a887fa6718983711b560a35ef (patch) | |
tree | c636ce1995bff85ae90544400de7594ab601b7d5 | |
parent | f12d2a28d799e95661a50ee70d4c9059377fbfc1 (diff) |
Cleanup: Fold QV8GCCallback class declaration(s) back into qv8engine_p.h
The implementation lives in qv8engine.cpp.
Change-Id: I2898556fea867cdc82ea534eaf020dd8d12b25d6
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
-rw-r--r-- | src/declarative/qml/qdeclarativevmemetaobject_p.h | 2 | ||||
-rw-r--r-- | src/declarative/qml/qdeclarativeworkerscript.cpp | 1 | ||||
-rw-r--r-- | src/declarative/qml/v8/qv8engine.cpp | 2 | ||||
-rw-r--r-- | src/declarative/qml/v8/qv8engine_p.h | 50 | ||||
-rw-r--r-- | src/declarative/qml/v8/qv8gccallback_p.h | 115 | ||||
-rw-r--r-- | src/declarative/qml/v8/v8.pri | 1 | ||||
-rw-r--r-- | tests/auto/declarative/qdeclarativeecmascript/testtypes.h | 1 | ||||
-rw-r--r-- | tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp | 1 |
8 files changed, 51 insertions, 122 deletions
diff --git a/src/declarative/qml/qdeclarativevmemetaobject_p.h b/src/declarative/qml/qdeclarativevmemetaobject_p.h index de0ac9e4d9..22cfbb138b 100644 --- a/src/declarative/qml/qdeclarativevmemetaobject_p.h +++ b/src/declarative/qml/qdeclarativevmemetaobject_p.h @@ -69,7 +69,7 @@ #include "qdeclarativecompiler_p.h" #include "qdeclarativecontext_p.h" -#include <private/qv8gccallback_p.h> +#include <private/qv8engine_p.h> #include <private/qv8_p.h> diff --git a/src/declarative/qml/qdeclarativeworkerscript.cpp b/src/declarative/qml/qdeclarativeworkerscript.cpp index f0583c8470..4e2bcdda01 100644 --- a/src/declarative/qml/qdeclarativeworkerscript.cpp +++ b/src/declarative/qml/qdeclarativeworkerscript.cpp @@ -59,7 +59,6 @@ #include <private/qv8engine_p.h> #include <private/qv8worker_p.h> -#include <private/qv8gccallback_p.h> QT_BEGIN_NAMESPACE diff --git a/src/declarative/qml/v8/qv8engine.cpp b/src/declarative/qml/v8/qv8engine.cpp index 5207931776..7d66e5161e 100644 --- a/src/declarative/qml/v8/qv8engine.cpp +++ b/src/declarative/qml/v8/qv8engine.cpp @@ -41,10 +41,8 @@ #include "qv8engine_p.h" -#include "qv8gccallback_p.h" #include "qv8contextwrapper_p.h" #include "qv8valuetypewrapper_p.h" -#include "qv8gccallback_p.h" #include "qv8sequencewrapper_p.h" #include "qv8include_p.h" #include "qjsengine_p.h" diff --git a/src/declarative/qml/v8/qv8engine_p.h b/src/declarative/qml/v8/qv8engine_p.h index acf7ec816a..7df4c523c0 100644 --- a/src/declarative/qml/v8/qv8engine_p.h +++ b/src/declarative/qml/v8/qv8engine_p.h @@ -60,6 +60,7 @@ #include <QtCore/qstack.h> #include <QtCore/qstringlist.h> #include <QtCore/QElapsedTimer> +#include <QtCore/QThreadStorage> #include <private/qv8_p.h> #include <qjsengine.h> @@ -222,6 +223,55 @@ class QDeclarativeValueType; class QNetworkAccessManager; class QDeclarativeContextData; +class Q_AUTOTEST_EXPORT QV8GCCallback +{ +private: + class ThreadData; +public: + static void garbageCollectorPrologueCallback(v8::GCType, v8::GCCallbackFlags); + static void registerGcPrologueCallback(); + static void releaseWorkerThreadGcPrologueCallbackData(); + + class Q_AUTOTEST_EXPORT Referencer { + public: + ~Referencer(); + void addRelationship(QObject *object, v8::Persistent<v8::Value> handle); + void addRelationship(QObject *object, QObject *other); + void dispose(); + private: + Referencer(); + static v8::Persistent<v8::Object> *findOwnerAndStrength(QObject *qobjectOwner, bool *shouldBeStrong); + v8::Persistent<v8::Object> strongReferencer; + v8::Persistent<v8::Context> context; + friend class QV8GCCallback::ThreadData; + }; + + class Q_AUTOTEST_EXPORT Node { + public: + typedef void (*PrologueCallback)(Referencer *r, Node *node); + Node(PrologueCallback callback); + ~Node(); + + QIntrusiveListNode node; + PrologueCallback prologueCallback; + }; + + static void addGcCallbackNode(Node *node); + +private: + class ThreadData { + public: + ThreadData() : gcPrologueCallbackRegistered(false) { } + ~ThreadData(); + Referencer referencer; + bool gcPrologueCallbackRegistered; + QIntrusiveList<Node, &Node::node> gcCallbackNodes; + }; + + static void initializeThreadData(); + static QThreadStorage<ThreadData *> threadData; +}; + class Q_DECLARATIVE_EXPORT QV8Engine { public: diff --git a/src/declarative/qml/v8/qv8gccallback_p.h b/src/declarative/qml/v8/qv8gccallback_p.h deleted file mode 100644 index 297ac8ac5c..0000000000 --- a/src/declarative/qml/v8/qv8gccallback_p.h +++ /dev/null @@ -1,115 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QV8GCCALLBACK_P_H -#define QV8GCCALLBACK_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include <QtCore/qobject.h> -#include <QtCore/qthreadstorage.h> -#include <private/qv8_p.h> -#include <private/qintrusivelist_p.h> - -QT_BEGIN_NAMESPACE - -class Q_AUTOTEST_EXPORT QV8GCCallback -{ -private: - class ThreadData; -public: - static void garbageCollectorPrologueCallback(v8::GCType, v8::GCCallbackFlags); - static void registerGcPrologueCallback(); - static void releaseWorkerThreadGcPrologueCallbackData(); - - class Q_AUTOTEST_EXPORT Referencer { - public: - ~Referencer(); - void addRelationship(QObject *object, v8::Persistent<v8::Value> handle); - void addRelationship(QObject *object, QObject *other); - void dispose(); - private: - Referencer(); - static v8::Persistent<v8::Object> *findOwnerAndStrength(QObject *qobjectOwner, bool *shouldBeStrong); - v8::Persistent<v8::Object> strongReferencer; - v8::Persistent<v8::Context> context; - friend class QV8GCCallback::ThreadData; - }; - - class Q_AUTOTEST_EXPORT Node { - public: - typedef void (*PrologueCallback)(Referencer *r, Node *node); - Node(PrologueCallback callback); - ~Node(); - - QIntrusiveListNode node; - PrologueCallback prologueCallback; - }; - - static void addGcCallbackNode(Node *node); - -private: - class ThreadData { - public: - ThreadData() : gcPrologueCallbackRegistered(false) { } - ~ThreadData(); - Referencer referencer; - bool gcPrologueCallbackRegistered; - QIntrusiveList<Node, &Node::node> gcCallbackNodes; - }; - - static void initializeThreadData(); - static QThreadStorage<ThreadData *> threadData; -}; - -QT_END_NAMESPACE - -#endif // QV8GCCALLBACK_P_H - diff --git a/src/declarative/qml/v8/v8.pri b/src/declarative/qml/v8/v8.pri index e3488cd1e5..99ecf90983 100644 --- a/src/declarative/qml/v8/v8.pri +++ b/src/declarative/qml/v8/v8.pri @@ -8,7 +8,6 @@ HEADERS += \ $$PWD/qv8profiler_p.h \ $$PWD/qv8stringwrapper_p.h \ $$PWD/qv8engine_p.h \ - $$PWD/qv8gccallback_p.h \ $$PWD/qv8sequencewrapper_p.h \ $$PWD/qv8sequencewrapper_p_p.h \ $$PWD/qv8contextwrapper_p.h \ diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h index b7f3f909ea..cd5bac5253 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h +++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h @@ -57,7 +57,6 @@ #include <QtDeclarative/qdeclarativescriptstring.h> #include <QtDeclarative/qdeclarativecomponent.h> -#include <private/qv8gccallback_p.h> #include <private/qdeclarativeengine_p.h> #include <private/qv8engine_p.h> diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp index 38d436448f..7cddfd22f1 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp @@ -49,7 +49,6 @@ #include <QtCore/qdir.h> #include <QtCore/qnumeric.h> #include <private/qdeclarativeengine_p.h> -#include <private/qv8gccallback_p.h> #include <private/qdeclarativevmemetaobject_p.h> #include <private/qv4compiler_p.h> #include "testtypes.h" |