Reviewers: mvstanton,

Description:
Fix assertion failure. Use Vector instead of List in code deserializer.

[email protected]

Please review this at https://codereview.chromium.org/390353002/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+6, -4 lines):
  M src/serialize.h
  M src/serialize.cc


Index: src/serialize.cc
diff --git a/src/serialize.cc b/src/serialize.cc
index 5e75ee569d373acebcfa466f8dc669fa4ccba508..ae0dacd846f372b4fc757ba6b791b1420394fa16 100644
--- a/src/serialize.cc
+++ b/src/serialize.cc
@@ -2003,13 +2003,15 @@ Handle<SharedFunctionInfo> CodeSerializer::Deserialize(Isolate* isolate,
   DisallowHeapAllocation no_gc;

   // Prepare and register list of attached objects.
-  List<Object*> attached_objects(1);
-  attached_objects.Set(kSourceObjectIndex, *source);
+  Vector<Object*> attached_objects = Vector<Object*>::New(1);
+  attached_objects[kSourceObjectIndex] = *source;
   deserializer.SetAttachedObjects(&attached_objects);

   Object* root;
   deserializer.DeserializePartial(isolate, &root);
   deserializer.FlushICacheForNewCodeObjects();
+
+  attached_objects.Dispose();
return Handle<SharedFunctionInfo>(SharedFunctionInfo::cast(root), isolate);
 }

Index: src/serialize.h
diff --git a/src/serialize.h b/src/serialize.h
index 558cb57d7328a8010bd8ecdc2024b0b5fcc2e914..e6547b842dfbeb5ff9346206972e17334219163d 100644
--- a/src/serialize.h
+++ b/src/serialize.h
@@ -254,7 +254,7 @@ class Deserializer: public SerializerDeserializer {

// Serialized user code reference certain objects that are provided in a list
   // By calling this method, we assume that we are deserializing user code.
-  void SetAttachedObjects(List<Object*>* attached_objects) {
+  void SetAttachedObjects(Vector<Object*>* attached_objects) {
     attached_objects_ = attached_objects;
   }

@@ -303,7 +303,7 @@ class Deserializer: public SerializerDeserializer {
   Isolate* isolate_;

// Objects from the attached object descriptions in the serialized user code.
-  List<Object*>* attached_objects_;
+  Vector<Object*>* attached_objects_;

   SnapshotByteSource* source_;
   // This is the address of the next object that will be allocated in each


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to