WebKit provides APIs that make it possible for JSC to attempt to initialise the heap...
authoroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 18 Jul 2012 20:43:40 +0000 (20:43 +0000)
committeroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 18 Jul 2012 20:43:40 +0000 (20:43 +0000)
https://bugs.webkit.org/show_bug.cgi?id=91663

Reviewed by Filip Pizlo.

Initialising a JSGlobalData now requires us to have initialised JSC's threading
logic, as that also initialises the JSC VM runtime options.  WebKit provides a
number of routines that make use of commonJSGlobalData() that can be used before
webcore has called the appropriate initialisation routine.  This patch makes the
minimal change of ensuring that commonJSGlobalData initialises threading before
attempting to create the common heap.

* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonJSGlobalData):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@123013 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/bindings/js/JSDOMWindowBase.cpp

index c64095d..f7375e3 100644 (file)
@@ -1,3 +1,20 @@
+2012-07-18  Oliver Hunt  <oliver@apple.com>
+
+        WebKit provides APIs that make it possible for JSC to attempt to initialise the heap without initialising threading
+        https://bugs.webkit.org/show_bug.cgi?id=91663
+
+        Reviewed by Filip Pizlo.
+
+        Initialising a JSGlobalData now requires us to have initialised JSC's threading
+        logic, as that also initialises the JSC VM runtime options.  WebKit provides a
+        number of routines that make use of commonJSGlobalData() that can be used before
+        webcore has called the appropriate initialisation routine.  This patch makes the
+        minimal change of ensuring that commonJSGlobalData initialises threading before
+        attempting to create the common heap.
+
+        * bindings/js/JSDOMWindowBase.cpp:
+        (WebCore::JSDOMWindowBase::commonJSGlobalData):
+
 2012-07-18  Michael Saboff  <msaboff@apple.com>
 
         Make TextCodecUTF8 handle 8 bit data without converting to UChar's
index f18a05e..d4a06e5 100644 (file)
@@ -32,6 +32,7 @@
 #include "JSNode.h"
 #include "Logging.h"
 #include "Page.h"
+#include "ScriptController.h"
 #include "SecurityOrigin.h"
 #include "Settings.h"
 #include "WebCoreJSClientData.h"
@@ -208,6 +209,7 @@ JSGlobalData* JSDOMWindowBase::commonJSGlobalData()
 
     static JSGlobalData* globalData = 0;
     if (!globalData) {
+        ScriptController::initializeThreading();
         globalData = JSGlobalData::createLeaked(ThreadStackTypeLarge, LargeHeap).leakRef();
         globalData->timeoutChecker.setTimeoutInterval(10000); // 10 seconds
 #ifndef NDEBUG