| Index: src/isolate.cc
|
| diff --git a/src/isolate.cc b/src/isolate.cc
|
| index 9ecc7ef07364d545d57d396d94d96f7c10ec513b..dbfa03571a5f8fd3ef62da6474b611677051e847 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),
|
| @@ -1758,6 +1759,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;
|
|
|
| @@ -1948,6 +1952,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());
|
|
|
| @@ -2108,6 +2114,8 @@ bool Isolate::Init(Deserializer* des) {
|
| NewStringAddStub::InstallDescriptors(this);
|
| }
|
|
|
| + CallDescriptors::InitializeForIsolate(this);
|
| +
|
| initialized_from_snapshot_ = (des != NULL);
|
|
|
| return true;
|
| @@ -2285,6 +2293,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);
|
| }
|
|
|