Chromium Code Reviews| Index: src/isolate.cc |
| diff --git a/src/isolate.cc b/src/isolate.cc |
| index a0dd958fce449ff98943342262383b88a5a7f5e5..f567912c15a7566897965a1ccb7d5e7db9d98a86 100644 |
| --- a/src/isolate.cc |
| +++ b/src/isolate.cc |
| @@ -1551,6 +1551,7 @@ Isolate::Isolate() |
| regexp_stack_(NULL), |
| date_cache_(NULL), |
| code_stub_interface_descriptors_(NULL), |
| + call_descriptors_(NULL), |
| // TODO(bmeurer) Initialized lazily because it depends on flags; can |
| // be fixed once the default isolate cleanup is done. |
| random_number_generator_(NULL), |
| @@ -1759,6 +1760,9 @@ Isolate::~Isolate() { |
| delete[] code_stub_interface_descriptors_; |
| code_stub_interface_descriptors_ = NULL; |
| + delete[]call_descriptors_; |
|
Toon Verwaest
2013/12/18 16:11:41
nit: space after [].
Jarin
2013/12/30 15:15:47
Done.
|
| + call_descriptors_ = NULL; |
| + |
| delete regexp_stack_; |
| regexp_stack_ = NULL; |
| @@ -1952,6 +1956,8 @@ bool Isolate::Init(Deserializer* des) { |
| date_cache_ = new DateCache(); |
| code_stub_interface_descriptors_ = |
| new CodeStubInterfaceDescriptor[CodeStub::NUMBER_OF_IDS]; |
| + call_descriptors_ = |
| + new CodeStubInterfaceDescriptor[NUMBER_OF_CALL_DESCRIPTORS]; |
| cpu_profiler_ = new CpuProfiler(this); |
| heap_profiler_ = new HeapProfiler(heap()); |
| @@ -2112,6 +2118,8 @@ bool Isolate::Init(Deserializer* des) { |
| NewStringAddStub::InstallDescriptors(this); |
| } |
| + CallDescriptors::InitializeForIsolate(this); |
| + |
| initialized_from_snapshot_ = (des != NULL); |
| return true; |
| @@ -2289,6 +2297,13 @@ CodeStubInterfaceDescriptor* |
| } |
| +CodeStubInterfaceDescriptor* |
| + Isolate::call_descriptor(CallDescriptorKey index) { |
| + ASSERT(0 <= index && index < NUMBER_OF_CALL_DESCRIPTORS); |
| + return &call_descriptors_[index]; |
| +} |
| + |
| + |
| Object* Isolate::FindCodeObject(Address a) { |
| return inner_pointer_to_code_cache()->GcSafeFindCodeForInnerPointer(a); |
| } |