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

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

Issue 16390002: Make ImmutableArray a sub class of AllStatic. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/raw_object_snapshot.cc ('k') | no next file » | 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/snapshot.h" 5 #include "vm/snapshot.h"
6 6
7 #include "platform/assert.h" 7 #include "platform/assert.h"
8 #include "vm/bigint_operations.h" 8 #include "vm/bigint_operations.h"
9 #include "vm/bootstrap.h" 9 #include "vm/bootstrap.h"
10 #include "vm/class_finalizer.h" 10 #include "vm/class_finalizer.h"
(...skipping 15 matching lines...) Expand all
26 // Check if this is a singleton object class which is shared by all isolates. 26 // Check if this is a singleton object class which is shared by all isolates.
27 return ((class_id >= kClassCid && class_id <= kUnwindErrorCid) || 27 return ((class_id >= kClassCid && class_id <= kUnwindErrorCid) ||
28 (class_id >= kNullCid && class_id <= kVoidCid)); 28 (class_id >= kNullCid && class_id <= kVoidCid));
29 } 29 }
30 30
31 31
32 static bool IsObjectStoreClassId(intptr_t class_id) { 32 static bool IsObjectStoreClassId(intptr_t class_id) {
33 // Check if this is a class which is stored in the object store. 33 // Check if this is a class which is stored in the object store.
34 return (class_id == kObjectCid || 34 return (class_id == kObjectCid ||
35 (class_id >= kInstanceCid && class_id <= kWeakPropertyCid) || 35 (class_id >= kInstanceCid && class_id <= kWeakPropertyCid) ||
36 class_id == kArrayCid ||
37 class_id == kImmutableArrayCid ||
36 RawObject::IsStringClassId(class_id) || 38 RawObject::IsStringClassId(class_id) ||
37 RawObject::IsTypedDataClassId(class_id) || 39 RawObject::IsTypedDataClassId(class_id) ||
38 RawObject::IsExternalTypedDataClassId(class_id)); 40 RawObject::IsExternalTypedDataClassId(class_id));
39 } 41 }
40 42
41 43
42 static bool IsObjectStoreTypeId(intptr_t index) { 44 static bool IsObjectStoreTypeId(intptr_t index) {
43 // Check if this is a type which is stored in the object store. 45 // Check if this is a type which is stored in the object store.
44 return (index >= kObjectType && index <= kArrayType); 46 return (index >= kObjectType && index <= kArrayType);
45 } 47 }
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 isolate(), 291 isolate(),
290 ((kind_ == Snapshot::kFull) ? 292 ((kind_ == Snapshot::kFull) ?
291 NewArray(len) : Array::New(len, HEAP_SPACE(kind_)))); 293 NewArray(len) : Array::New(len, HEAP_SPACE(kind_))));
292 AddBackRef(object_id, &array, kIsNotDeserialized); 294 AddBackRef(object_id, &array, kIsNotDeserialized);
293 295
294 return array.raw(); 296 return array.raw();
295 } 297 }
296 if (class_id == kImmutableArrayCid) { 298 if (class_id == kImmutableArrayCid) {
297 // Read the length and allocate an object based on the len. 299 // Read the length and allocate an object based on the len.
298 intptr_t len = ReadSmiValue(); 300 intptr_t len = ReadSmiValue();
299 ImmutableArray& array = ImmutableArray::ZoneHandle( 301 Array& array = Array::ZoneHandle(
300 isolate(), 302 isolate(),
301 (kind_ == Snapshot::kFull) ? 303 (kind_ == Snapshot::kFull) ?
302 NewImmutableArray(len) : ImmutableArray::New(len, HEAP_SPACE(kind_))); 304 NewImmutableArray(len) : ImmutableArray::New(len, HEAP_SPACE(kind_)));
303 AddBackRef(object_id, &array, kIsNotDeserialized); 305 AddBackRef(object_id, &array, kIsNotDeserialized);
304 306
305 return array.raw(); 307 return array.raw();
306 } 308 }
307 309
308 // For all other internal VM classes we read the object inline. 310 // For all other internal VM classes we read the object inline.
309 intptr_t tags = ReadIntptrValue(); 311 intptr_t tags = ReadIntptrValue();
(...skipping 1153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1463 UnmarkAll(); 1465 UnmarkAll();
1464 isolate->set_long_jump_base(base); 1466 isolate->set_long_jump_base(base);
1465 } else { 1467 } else {
1466 isolate->set_long_jump_base(base); 1468 isolate->set_long_jump_base(base);
1467 ThrowException(exception_type(), exception_msg()); 1469 ThrowException(exception_type(), exception_msg());
1468 } 1470 }
1469 } 1471 }
1470 1472
1471 1473
1472 } // namespace dart 1474 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/raw_object_snapshot.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698