| Index: src/isolate.cc
|
| diff --git a/src/isolate.cc b/src/isolate.cc
|
| index c20faf5e025fdd2e71eeb49870f9fbaec9cfc871..89fc219d5c9f0ae1d0907870bdf2d5330a58b088 100644
|
| --- a/src/isolate.cc
|
| +++ b/src/isolate.cc
|
| @@ -1550,6 +1550,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_;
|
| + call_descriptors_ = NULL;
|
| +
|
| delete regexp_stack_;
|
| regexp_stack_ = NULL;
|
|
|
| @@ -1949,6 +1953,8 @@ bool Isolate::Init(Deserializer* des) {
|
| date_cache_ = new DateCache();
|
| code_stub_interface_descriptors_ =
|
| new CodeStubInterfaceDescriptor[CodeStub::NUMBER_OF_IDS];
|
| + call_descriptors_ =
|
| + new CallInterfaceDescriptor[NUMBER_OF_CALL_DESCRIPTORS];
|
| cpu_profiler_ = new CpuProfiler(this);
|
| heap_profiler_ = new HeapProfiler(heap());
|
|
|
| @@ -2110,6 +2116,8 @@ bool Isolate::Init(Deserializer* des) {
|
| NewStringAddStub::InstallDescriptors(this);
|
| }
|
|
|
| + CallDescriptors::InitializeForIsolate(this);
|
| +
|
| initialized_from_snapshot_ = (des != NULL);
|
|
|
| return true;
|
| @@ -2287,6 +2295,13 @@ CodeStubInterfaceDescriptor*
|
| }
|
|
|
|
|
| +CallInterfaceDescriptor*
|
| + 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);
|
| }
|
|
|