From 4832462e2f0a3f68485ae85efff368e3346d5c1f Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Mon, 27 Jul 2009 16:28:32 +0200 Subject: 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. --- src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp | 4 ++++ src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.h | 3 +++ 2 files changed, 7 insertions(+) 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(); -- cgit v0.12