Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1169)

Unified Diff: runtime/vm/object.cc

Issue 12982010: Review changes (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Merged Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/object.h ('k') | runtime/vm/raw_object.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/object.cc
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 884a9d1182fa9c2152da1476d2fe486b9fb86b27..479d7da6e1fa47affc5ebafbade129b481d6d76d 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -870,8 +870,6 @@ RawError* Object::Init(Isolate* isolate) {
object_store->set_##object_store_name##_class(cls); \
RegisterPrivateClass(cls, Symbols::_##name(), lib); \
- REGISTER_SCALARLIST_CLASS(Float32x4, float32x4);
- REGISTER_SCALARLIST_CLASS(Uint32x4, uint32x4);
REGISTER_SCALARLIST_CLASS(Int8Array, int8_array);
REGISTER_SCALARLIST_CLASS(Uint8Array, uint8_array);
REGISTER_SCALARLIST_CLASS(Uint8ClampedArray, uint8_clamped_array);
@@ -881,7 +879,6 @@ RawError* Object::Init(Isolate* isolate) {
REGISTER_SCALARLIST_CLASS(Uint32Array, uint32_array);
REGISTER_SCALARLIST_CLASS(Int64Array, int64_array);
REGISTER_SCALARLIST_CLASS(Uint64Array, uint64_array);
- REGISTER_SCALARLIST_CLASS(Float32x4Array, float32x4_array);
REGISTER_SCALARLIST_CLASS(Float32Array, float32_array);
REGISTER_SCALARLIST_CLASS(Float64Array, float64_array);
REGISTER_SCALARLIST_CLASS(ExternalInt8Array, external_int8_array);
@@ -894,18 +891,20 @@ RawError* Object::Init(Isolate* isolate) {
REGISTER_SCALARLIST_CLASS(ExternalUint32Array, external_uint32_array);
REGISTER_SCALARLIST_CLASS(ExternalInt64Array, external_int64_array);
REGISTER_SCALARLIST_CLASS(ExternalUint64Array, external_uint64_array);
- REGISTER_SCALARLIST_CLASS(ExternalFloat32x4Array, external_float32x4_array);
REGISTER_SCALARLIST_CLASS(ExternalFloat32Array, external_float32_array);
REGISTER_SCALARLIST_CLASS(ExternalFloat64Array, external_float64_array);
#undef REGISTER_SCALARLIST_CLASS
+
// Pre-register the typeddata library so the native class implementations
// can be hooked up before compiling it.
LOAD_LIBRARY(TypedData, typeddata);
ASSERT(!lib.IsNull());
ASSERT(lib.raw() == Library::TypedDataLibrary());
+ const intptr_t typeddata_class_array_length =
+ RawObject::NumberOfTypedDataClasses() + 2; // +2 for Float32x4 & Uint32x4
Array& typeddata_classes =
- Array::Handle(Array::New(RawObject::NumberOfTypedDataClasses()));
+ Array::Handle(Array::New(typeddata_class_array_length));
int index = 0;
#define REGISTER_TYPED_DATA_CLASS(clazz) \
cls = Class::NewTypedDataClass(kTypedData##clazz##Cid); \
@@ -937,6 +936,17 @@ RawError* Object::Init(Isolate* isolate) {
CLASS_LIST_TYPED_DATA(REGISTER_EXT_TYPED_DATA_CLASS);
#undef REGISTER_EXT_TYPED_DATA_CLASS
+ // Add Float32x4 and Uint32x4 to dart:typeddata and register them in the
+ // object store.
+ cls = Class::New<Float32x4>();
+ object_store->set_float32x4_class(cls);
+ typeddata_classes.SetAt(typeddata_class_array_length-2, cls);
+ RegisterPrivateClass(cls, Symbols::_Float32x4(), lib);
+ cls = Class::New<Uint32x4>();
+ object_store->set_uint32x4_class(cls);
+ typeddata_classes.SetAt(typeddata_class_array_length-1, cls);
+ RegisterPrivateClass(cls, Symbols::_Uint32x4(), lib);
+
object_store->set_typeddata_classes(typeddata_classes);
// Set the super type of class Stacktrace to Object type so that the
@@ -12594,17 +12604,18 @@ const char* Uint32x4::ToCString() const {
const intptr_t TypedData::element_size[] = {
- 1, // kTypedDataInt8ArrayCid.
- 1, // kTypedDataUint8ArrayCid.
- 1, // kTypedDataUint8ClampedArrayCid.
- 2, // kTypedDataInt16ArrayCid.
- 2, // kTypedDataUint16ArrayCid.
- 4, // kTypedDataInt32ArrayCid.
- 4, // kTypedDataUint32ArrayCid.
- 8, // kTypedDataInt64ArrayCid.
- 8, // kTypedDataUint64ArrayCid.
- 4, // kTypedDataFloat32ArrayCid.
- 8, // kTypedDataFloat64ArrayCid.
+ 1, // kTypedDataInt8ArrayCid.
+ 1, // kTypedDataUint8ArrayCid.
+ 1, // kTypedDataUint8ClampedArrayCid.
+ 2, // kTypedDataInt16ArrayCid.
+ 2, // kTypedDataUint16ArrayCid.
+ 4, // kTypedDataInt32ArrayCid.
+ 4, // kTypedDataUint32ArrayCid.
+ 8, // kTypedDataInt64ArrayCid.
+ 8, // kTypedDataUint64ArrayCid.
+ 4, // kTypedDataFloat32ArrayCid.
+ 8, // kTypedDataFloat64ArrayCid.
+ 16, // kTypedDataFloat32x4ArrayCid.
};
« no previous file with comments | « runtime/vm/object.h ('k') | runtime/vm/raw_object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698