Chromium Code Reviews| Index: runtime/vm/raw_object_snapshot.cc |
| diff --git a/runtime/vm/raw_object_snapshot.cc b/runtime/vm/raw_object_snapshot.cc |
| index d817ff1e3d706e55c34366432926a8d2141fab46..e4d73eac606e48856aa61fa012c6135b13c8a662 100644 |
| --- a/runtime/vm/raw_object_snapshot.cc |
| +++ b/runtime/vm/raw_object_snapshot.cc |
| @@ -1628,7 +1628,7 @@ void RawString::WriteTo(SnapshotWriter* writer, |
| template<typename HandleType, typename CharacterType> |
|
siva
2012/11/05 19:23:38
HandleType should probably be renamed to StringTyp
Tom Ball
2012/11/05 21:22:41
Done.
|
| void String::ReadFromImpl(SnapshotReader* reader, |
| - HandleType* str_obj, |
| + String* str_obj, |
| intptr_t len, |
| intptr_t tags, |
| Snapshot::Kind kind) { |
| @@ -1648,7 +1648,7 @@ void String::ReadFromImpl(SnapshotReader* reader, |
| str_obj->set_tags(tags); |
| str_obj->SetHash(0); // Will get computed when needed. |
| for (intptr_t i = 0; i < len; i++) { |
| - *str_obj->CharAddr(i) = reader->Read<CharacterType>(); |
| + *HandleType::CharAddr(*str_obj, i) = reader->Read<CharacterType>(); |
| } |
| } |
| } |
| @@ -1662,8 +1662,7 @@ RawOneByteString* OneByteString::ReadFrom(SnapshotReader* reader, |
| ASSERT(reader != NULL); |
| intptr_t len = reader->ReadSmiValue(); |
| intptr_t hash = reader->ReadSmiValue(); |
| - OneByteString& str_obj = OneByteString::ZoneHandle(reader->isolate(), |
| - OneByteString::null()); |
| + String& str_obj = String::Handle(reader->isolate(), String::null()); |
| if (kind == Snapshot::kFull) { |
| ASSERT(reader->isolate()->no_gc_scope_depth() != 0); |
| @@ -1672,15 +1671,16 @@ RawOneByteString* OneByteString::ReadFrom(SnapshotReader* reader, |
| str_obj.set_tags(tags); |
| obj->ptr()->hash_ = Smi::New(hash); |
| if (len > 0) { |
| - uint8_t* raw_ptr = str_obj.CharAddr(0); |
| + uint8_t* raw_ptr = CharAddr(str_obj, 0); |
| reader->ReadBytes(raw_ptr, len); |
| } |
| ASSERT((hash == 0) || (String::Hash(str_obj, 0, str_obj.Length()) == hash)); |
| } else { |
| - ReadFromImpl<OneByteString, uint8_t>(reader, &str_obj, len, tags, kind); |
| + String::ReadFromImpl<OneByteString, uint8_t>( |
| + reader, &str_obj, len, tags, kind); |
| } |
| reader->AddBackRef(object_id, &str_obj, kIsDeserialized); |
| - return str_obj.raw(); |
| + return raw(str_obj); |
| } |
| @@ -1692,26 +1692,26 @@ RawTwoByteString* TwoByteString::ReadFrom(SnapshotReader* reader, |
| ASSERT(reader != NULL); |
| intptr_t len = reader->ReadSmiValue(); |
| intptr_t hash = reader->ReadSmiValue(); |
| - TwoByteString& str_obj = TwoByteString::ZoneHandle(reader->isolate(), |
| - TwoByteString::null()); |
| + String& str_obj = String::Handle(reader->isolate(), String::null()); |
| if (kind == Snapshot::kFull) { |
| RawTwoByteString* obj = reader->NewTwoByteString(len); |
| str_obj = obj; |
| str_obj.set_tags(tags); |
| obj->ptr()->hash_ = Smi::New(hash); |
| - uint16_t* raw_ptr = (len > 0)? str_obj.CharAddr(0) : NULL; |
| + uint16_t* raw_ptr = (len > 0)? CharAddr(str_obj, 0) : NULL; |
| for (intptr_t i = 0; i < len; i++) { |
| - ASSERT(str_obj.CharAddr(i) == raw_ptr); // Will trigger assertions. |
| + ASSERT(CharAddr(str_obj, i) == raw_ptr); // Will trigger assertions. |
| *raw_ptr = reader->Read<uint16_t>(); |
| raw_ptr += 1; |
| } |
| ASSERT(String::Hash(str_obj, 0, str_obj.Length()) == hash); |
| } else { |
| - ReadFromImpl<TwoByteString, uint16_t>(reader, &str_obj, len, tags, kind); |
| + String::ReadFromImpl<TwoByteString, uint16_t>( |
| + reader, &str_obj, len, tags, kind); |
| } |
| reader->AddBackRef(object_id, &str_obj, kIsDeserialized); |
| - return str_obj.raw(); |
| + return raw(str_obj); |
| } |