Title: [158805] trunk/Source/WebKit2
Revision
158805
Author
[email protected]
Date
2013-11-06 17:12:29 -0800 (Wed, 06 Nov 2013)

Log Message

Encoded object stream should be sequential
https://bugs.webkit.org/show_bug.cgi?id=123939

Reviewed by Andreas Kling.

Reserve space in the object stream for objects that are to be encoded, otherwise
the object stream will not be sequential.

* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(encodeToObjectStream):
* Shared/ImmutableArray.h:
(WebKit::ImmutableArray::entries):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (158804 => 158805)


--- trunk/Source/WebKit2/ChangeLog	2013-11-07 00:48:56 UTC (rev 158804)
+++ trunk/Source/WebKit2/ChangeLog	2013-11-07 01:12:29 UTC (rev 158805)
@@ -1,5 +1,20 @@
 2013-11-06  Anders Carlsson  <[email protected]>
 
+        Encoded object stream should be sequential
+        https://bugs.webkit.org/show_bug.cgi?id=123939
+
+        Reviewed by Andreas Kling.
+
+        Reserve space in the object stream for objects that are to be encoded, otherwise
+        the object stream will not be sequential.
+
+        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
+        (encodeToObjectStream):
+        * Shared/ImmutableArray.h:
+        (WebKit::ImmutableArray::entries):
+
+2013-11-06  Anders Carlsson  <[email protected]>
+
         Allow property list classes to exist in containers
         https://bugs.webkit.org/show_bug.cgi?id=123938
 

Modified: trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm (158804 => 158805)


--- trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm	2013-11-07 00:48:56 UTC (rev 158804)
+++ trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm	2013-11-07 01:12:29 UTC (rev 158805)
@@ -104,7 +104,12 @@
 {
     ensureObjectStream(encoder);
 
-    encoder->_objectStream->append(createEncodedObject(encoder, value));
+    size_t position = encoder->_objectStream->size();
+    encoder->_objectStream->append(nullptr);
+
+    RefPtr<ImmutableDictionary> encodedObject = createEncodedObject(encoder, value);
+    ASSERT(!encoder->_objectStream->entries()[position]);
+    encoder->_objectStream->entries()[position] = encodedObject.release();
 }
 
 static void encodeInvocation(WKRemoteObjectEncoder *encoder, NSInvocation *invocation)

Modified: trunk/Source/WebKit2/Shared/ImmutableArray.h (158804 => 158805)


--- trunk/Source/WebKit2/Shared/ImmutableArray.h	2013-11-07 00:48:56 UTC (rev 158804)
+++ trunk/Source/WebKit2/Shared/ImmutableArray.h	2013-11-07 01:12:29 UTC (rev 158805)
@@ -72,6 +72,7 @@
     virtual bool isMutable() { return false; }
 
     const Vector<RefPtr<APIObject>>& entries() const { return m_entries; }
+    Vector<RefPtr<APIObject>>& entries() { return m_entries; }
 
 protected:
     ImmutableArray();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to