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

Unified Diff: runtime/vm/isolate.cc

Issue 1394673002: Move reusable handles from isolate to thread. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fix release build Created 5 years, 2 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/isolate.h ('k') | runtime/vm/longjump.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/isolate.cc
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index 5ee061a9ffd8678d5fc1df12b9f437ebc8a033f6..f84b00ad1c6403f815c4b9702b89e9f5431318ec 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -794,10 +794,7 @@ Isolate::Isolate(const Dart_IsolateFlags& api_flags)
compilation_allowed_(true),
cha_(NULL),
next_(NULL),
- pause_loop_monitor_(NULL),
- REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_INITIALIZERS)
- REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_SCOPE_INIT)
- reusable_handles_() {
+ pause_loop_monitor_(NULL) {
flags_.CopyFrom(api_flags);
Thread::Current()->set_vm_tag(VMTag::kEmbedderTagId);
set_user_tag(UserTags::kDefaultUserTag);
@@ -882,12 +879,6 @@ Isolate* Isolate::Init(const char* name_prefix,
// the current isolate.
Thread::EnterIsolate(result);
- // Setup the isolate specific resuable handles.
-#define REUSABLE_HANDLE_ALLOCATION(object) \
- result->object##_handle_ = result->AllocateReusableHandle<object>();
- REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_ALLOCATION)
-#undef REUSABLE_HANDLE_ALLOCATION
-
// Setup the isolate message handler.
MessageHandler* handler = new IsolateMessageHandler(result);
ASSERT(handler != NULL);
@@ -1580,13 +1571,13 @@ void Isolate::PrintInvokedFunctions() {
class FinalizeWeakPersistentHandlesVisitor : public HandleVisitor {
public:
- FinalizeWeakPersistentHandlesVisitor() : HandleVisitor(Isolate::Current()) {
+ FinalizeWeakPersistentHandlesVisitor() : HandleVisitor(Thread::Current()) {
}
void VisitHandle(uword addr) {
FinalizablePersistentHandle* handle =
reinterpret_cast<FinalizablePersistentHandle*>(addr);
- handle->UpdateUnreachable(I);
+ handle->UpdateUnreachable(thread()->isolate());
}
private:
@@ -1771,9 +1762,6 @@ void Isolate::VisitObjectPointers(ObjectPointerVisitor* visitor,
// Visit objects in per isolate stubs.
StubCode::VisitObjectPointers(visitor);
- // Visit objects in isolate specific handles area.
- reusable_handles_.VisitObjectPointers(visitor);
-
// Visit the dart api state for all local and persistent handles.
if (api_state() != NULL) {
api_state()->VisitObjectPointers(visitor, visit_prologue_weak_handles);
@@ -2313,14 +2301,6 @@ void Isolate::EnableIsolateCreation() {
}
-template<class C>
-C* Isolate::AllocateReusableHandle() {
- C* handle = reinterpret_cast<C*>(reusable_handles_.AllocateScopedHandle());
- C::initializeHandle(handle, C::null());
- return handle;
-}
-
-
void Isolate::KillLocked(LibMsgId msg_id) {
Dart_CObject kill_msg;
Dart_CObject* list_values[4];
« no previous file with comments | « runtime/vm/isolate.h ('k') | runtime/vm/longjump.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698