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

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
« no previous file with comments | « runtime/vm/bootstrap_natives.h ('k') | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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())) {
325 // Prevent extending core implementation classes. 327 // Prevent extending core implementation classes.
326 bool is_error = false; 328 bool is_error = false;
327 switch (super_class.id()) { 329 switch (super_class.id()) {
328 case kNumberCid: 330 case kNumberCid:
329 case kIntegerCid: 331 case kIntegerCid:
330 case kSmiCid: 332 case kSmiCid:
331 case kMintCid: 333 case kMintCid:
332 case kBigintCid: 334 case kBigintCid:
333 case kDoubleCid: 335 case kDoubleCid:
334 case kOneByteStringCid: 336 case kOneByteStringCid:
335 case kTwoByteStringCid: 337 case kTwoByteStringCid:
336 case kExternalOneByteStringCid: 338 case kExternalOneByteStringCid:
337 case kExternalTwoByteStringCid: 339 case kExternalTwoByteStringCid:
338 case kBoolCid: 340 case kBoolCid:
339 case kArrayCid: 341 case kArrayCid:
340 case kImmutableArrayCid: 342 case kImmutableArrayCid:
341 case kGrowableObjectArrayCid: 343 case kGrowableObjectArrayCid:
342 case kInt8ArrayCid: 344 case kInt8ArrayCid:
343 case kExternalInt8ArrayCid: 345 case kExternalInt8ArrayCid:
344 case kUint8ArrayCid: 346 case kUint8ArrayCid:
347 case kUint8ClampedArrayCid:
345 case kExternalUint8ArrayCid: 348 case kExternalUint8ArrayCid:
349 case kExternalUint8ClampedArrayCid:
346 case kInt16ArrayCid: 350 case kInt16ArrayCid:
347 case kExternalInt16ArrayCid: 351 case kExternalInt16ArrayCid:
348 case kUint16ArrayCid: 352 case kUint16ArrayCid:
349 case kExternalUint16ArrayCid: 353 case kExternalUint16ArrayCid:
350 case kInt32ArrayCid: 354 case kInt32ArrayCid:
351 case kExternalInt32ArrayCid: 355 case kExternalInt32ArrayCid:
352 case kUint32ArrayCid: 356 case kUint32ArrayCid:
353 case kExternalUint32ArrayCid: 357 case kExternalUint32ArrayCid:
354 case kInt64ArrayCid: 358 case kInt64ArrayCid:
355 case kExternalInt64ArrayCid: 359 case kExternalInt64ArrayCid:
(...skipping 1223 matching lines...) Expand 10 before | Expand all | Expand 10 after
1579 void ClassFinalizer::ReportError(const char* format, ...) { 1583 void ClassFinalizer::ReportError(const char* format, ...) {
1580 va_list args; 1584 va_list args;
1581 va_start(args, format); 1585 va_start(args, format);
1582 const Error& error = Error::Handle( 1586 const Error& error = Error::Handle(
1583 Parser::FormatError(Script::Handle(), -1, "Error", format, args)); 1587 Parser::FormatError(Script::Handle(), -1, "Error", format, args));
1584 va_end(args); 1588 va_end(args);
1585 ReportError(error); 1589 ReportError(error);
1586 } 1590 }
1587 1591
1588 } // namespace dart 1592 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/bootstrap_natives.h ('k') | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698