diff options
author | Kent Hansen <khansen@trolltech.com> | 2009-07-27 14:28:32 (GMT) |
---|---|---|
committer | Kent Hansen <khansen@trolltech.com> | 2009-07-27 17:56:08 (GMT) |
commit | 4832462e2f0a3f68485ae85efff368e3346d5c1f (patch) | |
tree | 7045c1f0afbe71e2f3e780c4bfbfea520a994e01 /src/3rdparty/webkit/JavaScriptCore | |
parent | 0a4579306706f1fbe91d8b54734491376cb92093 (diff) | |
download | Qt-4832462e2f0a3f68485ae85efff368e3346d5c1f.zip Qt-4832462e2f0a3f68485ae85efff368e3346d5c1f.tar.gz Qt-4832462e2f0a3f68485ae85efff368e3346d5c1f.tar.bz2 |
add garbage collection hook to JSGlobalData::ClientData
Allows us to get a GC callback without having to create a dummy
script object that implements JSObject::mark() and calling
Heap::protect() on that one.
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp | 4 | ||||
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.h | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp index 0ff97b8..f349f23 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp @@ -1107,6 +1107,10 @@ bool Heap::collect() markStackObjectsConservatively(); markProtectedObjects(); +#if QT_BUILD_SCRIPT_LIB + if (m_globalData->clientData) + m_globalData->clientData->mark(); +#endif if (m_markListSet && m_markListSet->size()) MarkedArgumentBuffer::markLists(*m_markListSet); if (m_globalData->exception && !m_globalData->exception.marked()) diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.h b/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.h index 96a3c2c..d5202c6 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.h @@ -65,6 +65,9 @@ namespace JSC { public: struct ClientData { virtual ~ClientData() = 0; +#ifdef QT_BUILD_SCRIPT_LIB + virtual void mark() {} +#endif }; static bool sharedInstanceExists(); |