[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.19-706-ge5415e9

aroben at apple.com aroben at apple.com
Thu Feb 4 21:31:30 UTC 2010


The following commit has been merged in the webkit-1.1 branch:
commit 44091875033ac568b9592b6fd2b3326a3cb32ee7
Author: aroben at apple.com <aroben at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Jan 28 23:03:10 2010 +0000

    Fix an assertion beneath SerializedScriptValue::deserialize on 32-bit builds (e.g., on Windows)
    
    Passing a JSValue to toRef on 32-bit builds can perform an allocation,
    so we need to make sure we hold a JSLock when that occurs.
    
    Reviewed by Oliver Hunt.
    
    * bindings/js/SerializedScriptValue.cpp:
    (WebCore::SerializedScriptValueData::serialize):
    (WebCore::SerializedScriptValueData::deserialize):
    Moved JSLocks from here...
    
    (WebCore::SerializedScriptValue::create):
    (WebCore::SerializedScriptValue::deserialize):
    ...to this higher level, from which toRef can be called.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54023 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index f7dc89c..3ad5903 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2010-01-28  Adam Roben  <aroben at apple.com>
+
+        Fix an assertion beneath SerializedScriptValue::deserialize on 32-bit
+        builds (e.g., on Windows)
+
+        Passing a JSValue to toRef on 32-bit builds can perform an allocation,
+        so we need to make sure we hold a JSLock when that occurs.
+
+        Reviewed by Oliver Hunt.
+
+        * bindings/js/SerializedScriptValue.cpp:
+        (WebCore::SerializedScriptValueData::serialize):
+        (WebCore::SerializedScriptValueData::deserialize):
+        Moved JSLocks from here...
+
+        (WebCore::SerializedScriptValue::create):
+        (WebCore::SerializedScriptValue::deserialize):
+        ...to this higher level, from which toRef can be called.
+
 2010-01-28  Oliver Hunt  <oliver at apple.com>
 
         Reviewed by Gavin Barraclough.
diff --git a/WebCore/bindings/js/SerializedScriptValue.cpp b/WebCore/bindings/js/SerializedScriptValue.cpp
index b97b6cf..fd9cb59 100644
--- a/WebCore/bindings/js/SerializedScriptValue.cpp
+++ b/WebCore/bindings/js/SerializedScriptValue.cpp
@@ -598,7 +598,6 @@ private:
 
 SerializedScriptValueData SerializedScriptValueData::serialize(ExecState* exec, JSValue inValue)
 {
-    JSLock lock(SilenceAssertionsOnly);
     SerializingTreeWalker context(exec);
     return walk<SerializingTreeWalker>(context, inValue);
 }
@@ -761,7 +760,6 @@ private:
 
 JSValue SerializedScriptValueData::deserialize(ExecState* exec, JSGlobalObject* global, bool mustCopy) const
 {
-    JSLock lock(SilenceAssertionsOnly);
     DeserializingTreeWalker context(exec, global, mustCopy);
     return walk<DeserializingTreeWalker>(context, *this);
 }
@@ -921,6 +919,7 @@ SerializedScriptValue::~SerializedScriptValue()
 
 PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(JSContextRef originContext, JSValueRef apiValue, JSValueRef* exception)
 {
+    JSLock lock(SilenceAssertionsOnly);
     ExecState* exec = toJS(originContext);
     JSValue value = toJS(exec, apiValue);
     PassRefPtr<SerializedScriptValue> serializedValue = SerializedScriptValue::create(exec, value);
@@ -936,6 +935,7 @@ PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(JSContextRef ori
 
 JSValueRef SerializedScriptValue::deserialize(JSContextRef destinationContext, JSValueRef* exception)
 {
+    JSLock lock(SilenceAssertionsOnly);
     ExecState* exec = toJS(destinationContext);
     JSValue value = deserialize(exec, exec->lexicalGlobalObject());
     if (exec->hadException()) {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list