Index: runtime/vm/object.cc |
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc |
index dc8ceee5b3050eb6b6e5b8569126b4192df8f4e8..a368c52bdb2f1d0cc1725961cad6cc3099b3d3b2 100644 |
--- a/runtime/vm/object.cc |
+++ b/runtime/vm/object.cc |
@@ -153,6 +153,7 @@ RawClass* Object::context_class_ = reinterpret_cast<RawClass*>(RAW_NULL); |
RawClass* Object::context_scope_class_ = reinterpret_cast<RawClass*>(RAW_NULL); |
RawClass* Object::singletargetcache_class_ = |
reinterpret_cast<RawClass*>(RAW_NULL); |
+RawClass* Object::unlinkedcall_class_ = reinterpret_cast<RawClass*>(RAW_NULL); |
RawClass* Object::icdata_class_ = reinterpret_cast<RawClass*>(RAW_NULL); |
RawClass* Object::megamorphic_cache_class_ = |
reinterpret_cast<RawClass*>(RAW_NULL); |
@@ -656,6 +657,9 @@ void Object::InitOnce(Isolate* isolate) { |
cls = Class::New<SingleTargetCache>(); |
singletargetcache_class_ = cls.raw(); |
+ cls = Class::New<UnlinkedCall>(); |
+ unlinkedcall_class_ = cls.raw(); |
+ |
cls = Class::New<ICData>(); |
icdata_class_ = cls.raw(); |
@@ -998,6 +1002,7 @@ void Object::FinalizeVMIsolate(Isolate* isolate) { |
SET_CLASS_NAME(context, Context); |
SET_CLASS_NAME(context_scope, ContextScope); |
SET_CLASS_NAME(singletargetcache, SingleTargetCache); |
+ SET_CLASS_NAME(unlinkedcall, UnlinkedCall); |
SET_CLASS_NAME(icdata, ICData); |
SET_CLASS_NAME(megamorphic_cache, MegamorphicCache); |
SET_CLASS_NAME(subtypetestcache, SubtypeTestCache); |
@@ -12648,6 +12653,29 @@ RawSingleTargetCache* SingleTargetCache::New() { |
} |
+void UnlinkedCall::set_target_name(const String& value) const { |
+ StorePointer(&raw_ptr()->target_name_, value.raw()); |
+} |
+ |
+ |
+void UnlinkedCall::set_args_descriptor(const Array& value) const { |
+ StorePointer(&raw_ptr()->args_descriptor_, value.raw()); |
+} |
+ |
+ |
+const char* UnlinkedCall::ToCString() const { |
+ return "UnlinkedCall"; |
+} |
+ |
+ |
+RawUnlinkedCall* UnlinkedCall::New() { |
+ RawObject* raw = Object::Allocate(UnlinkedCall::kClassId, |
+ UnlinkedCall::InstanceSize(), |
+ Heap::kOld); |
+ return reinterpret_cast<RawUnlinkedCall*>(raw); |
+} |
+ |
+ |
void ICData::ResetSwitchable(Zone* zone) const { |
ASSERT(NumArgsTested() == 1); |
set_ic_data_array(Array::Handle(zone, CachedEmptyICDataArray(1))); |