Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(823)

Unified Diff: runtime/vm/raw_object_snapshot.cc

Issue 11364134: Merge libv1. (Closed) Base URL: https://dart.googlecode.com/svn/experimental/lib_v2/dart
Patch Set: Reupload due to error Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/raw_object.h ('k') | runtime/vm/snapshot.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..1248eca3d85e8fd8f439f45f7418d7a1c04e516c 100644
--- a/runtime/vm/raw_object_snapshot.cc
+++ b/runtime/vm/raw_object_snapshot.cc
@@ -1626,9 +1626,9 @@ void RawString::WriteTo(SnapshotWriter* writer,
}
-template<typename HandleType, typename CharacterType>
+template<typename StringType, typename CharacterType>
void String::ReadFromImpl(SnapshotReader* reader,
- HandleType* str_obj,
+ String* str_obj,
intptr_t len,
intptr_t tags,
Snapshot::Kind kind) {
@@ -1644,11 +1644,11 @@ void String::ReadFromImpl(SnapshotReader* reader,
*str_obj ^= Symbols::New(ptr, len);
} else {
// Set up the string object.
- *str_obj = HandleType::New(len, HEAP_SPACE(kind));
+ *str_obj = StringType::New(len, HEAP_SPACE(kind));
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>();
+ *StringType::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);
}
« no previous file with comments | « runtime/vm/raw_object.h ('k') | runtime/vm/snapshot.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698