Index: src/bootstrapper.cc |
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc |
index 6735ff454933f0933f4b3a3b15e4b035625be565..f3898050d03dc3e2e7b8e33c5def2925168a9c31 100644 |
--- a/src/bootstrapper.cc |
+++ b/src/bootstrapper.cc |
@@ -1943,9 +1943,10 @@ bool Genesis::InstallExtensions(Handle<Context> global_context, |
// we can break the interface?) |
// Clear coloring of extension list |
+ i::Isolate* isolate = i::Isolate::Current(); |
v8::RegisteredExtension* current = v8::RegisteredExtension::first_extension(); |
while (current != NULL) { |
- current->set_state(v8::UNVISITED); |
+ isolate->extension_states()->set_state(current, i::UNVISITED); |
current = current->next(); |
} |
// Install auto extensions. |
@@ -1994,16 +1995,17 @@ bool Genesis::InstallExtension(const char* name) { |
bool Genesis::InstallExtension(v8::RegisteredExtension* current) { |
HandleScope scope; |
- if (current->state() == v8::INSTALLED) return true; |
+ ExtensionStates* extension_states = Isolate::Current()->extension_states(); |
+ if (extension_states->get_state(current) == INSTALLED) return true; |
// The current node has already been visited so there must be a |
// cycle in the dependency graph; fail. |
- if (current->state() == v8::VISITED) { |
+ if (extension_states->get_state(current) == VISITED) { |
v8::Utils::ReportApiFailure( |
"v8::Context::New()", "Circular extension dependency"); |
return false; |
} |
- ASSERT(current->state() == v8::UNVISITED); |
- current->set_state(v8::VISITED); |
+ ASSERT(extension_states->get_state(current) == UNVISITED); |
+ extension_states->set_state(current, VISITED); |
v8::Extension* extension = current->extension(); |
// Install the extension's dependencies |
for (int i = 0; i < extension->dependency_count(); i++) { |
@@ -2029,7 +2031,7 @@ bool Genesis::InstallExtension(v8::RegisteredExtension* current) { |
current->extension()->name()); |
isolate->clear_pending_exception(); |
} |
- current->set_state(v8::INSTALLED); |
+ extension_states->set_state(current, INSTALLED); |
return result; |
} |