Index: vm/raw_object_snapshot.cc |
=================================================================== |
--- vm/raw_object_snapshot.cc (revision 3046) |
+++ vm/raw_object_snapshot.cc (working copy) |
@@ -28,7 +28,7 @@ |
Snapshot::Kind kind) { |
ASSERT(reader != NULL); |
- Class& cls = Class::ZoneHandle(); |
+ Class& cls = Class::ZoneHandle(reader->isolate(), Class::null()); |
if ((kind == Snapshot::kFull) || |
(kind == Snapshot::kScript && !RawObject::IsCreatedFromSnapshot(tags))) { |
// Read in the base information. |
@@ -109,7 +109,7 @@ |
// Allocate parameterized type object. |
UnresolvedClass& unresolved_class = |
- UnresolvedClass::ZoneHandle(UnresolvedClass::New()); |
+ UnresolvedClass::ZoneHandle(reader->isolate(), UnresolvedClass::New()); |
reader->AddBackwardReference(object_id, &unresolved_class); |
// Set the object tags. |
@@ -173,7 +173,7 @@ |
ASSERT(reader != NULL); |
// Allocate parameterized type object. |
- Type& parameterized_type = Type::ZoneHandle(Type::New()); |
+ Type& parameterized_type = Type::ZoneHandle(reader->isolate(), Type::New()); |
reader->AddBackwardReference(object_id, ¶meterized_type); |
// Set the object tags. |
@@ -227,7 +227,7 @@ |
// Allocate type parameter object. |
TypeParameter& type_parameter = |
- TypeParameter::ZoneHandle(TypeParameter::New()); |
+ TypeParameter::ZoneHandle(reader->isolate(), TypeParameter::New()); |
reader->AddBackwardReference(object_id, &type_parameter); |
// Set the object tags. |
@@ -280,7 +280,7 @@ |
// Allocate instantiated type object. |
InstantiatedType& instantiated_type = |
- InstantiatedType::ZoneHandle(InstantiatedType::New()); |
+ InstantiatedType::ZoneHandle(reader->isolate(), InstantiatedType::New()); |
reader->AddBackwardReference(object_id, &instantiated_type); |
// Set the object tags. |
@@ -344,11 +344,12 @@ |
intptr_t len = Smi::Value(smi_len); |
TypeArguments& type_arguments = |
- TypeArguments::Handle(TypeArguments::New(len)); |
+ TypeArguments::Handle(reader->isolate(), TypeArguments::New(len)); |
reader->AddBackwardReference(object_id, &type_arguments); |
// Now set all the object fields. |
- AbstractType& type = AbstractType::Handle(); |
+ AbstractType& type = AbstractType::Handle(reader->isolate(), |
+ AbstractType::null()); |
for (intptr_t i = 0; i < len; i++) { |
type ^= reader->ReadObject(); |
type_arguments.SetTypeAt(i, type); |
@@ -399,7 +400,8 @@ |
// Allocate instantiated types object. |
InstantiatedTypeArguments& instantiated_type_arguments = |
- InstantiatedTypeArguments::ZoneHandle(InstantiatedTypeArguments::New()); |
+ InstantiatedTypeArguments::ZoneHandle(reader->isolate(), |
+ InstantiatedTypeArguments::New()); |
reader->AddBackwardReference(object_id, &instantiated_type_arguments); |
// Set the object tags. |
@@ -444,7 +446,7 @@ |
ASSERT(kind != Snapshot::kMessage && !RawObject::IsCreatedFromSnapshot(tags)); |
// Allocate function object. |
- Function& func = Function::ZoneHandle(Function::New()); |
+ Function& func = Function::ZoneHandle(reader->isolate(), Function::New()); |
reader->AddBackwardReference(object_id, &func); |
// Set the object tags. |
@@ -510,7 +512,7 @@ |
ASSERT(kind != Snapshot::kMessage && !RawObject::IsCreatedFromSnapshot(tags)); |
// Allocate field object. |
- Field& field = Field::ZoneHandle(Field::New()); |
+ Field& field = Field::ZoneHandle(reader->isolate(), Field::New()); |
reader->AddBackwardReference(object_id, &field); |
// Set the object tags. |
@@ -570,14 +572,15 @@ |
intptr_t len = Smi::Value(smi_len); |
// Create the token stream object. |
- TokenStream& token_stream = TokenStream::ZoneHandle(TokenStream::New(len)); |
+ TokenStream& token_stream = TokenStream::ZoneHandle(reader->isolate(), |
+ TokenStream::New(len)); |
reader->AddBackwardReference(object_id, &token_stream); |
// Set the object tags. |
token_stream.set_tags(tags); |
// Read the token stream into the TokenStream. |
- String& literal = String::Handle(); |
+ String& literal = String::Handle(reader->isolate(), String::null()); |
for (intptr_t i = 0; i < len; i++) { |
Token::Kind kind = static_cast<Token::Kind>( |
Smi::Value(GetSmi(reader->ReadIntptrValue()))); |
@@ -619,7 +622,7 @@ |
ASSERT(kind != Snapshot::kMessage && !RawObject::IsCreatedFromSnapshot(tags)); |
// Allocate script object. |
- Script& script = Script::ZoneHandle(Script::New()); |
+ Script& script = Script::ZoneHandle(reader->isolate(), Script::New()); |
reader->AddBackwardReference(object_id, &script); |
// Set the object tags. |
@@ -663,13 +666,13 @@ |
ASSERT(reader != NULL); |
ASSERT(kind != Snapshot::kMessage); |
- Library& library = Library::ZoneHandle(); |
+ Library& library = Library::ZoneHandle(reader->isolate(), Library::null()); |
reader->AddBackwardReference(object_id, &library); |
if (RawObject::IsCreatedFromSnapshot(tags)) { |
ASSERT(kind != Snapshot::kFull); |
// Lookup the object as it should already exist in the heap. |
- String& library_url = String::Handle(); |
+ String& library_url = String::Handle(reader->isolate(), String::null()); |
library_url ^= reader->ReadObject(); |
library = Library::LookupLibrary(library_url); |
} else { |
@@ -745,7 +748,8 @@ |
ASSERT(kind != Snapshot::kMessage && !RawObject::IsCreatedFromSnapshot(tags)); |
// Allocate library prefix object. |
- LibraryPrefix& prefix = LibraryPrefix::ZoneHandle(LibraryPrefix::New()); |
+ LibraryPrefix& prefix = LibraryPrefix::ZoneHandle(reader->isolate(), |
+ LibraryPrefix::New()); |
reader->AddBackwardReference(object_id, &prefix); |
// Set the object tags. |
@@ -789,7 +793,7 @@ |
ASSERT(kind != Snapshot::kMessage); |
// Create Code object. |
- Code& code = Code::ZoneHandle(Code::New(0)); |
+ Code& code = Code::ZoneHandle(reader->isolate(), Code::New(0)); |
reader->AddBackwardReference(object_id, &code); |
return code.raw(); |
} |
@@ -880,6 +884,7 @@ |
// Allocate context object. |
intptr_t num_vars = reader->ReadIntptrValue(); |
Context& context = Context::ZoneHandle( |
+ reader->isolate(), |
Context::New(num_vars, |
(kind == Snapshot::kFull) ? Heap::kOld : Heap::kNew)); |
reader->AddBackwardReference(object_id, &context); |
@@ -933,7 +938,8 @@ |
// Allocate context scope object. |
intptr_t num_vars = reader->ReadIntptrValue(); |
- ContextScope& scope = ContextScope::ZoneHandle(ContextScope::New(num_vars)); |
+ ContextScope& scope = ContextScope::ZoneHandle(reader->isolate(), |
+ ContextScope::New(num_vars)); |
reader->AddBackwardReference(object_id, &scope); |
// Set the object tags. |
@@ -1030,7 +1036,7 @@ |
int64_t value = reader->Read<int64_t>(); |
// Create a Mint object or get canonical one if it is a canonical constant. |
- Mint& mint = Mint::ZoneHandle(); |
+ Mint& mint = Mint::ZoneHandle(reader->isolate(), Mint::null()); |
if ((kind != Snapshot::kFull) && RawObject::IsCanonical(tags)) { |
mint = Mint::NewCanonical(value); |
} else { |
@@ -1077,7 +1083,8 @@ |
} |
// Create a Bigint object from HexCString. |
- Bigint& obj = Bigint::ZoneHandle(BigintOperations::FromHexCString(str)); |
+ Bigint& obj = Bigint::ZoneHandle(reader->isolate(), |
+ BigintOperations::FromHexCString(str)); |
// If it is a canonical constant make it one. |
if ((kind != Snapshot::kFull) && RawObject::IsCanonical(tags)) { |
@@ -1123,7 +1130,7 @@ |
double value = reader->Read<double>(); |
// Create a Double object or get canonical one if it is a canonical constant. |
- Double& dbl = Double::ZoneHandle(); |
+ Double& dbl = Double::ZoneHandle(reader->isolate(), Double::null()); |
if ((kind != Snapshot::kFull) && RawObject::IsCanonical(tags)) { |
dbl = Double::NewCanonical(value); |
} else { |
@@ -1182,7 +1189,8 @@ |
intptr_t len = Smi::Value(smi_len); |
RawSmi* smi_hash = GetSmi(reader->ReadIntptrValue()); |
- HandleType& str_obj = HandleType::ZoneHandle(); |
+ HandleType& str_obj = HandleType::ZoneHandle(reader->isolate(), |
+ HandleType::null()); |
if (kind != Snapshot::kFull && RawObject::IsCanonical(tags)) { |
CharacterType* ptr = reinterpret_cast<CharacterType*>(ZoneAllocator(len)); |
for (intptr_t i = 0; i < len; i++) { |
@@ -1407,6 +1415,7 @@ |
RawSmi* smi_len = GetSmi(reader->ReadIntptrValue()); |
intptr_t len = Smi::Value(smi_len); |
T& result = T::Handle( |
+ reader->isolate(), |
T::New(len, (kind == Snapshot::kFull) ? Heap::kOld : Heap::kNew)); |
reader->AddBackwardReference(object_id, &result); |
@@ -1414,11 +1423,13 @@ |
result.set_tags(tags); |
// Setup the object fields. |
- AbstractTypeArguments& type_arguments = AbstractTypeArguments::Handle(); |
+ AbstractTypeArguments& type_arguments = |
+ AbstractTypeArguments::Handle(reader->isolate(), |
+ AbstractTypeArguments::null()); |
type_arguments ^= reader->ReadObject(); |
result.SetTypeArguments(type_arguments); |
- Object& obj = Object::Handle(); |
+ Object& obj = Object::Handle(reader->isolate(), Object::null()); |
for (intptr_t i = 0; i < len; i++) { |
obj = reader->ReadObject(); |
result.SetAt(i, obj); |
@@ -1564,6 +1575,7 @@ |
// Allocate JSRegExp object. |
JSRegExp& regex = JSRegExp::ZoneHandle( |
+ reader->isolate(), |
JSRegExp::New(len, (kind == Snapshot::kFull) ? Heap::kOld : Heap::kNew)); |
reader->AddBackwardReference(object_id, ®ex); |
@@ -1572,7 +1584,7 @@ |
// Read and Set all the other fields. |
regex.raw_ptr()->num_bracket_expressions_ = GetSmi(reader->ReadIntptrValue()); |
- String& pattern = String::Handle(); |
+ String& pattern = String::Handle(reader->isolate(), String::null()); |
pattern ^= reader->ReadObject(); |
regex.raw_ptr()->pattern_ = pattern.raw(); |
regex.raw_ptr()->type_ = reader->ReadIntptrValue(); |