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

Side by Side Diff: runtime/vm/class_finalizer.cc

Issue 11437028: Added Uint8ClampedList. COmpielr optimziations to follow in next CL. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/class_finalizer.h" 5 #include "vm/class_finalizer.h"
6 6
7 #include "vm/flags.h" 7 #include "vm/flags.h"
8 #include "vm/heap.h" 8 #include "vm/heap.h"
9 #include "vm/isolate.h" 9 #include "vm/isolate.h"
10 #include "vm/longjump.h" 10 #include "vm/longjump.h"
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 cls = object_store->double_class(); 213 cls = object_store->double_class();
214 ASSERT(Double::InstanceSize() == cls.instance_size()); 214 ASSERT(Double::InstanceSize() == cls.instance_size());
215 cls = object_store->bool_class(); 215 cls = object_store->bool_class();
216 ASSERT(Bool::InstanceSize() == cls.instance_size()); 216 ASSERT(Bool::InstanceSize() == cls.instance_size());
217 cls = object_store->array_class(); 217 cls = object_store->array_class();
218 ASSERT(Array::InstanceSize() == cls.instance_size()); 218 ASSERT(Array::InstanceSize() == cls.instance_size());
219 cls = object_store->immutable_array_class(); 219 cls = object_store->immutable_array_class();
220 ASSERT(ImmutableArray::InstanceSize() == cls.instance_size()); 220 ASSERT(ImmutableArray::InstanceSize() == cls.instance_size());
221 cls = object_store->uint8_array_class(); 221 cls = object_store->uint8_array_class();
222 ASSERT(Uint8Array::InstanceSize() == cls.instance_size()); 222 ASSERT(Uint8Array::InstanceSize() == cls.instance_size());
223 cls = object_store->uint8_clamped_array_class();
224 ASSERT(Uint8ClampedArray::InstanceSize() == cls.instance_size());
223 cls = object_store->int16_array_class(); 225 cls = object_store->int16_array_class();
224 ASSERT(Int16Array::InstanceSize() == cls.instance_size()); 226 ASSERT(Int16Array::InstanceSize() == cls.instance_size());
225 cls = object_store->uint16_array_class(); 227 cls = object_store->uint16_array_class();
226 ASSERT(Uint16Array::InstanceSize() == cls.instance_size()); 228 ASSERT(Uint16Array::InstanceSize() == cls.instance_size());
227 cls = object_store->int32_array_class(); 229 cls = object_store->int32_array_class();
228 ASSERT(Int32Array::InstanceSize() == cls.instance_size()); 230 ASSERT(Int32Array::InstanceSize() == cls.instance_size());
229 cls = object_store->uint32_array_class(); 231 cls = object_store->uint32_array_class();
230 ASSERT(Uint32Array::InstanceSize() == cls.instance_size()); 232 ASSERT(Uint32Array::InstanceSize() == cls.instance_size());
231 cls = object_store->int64_array_class(); 233 cls = object_store->int64_array_class();
232 ASSERT(Int64Array::InstanceSize() == cls.instance_size()); 234 ASSERT(Int64Array::InstanceSize() == cls.instance_size());
233 cls = object_store->uint64_array_class(); 235 cls = object_store->uint64_array_class();
234 ASSERT(Uint64Array::InstanceSize() == cls.instance_size()); 236 ASSERT(Uint64Array::InstanceSize() == cls.instance_size());
235 cls = object_store->float32_array_class(); 237 cls = object_store->float32_array_class();
236 ASSERT(Float32Array::InstanceSize() == cls.instance_size()); 238 ASSERT(Float32Array::InstanceSize() == cls.instance_size());
237 cls = object_store->float64_array_class(); 239 cls = object_store->float64_array_class();
238 ASSERT(Float64Array::InstanceSize() == cls.instance_size()); 240 ASSERT(Float64Array::InstanceSize() == cls.instance_size());
239 cls = object_store->external_int8_array_class(); 241 cls = object_store->external_int8_array_class();
240 ASSERT(ExternalInt8Array::InstanceSize() == cls.instance_size()); 242 ASSERT(ExternalInt8Array::InstanceSize() == cls.instance_size());
241 cls = object_store->external_uint8_array_class(); 243 cls = object_store->external_uint8_clamped_array_class();
242 ASSERT(ExternalUint8Array::InstanceSize() == cls.instance_size()); 244 ASSERT(ExternalUint8ClampedArray::InstanceSize() == cls.instance_size());
243 cls = object_store->external_int16_array_class(); 245 cls = object_store->external_int16_array_class();
244 ASSERT(ExternalInt16Array::InstanceSize() == cls.instance_size()); 246 ASSERT(ExternalInt16Array::InstanceSize() == cls.instance_size());
245 cls = object_store->external_uint16_array_class(); 247 cls = object_store->external_uint16_array_class();
246 ASSERT(ExternalUint16Array::InstanceSize() == cls.instance_size()); 248 ASSERT(ExternalUint16Array::InstanceSize() == cls.instance_size());
247 cls = object_store->external_int32_array_class(); 249 cls = object_store->external_int32_array_class();
248 ASSERT(ExternalInt32Array::InstanceSize() == cls.instance_size()); 250 ASSERT(ExternalInt32Array::InstanceSize() == cls.instance_size());
249 cls = object_store->external_uint32_array_class(); 251 cls = object_store->external_uint32_array_class();
250 ASSERT(ExternalUint32Array::InstanceSize() == cls.instance_size()); 252 ASSERT(ExternalUint32Array::InstanceSize() == cls.instance_size());
251 cls = object_store->external_int64_array_class(); 253 cls = object_store->external_int64_array_class();
252 ASSERT(ExternalInt64Array::InstanceSize() == cls.instance_size()); 254 ASSERT(ExternalInt64Array::InstanceSize() == cls.instance_size());
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 } 316 }
315 Type& super_type = Type::Handle(cls.super_type()); 317 Type& super_type = Type::Handle(cls.super_type());
316 if (super_type.IsNull()) { 318 if (super_type.IsNull()) {
317 return; 319 return;
318 } 320 }
319 // Resolve failures lead to a longjmp. 321 // Resolve failures lead to a longjmp.
320 ResolveType(cls, super_type, kCanonicalizeWellFormed); 322 ResolveType(cls, super_type, kCanonicalizeWellFormed);
321 const Class& super_class = Class::Handle(super_type.type_class()); 323 const Class& super_class = Class::Handle(super_type.type_class());
322 // If cls belongs to core lib or to core lib's implementation, restrictions 324 // If cls belongs to core lib or to core lib's implementation, restrictions
323 // about allowed interfaces are lifted. 325 // about allowed interfaces are lifted.
324 if (cls.library() != Library::CoreLibrary()) { 326 if ((cls.library() != Library::CoreLibrary()) &&
327 (cls.library() != Library::ScalarlistLibrary())) {
cshapiro 2012/12/05 23:01:49 Why this new code?
srdjan 2012/12/06 19:23:14 Forgot to remove.
325 // Prevent extending core implementation classes. 328 // Prevent extending core implementation classes.
326 bool is_error = false; 329 bool is_error = false;
327 switch (super_class.id()) { 330 switch (super_class.id()) {
328 case kNumberCid: 331 case kNumberCid:
329 case kIntegerCid: 332 case kIntegerCid:
330 case kSmiCid: 333 case kSmiCid:
331 case kMintCid: 334 case kMintCid:
332 case kBigintCid: 335 case kBigintCid:
333 case kDoubleCid: 336 case kDoubleCid:
334 case kOneByteStringCid: 337 case kOneByteStringCid:
335 case kTwoByteStringCid: 338 case kTwoByteStringCid:
336 case kExternalOneByteStringCid: 339 case kExternalOneByteStringCid:
337 case kExternalTwoByteStringCid: 340 case kExternalTwoByteStringCid:
338 case kBoolCid: 341 case kBoolCid:
339 case kArrayCid: 342 case kArrayCid:
340 case kImmutableArrayCid: 343 case kImmutableArrayCid:
341 case kGrowableObjectArrayCid: 344 case kGrowableObjectArrayCid:
342 case kInt8ArrayCid: 345 case kInt8ArrayCid:
343 case kExternalInt8ArrayCid: 346 case kExternalInt8ArrayCid:
344 case kUint8ArrayCid: 347 case kUint8ArrayCid:
348 case kUint8ClampedArrayCid:
345 case kExternalUint8ArrayCid: 349 case kExternalUint8ArrayCid:
350 case kExternalUint8ClampedArrayCid:
346 case kInt16ArrayCid: 351 case kInt16ArrayCid:
347 case kExternalInt16ArrayCid: 352 case kExternalInt16ArrayCid:
348 case kUint16ArrayCid: 353 case kUint16ArrayCid:
349 case kExternalUint16ArrayCid: 354 case kExternalUint16ArrayCid:
350 case kInt32ArrayCid: 355 case kInt32ArrayCid:
351 case kExternalInt32ArrayCid: 356 case kExternalInt32ArrayCid:
352 case kUint32ArrayCid: 357 case kUint32ArrayCid:
353 case kExternalUint32ArrayCid: 358 case kExternalUint32ArrayCid:
354 case kInt64ArrayCid: 359 case kInt64ArrayCid:
355 case kExternalInt64ArrayCid: 360 case kExternalInt64ArrayCid:
(...skipping 1223 matching lines...) Expand 10 before | Expand all | Expand 10 after
1579 void ClassFinalizer::ReportError(const char* format, ...) { 1584 void ClassFinalizer::ReportError(const char* format, ...) {
1580 va_list args; 1585 va_list args;
1581 va_start(args, format); 1586 va_start(args, format);
1582 const Error& error = Error::Handle( 1587 const Error& error = Error::Handle(
1583 Parser::FormatError(Script::Handle(), -1, "Error", format, args)); 1588 Parser::FormatError(Script::Handle(), -1, "Error", format, args));
1584 va_end(args); 1589 va_end(args);
1585 ReportError(error); 1590 ReportError(error);
1586 } 1591 }
1587 1592
1588 } // namespace dart 1593 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698