OLD | NEW |
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 #ifndef VM_OBJECT_STORE_H_ | 5 #ifndef VM_OBJECT_STORE_H_ |
6 #define VM_OBJECT_STORE_H_ | 6 #define VM_OBJECT_STORE_H_ |
7 | 7 |
8 #include "vm/object.h" | 8 #include "vm/object.h" |
9 | 9 |
10 namespace dart { | 10 namespace dart { |
11 | 11 |
12 // Forward declarations. | 12 // Forward declarations. |
13 class Isolate; | 13 class Isolate; |
14 class ObjectPointerVisitor; | 14 class ObjectPointerVisitor; |
15 | 15 |
16 // The object store is a per isolate instance which stores references to | 16 // The object store is a per isolate instance which stores references to |
17 // objects used by the VM. | 17 // objects used by the VM. |
18 // TODO(iposva): Move the actual store into the object heap for quick handling | 18 // TODO(iposva): Move the actual store into the object heap for quick handling |
19 // by snapshots eventually. | 19 // by snapshots eventually. |
20 class ObjectStore { | 20 class ObjectStore { |
21 public: | 21 public: |
22 enum BootstrapLibraryId { | 22 enum BootstrapLibraryId { |
23 kNone = 0, | 23 kNone = 0, |
24 kAsync, | 24 kAsync, |
25 kCore, | 25 kCore, |
26 kCollection, | 26 kCollection, |
27 kCollectionDev, | |
28 kConvert, | 27 kConvert, |
| 28 kInternal, |
29 kIsolate, | 29 kIsolate, |
30 kMath, | 30 kMath, |
31 kMirrors, | 31 kMirrors, |
32 kTypedData, | 32 kTypedData, |
33 }; | 33 }; |
34 | 34 |
35 ~ObjectStore(); | 35 ~ObjectStore(); |
36 | 36 |
37 RawClass* object_class() const { | 37 RawClass* object_class() const { |
38 ASSERT(object_class_ != Object::null()); | 38 ASSERT(object_class_ != Object::null()); |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 return canonical_type_arguments_; | 266 return canonical_type_arguments_; |
267 } | 267 } |
268 void set_canonical_type_arguments(const Array& value) { | 268 void set_canonical_type_arguments(const Array& value) { |
269 canonical_type_arguments_ = value.raw(); | 269 canonical_type_arguments_ = value.raw(); |
270 } | 270 } |
271 | 271 |
272 RawLibrary* async_library() const { return async_library_; } | 272 RawLibrary* async_library() const { return async_library_; } |
273 RawLibrary* builtin_library() const { return builtin_library_; } | 273 RawLibrary* builtin_library() const { return builtin_library_; } |
274 RawLibrary* core_library() const { return core_library_; } | 274 RawLibrary* core_library() const { return core_library_; } |
275 RawLibrary* collection_library() const { return collection_library_; } | 275 RawLibrary* collection_library() const { return collection_library_; } |
276 RawLibrary* collection_dev_library() const { | |
277 return collection_dev_library_; | |
278 } | |
279 RawLibrary* convert_library() const { return convert_library_; } | 276 RawLibrary* convert_library() const { return convert_library_; } |
| 277 RawLibrary* internal_library() const { return internal_library_; } |
280 RawLibrary* isolate_library() const { return isolate_library_; } | 278 RawLibrary* isolate_library() const { return isolate_library_; } |
281 RawLibrary* math_library() const { return math_library_; } | 279 RawLibrary* math_library() const { return math_library_; } |
282 RawLibrary* mirrors_library() const { return mirrors_library_; } | 280 RawLibrary* mirrors_library() const { return mirrors_library_; } |
283 RawLibrary* typed_data_library() const { return typed_data_library_; } | 281 RawLibrary* typed_data_library() const { return typed_data_library_; } |
284 void set_bootstrap_library(BootstrapLibraryId index, const Library& value) { | 282 void set_bootstrap_library(BootstrapLibraryId index, const Library& value) { |
285 switch (index) { | 283 switch (index) { |
286 case kAsync: | 284 case kAsync: |
287 async_library_ = value.raw(); | 285 async_library_ = value.raw(); |
288 break; | 286 break; |
289 case kCore: | 287 case kCore: |
290 core_library_ = value.raw(); | 288 core_library_ = value.raw(); |
291 break; | 289 break; |
292 case kCollection: | 290 case kCollection: |
293 collection_library_ = value.raw(); | 291 collection_library_ = value.raw(); |
294 break; | 292 break; |
295 case kCollectionDev: | |
296 collection_dev_library_ = value.raw(); | |
297 break; | |
298 case kConvert: | 293 case kConvert: |
299 convert_library_ = value.raw(); | 294 convert_library_ = value.raw(); |
300 break; | 295 break; |
| 296 case kInternal: |
| 297 internal_library_ = value.raw(); |
| 298 break; |
301 case kIsolate: | 299 case kIsolate: |
302 isolate_library_ = value.raw(); | 300 isolate_library_ = value.raw(); |
303 break; | 301 break; |
304 case kMath: | 302 case kMath: |
305 math_library_ = value.raw(); | 303 math_library_ = value.raw(); |
306 break; | 304 break; |
307 case kMirrors: | 305 case kMirrors: |
308 mirrors_library_ = value.raw(); | 306 mirrors_library_ = value.raw(); |
309 break; | 307 break; |
310 case kTypedData: | 308 case kTypedData: |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 RawClass* stacktrace_class_; | 456 RawClass* stacktrace_class_; |
459 RawClass* jsregexp_class_; | 457 RawClass* jsregexp_class_; |
460 RawClass* weak_property_class_; | 458 RawClass* weak_property_class_; |
461 RawClass* mirror_reference_class_; | 459 RawClass* mirror_reference_class_; |
462 RawArray* symbol_table_; | 460 RawArray* symbol_table_; |
463 RawArray* canonical_type_arguments_; | 461 RawArray* canonical_type_arguments_; |
464 RawLibrary* async_library_; | 462 RawLibrary* async_library_; |
465 RawLibrary* builtin_library_; | 463 RawLibrary* builtin_library_; |
466 RawLibrary* core_library_; | 464 RawLibrary* core_library_; |
467 RawLibrary* collection_library_; | 465 RawLibrary* collection_library_; |
468 RawLibrary* collection_dev_library_; | |
469 RawLibrary* convert_library_; | 466 RawLibrary* convert_library_; |
| 467 RawLibrary* internal_library_; |
470 RawLibrary* isolate_library_; | 468 RawLibrary* isolate_library_; |
471 RawLibrary* math_library_; | 469 RawLibrary* math_library_; |
472 RawLibrary* mirrors_library_; | 470 RawLibrary* mirrors_library_; |
473 RawLibrary* native_wrappers_library_; | 471 RawLibrary* native_wrappers_library_; |
474 RawLibrary* root_library_; | 472 RawLibrary* root_library_; |
475 RawLibrary* typed_data_library_; | 473 RawLibrary* typed_data_library_; |
476 RawGrowableObjectArray* libraries_; | 474 RawGrowableObjectArray* libraries_; |
477 RawGrowableObjectArray* pending_classes_; | 475 RawGrowableObjectArray* pending_classes_; |
478 RawGrowableObjectArray* pending_functions_; | 476 RawGrowableObjectArray* pending_functions_; |
479 RawError* sticky_error_; | 477 RawError* sticky_error_; |
(...skipping 10 matching lines...) Expand all Loading... |
490 } | 488 } |
491 | 489 |
492 friend class SnapshotReader; | 490 friend class SnapshotReader; |
493 | 491 |
494 DISALLOW_COPY_AND_ASSIGN(ObjectStore); | 492 DISALLOW_COPY_AND_ASSIGN(ObjectStore); |
495 }; | 493 }; |
496 | 494 |
497 } // namespace dart | 495 } // namespace dart |
498 | 496 |
499 #endif // VM_OBJECT_STORE_H_ | 497 #endif // VM_OBJECT_STORE_H_ |
OLD | NEW |