Index: src/isolate.cc |
diff --git a/src/isolate.cc b/src/isolate.cc |
index 859d91381b1c290b2b14a9523656739a82bef2e7..7474a55e432f7e2239d10fa1da59855c39db6b12 100644 |
--- a/src/isolate.cc |
+++ b/src/isolate.cc |
@@ -2438,13 +2438,19 @@ bool Isolate::Init(Deserializer* des) { |
runtime_profiler_ = new RuntimeProfiler(this); |
// If we are deserializing, read the state into the now-empty heap. |
- if (!create_heap_objects) { |
- des->Deserialize(this); |
- } |
- load_stub_cache_->Initialize(); |
- store_stub_cache_->Initialize(); |
- if (FLAG_ignition || serializer_enabled()) { |
- interpreter_->Initialize(); |
+ { |
+ AlwaysAllocateScope always_allocate(this); |
+ |
+ if (!create_heap_objects) { |
+ des->Deserialize(this); |
+ } |
+ load_stub_cache_->Initialize(); |
+ store_stub_cache_->Initialize(); |
+ if (FLAG_ignition || serializer_enabled()) { |
+ interpreter_->Initialize(); |
+ } |
+ |
+ heap_.NotifyDeserializationComplete(); |
} |
// Finish initialization of ThreadLocal after deserialization is done. |
@@ -2475,8 +2481,6 @@ bool Isolate::Init(Deserializer* des) { |
time_millis_at_init_ = heap_.MonotonicallyIncreasingTimeInMs(); |
- heap_.NotifyDeserializationComplete(); |
- |
if (!create_heap_objects) { |
// Now that the heap is consistent, it's OK to generate the code for the |
// deopt entry table that might have been referred to by optimized code in |