Index: src/interface-descriptors.h |
diff --git a/src/interface-descriptors.h b/src/interface-descriptors.h |
index 7c5bb3ecdf9f86a4d770abccda1b73d995a554c2..a118c9081b759c10b745e9cb5679748a0898743f 100644 |
--- a/src/interface-descriptors.h |
+++ b/src/interface-descriptors.h |
@@ -104,8 +104,6 @@ class CallDescriptors { |
#undef DEF_ENUM |
NUMBER_OF_DESCRIPTORS |
}; |
- |
- static void InitializeForIsolate(Isolate* isolate); |
}; |
@@ -163,24 +161,18 @@ class CallInterfaceDescriptor { |
protected: |
const CallInterfaceDescriptorData* data() const { return data_; } |
- static void InitializeData( |
- Isolate* isolate, CallDescriptors::Key key, int register_parameter_count, |
- Register* registers, Representation* param_representations, |
- PlatformInterfaceDescriptor* platform_descriptor = NULL) { |
- isolate->call_descriptor_data(key) |
- ->Initialize(register_parameter_count, registers, param_representations, |
- platform_descriptor); |
- } |
- |
private: |
const CallInterfaceDescriptorData* data_; |
}; |
-#define DECLARE_DESCRIPTOR(name) \ |
- explicit name(Isolate* isolate) : CallInterfaceDescriptor(isolate, key()) {} \ |
- static inline CallDescriptors::Key key(); \ |
- static void Initialize(Isolate* isolate); |
+#define DECLARE_DESCRIPTOR(name) \ |
+ explicit name(Isolate* isolate) : CallInterfaceDescriptor(isolate, key()) { \ |
+ if (!data()->IsInitialized()) \ |
+ Initialize(isolate->call_descriptor_data(key())); \ |
+ } \ |
+ static inline CallDescriptors::Key key(); \ |
+ void Initialize(CallInterfaceDescriptorData* data); |
class LoadDescriptor : public CallInterfaceDescriptor { |