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.