Title: [93558] trunk/Source/WebCore
Revision
93558
Author
[email protected]
Date
2011-08-22 16:30:10 -0700 (Mon, 22 Aug 2011)

Log Message

Fix usage of PassRefPtr in postMessage and structured clone code.
https://bugs.webkit.org/show_bug.cgi?id=66725

Reviewed by Darin Adler.

No new functionality exposed so no new tests.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::postMessage): Changed PassRefPtr to RefPtr and added release when handed off.
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::initMessageEvent): Ditto.
* bindings/js/JSMessagePortCustom.h:
(WebCore::handlePostMessage): Ditto.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::create): Ditto.
* workers/SharedWorkerContext.cpp:
(WebCore::createConnectEvent): Added release() when a RefPtr is returned.

Modified Paths

Property Changed

Diff

Modified: trunk/Source/WebCore/ChangeLog (93557 => 93558)


--- trunk/Source/WebCore/ChangeLog	2011-08-22 23:24:18 UTC (rev 93557)
+++ trunk/Source/WebCore/ChangeLog	2011-08-22 23:30:10 UTC (rev 93558)
@@ -1,3 +1,23 @@
+2011-08-22  David Levin  <[email protected]>
+
+        Fix usage of PassRefPtr in postMessage and structured clone code.
+        https://bugs.webkit.org/show_bug.cgi?id=66725
+
+        Reviewed by Darin Adler.
+
+        No new functionality exposed so no new tests.
+
+        * bindings/js/JSDOMWindowCustom.cpp:
+        (WebCore::JSDOMWindow::postMessage): Changed PassRefPtr to RefPtr and added release when handed off.
+        * bindings/js/JSMessageEventCustom.cpp:
+        (WebCore::JSMessageEvent::initMessageEvent): Ditto.
+        * bindings/js/JSMessagePortCustom.h:
+        (WebCore::handlePostMessage): Ditto.
+        * bindings/js/SerializedScriptValue.cpp:
+        (WebCore::SerializedScriptValue::create): Ditto.
+        * workers/SharedWorkerContext.cpp:
+        (WebCore::createConnectEvent): Added release() when a RefPtr is returned.
+
 2011-08-22  Luke Macpherson   <[email protected]>
 
         Implement cast between CSSPrimitiveValue and EBackfaceVisibility, use in CSSStyleSelector::applyProperty.
Property changes on: trunk/Source/WebCore/ChangeLog
___________________________________________________________________

Deleted: svn:executable

Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp (93557 => 93558)


--- trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp	2011-08-22 23:24:18 UTC (rev 93557)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp	2011-08-22 23:30:10 UTC (rev 93558)
@@ -699,7 +699,7 @@
 
 JSValue JSDOMWindow::postMessage(ExecState* exec)
 {
-    PassRefPtr<SerializedScriptValue> message = SerializedScriptValue::create(exec, exec->argument(0));
+    RefPtr<SerializedScriptValue> message = SerializedScriptValue::create(exec, exec->argument(0));
 
     if (exec->hadException())
         return jsUndefined();
@@ -715,7 +715,7 @@
         return jsUndefined();
 
     ExceptionCode ec = 0;
-    impl()->postMessage(message, &messagePorts, targetOrigin, activeDOMWindow(exec), ec);
+    impl()->postMessage(message.release(), &messagePorts, targetOrigin, activeDOMWindow(exec), ec);
     setDOMException(exec, ec);
 
     return jsUndefined();

Modified: trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp (93557 => 93558)


--- trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp	2011-08-22 23:24:18 UTC (rev 93557)
+++ trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp	2011-08-22 23:30:10 UTC (rev 93558)
@@ -59,7 +59,7 @@
     const UString& typeArg = exec->argument(0).toString(exec);
     bool canBubbleArg = exec->argument(1).toBoolean(exec);
     bool cancelableArg = exec->argument(2).toBoolean(exec);
-    PassRefPtr<SerializedScriptValue> dataArg = SerializedScriptValue::create(exec, exec->argument(3));
+    RefPtr<SerializedScriptValue> dataArg = SerializedScriptValue::create(exec, exec->argument(3));
     if (exec->hadException())
         return jsUndefined();
     const UString& originArg = exec->argument(4).toString(exec);
@@ -74,7 +74,7 @@
     }
 
     MessageEvent* event = static_cast<MessageEvent*>(this->impl());
-    event->initMessageEvent(ustringToAtomicString(typeArg), canBubbleArg, cancelableArg, dataArg, ustringToString(originArg), ustringToString(lastEventIdArg), sourceArg, messagePorts.release());
+    event->initMessageEvent(ustringToAtomicString(typeArg), canBubbleArg, cancelableArg, dataArg.release(), ustringToString(originArg), ustringToString(lastEventIdArg), sourceArg, messagePorts.release());
     return jsUndefined();
 }
 

Modified: trunk/Source/WebCore/bindings/js/JSMessagePortCustom.h (93557 => 93558)


--- trunk/Source/WebCore/bindings/js/JSMessagePortCustom.h	2011-08-22 23:24:18 UTC (rev 93557)
+++ trunk/Source/WebCore/bindings/js/JSMessagePortCustom.h	2011-08-22 23:30:10 UTC (rev 93558)
@@ -48,14 +48,14 @@
     template <typename T>
     inline JSC::JSValue handlePostMessage(JSC::ExecState* exec, T* impl)
     {
-        PassRefPtr<SerializedScriptValue> message = SerializedScriptValue::create(exec, exec->argument(0));
+        RefPtr<SerializedScriptValue> message = SerializedScriptValue::create(exec, exec->argument(0));
         MessagePortArray portArray;
         fillMessagePortArray(exec, exec->argument(1), portArray);
         if (exec->hadException())
             return JSC::jsUndefined();
 
         ExceptionCode ec = 0;
-        impl->postMessage(message, &portArray, ec);
+        impl->postMessage(message.release(), &portArray, ec);
         setDOMException(exec, ec);
         return JSC::jsUndefined();
     }

Modified: trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp (93557 => 93558)


--- trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp	2011-08-22 23:24:18 UTC (rev 93557)
+++ trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp	2011-08-22 23:30:10 UTC (rev 93558)
@@ -1371,7 +1371,7 @@
     ExecState* exec = toJS(originContext);
     APIEntryShim entryShim(exec);
     JSValue value = toJS(exec, apiValue);
-    PassRefPtr<SerializedScriptValue> serializedValue = SerializedScriptValue::create(exec, value);
+    RefPtr<SerializedScriptValue> serializedValue = SerializedScriptValue::create(exec, value);
     if (exec->hadException()) {
         if (exception)
             *exception = toRef(exec, exec->exception());
@@ -1379,7 +1379,7 @@
         return 0;
     }
     ASSERT(serializedValue);
-    return serializedValue;
+    return serializedValue.release();
 }
 
 String SerializedScriptValue::toString()

Modified: trunk/Source/WebCore/workers/SharedWorkerContext.cpp (93557 => 93558)


--- trunk/Source/WebCore/workers/SharedWorkerContext.cpp	2011-08-22 23:24:18 UTC (rev 93557)
+++ trunk/Source/WebCore/workers/SharedWorkerContext.cpp	2011-08-22 23:30:10 UTC (rev 93558)
@@ -46,7 +46,7 @@
 {
     RefPtr<MessageEvent> event = MessageEvent::create(adoptPtr(new MessagePortArray(1, port)));
     event->initEvent(eventNames().connectEvent, false, false);
-    return event;
+    return event.release();
 }
 
 SharedWorkerContext::SharedWorkerContext(const String& name, const KURL& url, const String& userAgent, SharedWorkerThread* thread)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to