| Index: runtime/vm/object.cc
|
| diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
|
| index d447c93c07974800b1b7eed09d92a695f0fbbebd..12f641c9724d1c3d95c9602e15059b48b9029263 100644
|
| --- a/runtime/vm/object.cc
|
| +++ b/runtime/vm/object.cc
|
| @@ -1510,7 +1510,7 @@ RawError* Object::Init(Isolate* isolate, kernel::Program* kernel_program) {
|
| ASSERT(lib.raw() == Library::TypedDataLibrary());
|
| #define REGISTER_TYPED_DATA_CLASS(clazz) \
|
| cls = Class::NewTypedDataClass(kTypedData##clazz##ArrayCid); \
|
| - RegisterClass(cls, Symbols::clazz##List(), lib);
|
| + RegisterPrivateClass(cls, Symbols::clazz##List(), lib);
|
|
|
| DART_CLASS_LIST_TYPED_DATA(REGISTER_TYPED_DATA_CLASS);
|
| #undef REGISTER_TYPED_DATA_CLASS
|
| @@ -1531,39 +1531,48 @@ RawError* Object::Init(Isolate* isolate, kernel::Program* kernel_program) {
|
| cls = Class::New<Instance>(kByteBufferCid);
|
| cls.set_instance_size(0);
|
| cls.set_next_field_offset(-kWordSize);
|
| - RegisterClass(cls, Symbols::ByteBuffer(), lib);
|
| + RegisterPrivateClass(cls, Symbols::_ByteBuffer(), lib);
|
| pending_classes.Add(cls);
|
|
|
| CLASS_LIST_TYPED_DATA(REGISTER_EXT_TYPED_DATA_CLASS);
|
| #undef REGISTER_EXT_TYPED_DATA_CLASS
|
| - // Register Float32x4 and Int32x4 in the object store.
|
| + // Register Float32x4, Int32x4, and Float64x2 in the object store.
|
| cls = Class::New<Float32x4>();
|
| + RegisterPrivateClass(cls, Symbols::_Float32x4(), lib);
|
| + pending_classes.Add(cls);
|
| + object_store->set_float32x4_class(cls);
|
| +
|
| + cls = Class::New<Instance>(kIllegalCid);
|
| RegisterClass(cls, Symbols::Float32x4(), lib);
|
| cls.set_num_type_arguments(0);
|
| cls.set_num_own_type_arguments(0);
|
| cls.set_is_prefinalized();
|
| - pending_classes.Add(cls);
|
| - object_store->set_float32x4_class(cls);
|
| type = Type::NewNonParameterizedType(cls);
|
| object_store->set_float32x4_type(type);
|
|
|
| cls = Class::New<Int32x4>();
|
| + RegisterPrivateClass(cls, Symbols::_Int32x4(), lib);
|
| + pending_classes.Add(cls);
|
| + object_store->set_int32x4_class(cls);
|
| +
|
| + cls = Class::New<Instance>(kIllegalCid);
|
| RegisterClass(cls, Symbols::Int32x4(), lib);
|
| cls.set_num_type_arguments(0);
|
| cls.set_num_own_type_arguments(0);
|
| cls.set_is_prefinalized();
|
| - pending_classes.Add(cls);
|
| - object_store->set_int32x4_class(cls);
|
| type = Type::NewNonParameterizedType(cls);
|
| object_store->set_int32x4_type(type);
|
|
|
| cls = Class::New<Float64x2>();
|
| + RegisterPrivateClass(cls, Symbols::_Float64x2(), lib);
|
| + pending_classes.Add(cls);
|
| + object_store->set_float64x2_class(cls);
|
| +
|
| + cls = Class::New<Instance>(kIllegalCid);
|
| RegisterClass(cls, Symbols::Float64x2(), lib);
|
| cls.set_num_type_arguments(0);
|
| cls.set_num_own_type_arguments(0);
|
| cls.set_is_prefinalized();
|
| - pending_classes.Add(cls);
|
| - object_store->set_float64x2_class(cls);
|
| type = Type::NewNonParameterizedType(cls);
|
| object_store->set_float64x2_type(type);
|
|
|
| @@ -11575,19 +11584,16 @@ void Library::CheckFunctionFingerprints() {
|
| #undef CHECK_FINGERPRINTS2
|
|
|
|
|
| - Class& cls = Class::Handle();
|
| -
|
| -#define CHECK_FACTORY_FINGERPRINTS(factory_symbol, cid, fp) \
|
| - cls = Isolate::Current()->class_table()->At(cid); \
|
| - func = cls.LookupFunctionAllowPrivate(Symbols::factory_symbol()); \
|
| +#define CHECK_FACTORY_FINGERPRINTS(symbol, class_name, factory_name, cid, fp) \
|
| + func = GetFunction(all_libs, #class_name, #factory_name); \
|
| if (func.IsNull()) { \
|
| has_errors = true; \
|
| - OS::Print("Function not found %s.%s\n", cls.ToCString(), \
|
| - Symbols::factory_symbol().ToCString()); \
|
| + OS::Print("Function not found %s.%s\n", #class_name, #factory_name); \
|
| } else { \
|
| - CHECK_FINGERPRINT2(func, factory_symbol, cid, fp); \
|
| + CHECK_FINGERPRINT2(func, symbol, cid, fp); \
|
| }
|
|
|
| + all_libs.Add(&Library::ZoneHandle(Library::CoreLibrary()));
|
| RECOGNIZED_LIST_FACTORY_LIST(CHECK_FACTORY_FINGERPRINTS);
|
|
|
| #undef CHECK_FACTORY_FINGERPRINTS
|
|
|