| Index: src/api.cc
|
| ===================================================================
|
| --- src/api.cc (revision 1364)
|
| +++ src/api.cc (working copy)
|
| @@ -376,7 +376,9 @@
|
| void V8::DisposeGlobal(void** obj) {
|
| LOG_API("DisposeGlobal");
|
| if (has_shut_down) return;
|
| - i::GlobalHandles::Destroy(reinterpret_cast<i::Object**>(obj));
|
| + i::Object** ptr = reinterpret_cast<i::Object**>(obj);
|
| + if ((*ptr)->IsGlobalContext()) i::Heap::NotifyContextDisposed();
|
| + i::GlobalHandles::Destroy(ptr);
|
| }
|
|
|
| // --- H a n d l e s ---
|
| @@ -2207,6 +2209,9 @@
|
| LOG_API("Context::New");
|
| ON_BAILOUT("v8::Context::New()", return Persistent<Context>());
|
|
|
| + // Give the heap a chance to cleanup if we've disposed contexts.
|
| + i::Heap::CollectAllGarbageIfContextDisposed();
|
| +
|
| v8::Handle<ObjectTemplate> proxy_template = global_template;
|
| i::Handle<i::FunctionTemplateInfo> proxy_constructor;
|
| i::Handle<i::FunctionTemplateInfo> global_constructor;
|
|
|