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

Unified Diff: runtime/vm/snapshot.cc

Issue 1310463005: - Ensure that HandleScope is initialized with a thread. (Remove (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Address review comments Created 5 years, 4 months 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/snapshot.h ('k') | runtime/vm/snapshot_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/snapshot.cc
diff --git a/runtime/vm/snapshot.cc b/runtime/vm/snapshot.cc
index 415d1ed1e6f50f3f61430f6f564f615b2318331d..4b8695d94c8ff2cf7d82144da22ca50344fe4398 100644
--- a/runtime/vm/snapshot.cc
+++ b/runtime/vm/snapshot.cc
@@ -23,7 +23,7 @@
// We currently only expect the Dart mutator to read snapshots.
#define ASSERT_NO_SAFEPOINT_SCOPE() \
isolate()->AssertCurrentThreadIsMutator(); \
- ASSERT(Thread::Current()->no_safepoint_scope_depth() != 0)
+ ASSERT(thread()->no_safepoint_scope_depth() != 0)
namespace dart {
@@ -173,29 +173,28 @@ SnapshotReader::SnapshotReader(
intptr_t size,
Snapshot::Kind kind,
ZoneGrowableArray<BackRefNode>* backward_refs,
- Isolate* isolate,
- Zone* zone)
+ Thread* thread)
: BaseReader(buffer, size),
kind_(kind),
snapshot_code_(false),
- isolate_(isolate),
- zone_(zone),
- heap_(isolate->heap()),
- old_space_(isolate->heap()->old_space()),
- cls_(Class::Handle(isolate)),
- obj_(Object::Handle(isolate)),
- pobj_(PassiveObject::Handle(isolate)),
- array_(Array::Handle(isolate)),
- field_(Field::Handle(isolate)),
- str_(String::Handle(isolate)),
- library_(Library::Handle(isolate)),
- type_(AbstractType::Handle(isolate)),
- type_arguments_(TypeArguments::Handle(isolate)),
- tokens_(Array::Handle(isolate)),
- stream_(TokenStream::Handle(isolate)),
- data_(ExternalTypedData::Handle(isolate)),
- typed_data_(TypedData::Handle(isolate)),
- error_(UnhandledException::Handle(isolate)),
+ thread_(thread),
+ zone_(thread->zone()),
+ heap_(isolate()->heap()),
+ old_space_(thread_->isolate()->heap()->old_space()),
+ cls_(Class::Handle(zone_)),
+ obj_(Object::Handle(zone_)),
+ pobj_(PassiveObject::Handle(zone_)),
+ array_(Array::Handle(zone_)),
+ field_(Field::Handle(zone_)),
+ str_(String::Handle(zone_)),
+ library_(Library::Handle(zone_)),
+ type_(AbstractType::Handle(zone_)),
+ type_arguments_(TypeArguments::Handle(zone_)),
+ tokens_(Array::Handle(zone_)),
+ stream_(TokenStream::Handle(zone_)),
+ data_(ExternalTypedData::Handle(zone_)),
+ typed_data_(TypedData::Handle(zone_)),
+ error_(UnhandledException::Handle(zone_)),
max_vm_isolate_object_id_(
(kind == Snapshot::kFull) ?
Object::vm_isolate_snapshot_object_table().Length() : 0),
@@ -304,21 +303,19 @@ intptr_t SnapshotReader::NextAvailableObjectId() const {
void SnapshotReader::SetReadException(const char* msg) {
- Thread* thread = Thread::Current();
- Zone* zone = thread->zone();
- const String& error_str = String::Handle(zone, String::New(msg));
- const Array& args = Array::Handle(zone, Array::New(1));
+ const String& error_str = String::Handle(zone(), String::New(msg));
+ const Array& args = Array::Handle(zone(), Array::New(1));
args.SetAt(0, error_str);
- Object& result = Object::Handle(zone);
- const Library& library = Library::Handle(zone, Library::CoreLibrary());
+ Object& result = Object::Handle(zone());
+ const Library& library = Library::Handle(zone(), Library::CoreLibrary());
result = DartLibraryCalls::InstanceCreate(library,
Symbols::ArgumentError(),
Symbols::Dot(),
args);
- const Stacktrace& stacktrace = Stacktrace::Handle(zone);
+ const Stacktrace& stacktrace = Stacktrace::Handle(zone());
const UnhandledException& error = UnhandledException::Handle(
- zone, UnhandledException::New(Instance::Cast(result), stacktrace));
- thread->long_jump_base()->Jump(1, error);
+ zone(), UnhandledException::New(Instance::Cast(result), stacktrace));
+ thread()->long_jump_base()->Jump(1, error);
}
@@ -328,7 +325,7 @@ RawObject* SnapshotReader::VmIsolateSnapshotObject(intptr_t index) const {
bool SnapshotReader::is_vm_isolate() const {
- return isolate_ == Dart::vm_isolate();
+ return isolate() == Dart::vm_isolate();
}
@@ -1099,7 +1096,7 @@ RawObject* SnapshotReader::AllocateUninitialized(intptr_t class_id,
// read part and return the error object back.
const UnhandledException& error = UnhandledException::Handle(
object_store()->preallocated_unhandled_exception());
- Thread::Current()->long_jump_base()->Jump(1, error);
+ thread()->long_jump_base()->Jump(1, error);
}
VerifiedMemory::Accept(address, size);
@@ -1276,14 +1273,13 @@ void SnapshotReader::ArrayReadFrom(intptr_t object_id,
VmIsolateSnapshotReader::VmIsolateSnapshotReader(const uint8_t* buffer,
intptr_t size,
- Zone* zone)
+ Thread* thread)
: SnapshotReader(buffer,
size,
Snapshot::kFull,
new ZoneGrowableArray<BackRefNode>(
kNumVmIsolateSnapshotReferences),
- Dart::vm_isolate(),
- zone) {
+ thread) {
}
@@ -1341,15 +1337,13 @@ RawApiError* VmIsolateSnapshotReader::ReadVmIsolateSnapshot() {
IsolateSnapshotReader::IsolateSnapshotReader(const uint8_t* buffer,
intptr_t size,
- Isolate* isolate,
- Zone* zone)
+ Thread* thread)
: SnapshotReader(buffer,
size,
Snapshot::kFull,
new ZoneGrowableArray<BackRefNode>(
kNumInitialReferencesInFullSnapshot),
- isolate,
- zone) {
+ thread) {
}
@@ -1360,14 +1354,12 @@ IsolateSnapshotReader::~IsolateSnapshotReader() {
ScriptSnapshotReader::ScriptSnapshotReader(const uint8_t* buffer,
intptr_t size,
- Isolate* isolate,
- Zone* zone)
+ Thread* thread)
: SnapshotReader(buffer,
size,
Snapshot::kScript,
new ZoneGrowableArray<BackRefNode>(kNumInitialReferences),
- isolate,
- zone) {
+ thread) {
}
@@ -1378,14 +1370,12 @@ ScriptSnapshotReader::~ScriptSnapshotReader() {
MessageSnapshotReader::MessageSnapshotReader(const uint8_t* buffer,
intptr_t size,
- Isolate* isolate,
- Zone* zone)
+ Thread* thread)
: SnapshotReader(buffer,
size,
Snapshot::kMessage,
new ZoneGrowableArray<BackRefNode>(kNumInitialReferences),
- isolate,
- zone) {
+ thread) {
}
@@ -1403,9 +1393,9 @@ SnapshotWriter::SnapshotWriter(Snapshot::Kind kind,
bool snapshot_code)
: BaseWriter(buffer, alloc, initial_size),
kind_(kind),
- isolate_(Isolate::Current()),
- object_store_(isolate_->object_store()),
- class_table_(isolate_->class_table()),
+ thread_(Thread::Current()),
+ object_store_(thread_->isolate()->object_store()),
+ class_table_(thread_->isolate()->class_table()),
forward_list_(forward_list),
exception_type_(Exceptions::kNone),
exception_msg_(NULL),
@@ -2218,7 +2208,7 @@ RawFunction* SnapshotWriter::IsSerializableClosure(RawClass* cls,
}
// Not a closure of a top level method or static function, throw an
// exception as we do not allow these objects to be serialized.
- HANDLESCOPE(isolate());
+ HANDLESCOPE(thread());
const Class& clazz = Class::Handle(isolate(), cls);
const Function& errorFunc = Function::Handle(isolate(), func);
@@ -2230,7 +2220,7 @@ RawFunction* SnapshotWriter::IsSerializableClosure(RawClass* cls,
UnmarkAll(); // Unmark objects now as we are about to print stuff.
intptr_t len = OS::SNPrint(NULL, 0, format,
clazz.ToCString(), errorFunc.ToCString()) + 1;
- char* chars = Thread::Current()->zone()->Alloc<char>(len);
+ char* chars = thread()->zone()->Alloc<char>(len);
OS::SNPrint(chars, len, format, clazz.ToCString(), errorFunc.ToCString());
SetWriteException(Exceptions::kArgument, chars);
}
@@ -2253,13 +2243,13 @@ RawClass* SnapshotWriter::GetFunctionOwner(RawFunction* func) {
void SnapshotWriter::CheckForNativeFields(RawClass* cls) {
if (cls->ptr()->num_native_fields_ != 0) {
// We do not allow objects with native fields in an isolate message.
- HANDLESCOPE(isolate());
+ HANDLESCOPE(thread());
const char* format = "Illegal argument in isolate message"
" : (object extends NativeWrapper - %s)";
UnmarkAll(); // Unmark objects now as we are about to print stuff.
const Class& clazz = Class::Handle(isolate(), cls);
intptr_t len = OS::SNPrint(NULL, 0, format, clazz.ToCString()) + 1;
- char* chars = Thread::Current()->zone()->Alloc<char>(len);
+ char* chars = thread()->zone()->Alloc<char>(len);
OS::SNPrint(chars, len, format, clazz.ToCString());
SetWriteException(Exceptions::kArgument, chars);
}
« no previous file with comments | « runtime/vm/snapshot.h ('k') | runtime/vm/snapshot_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698