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 #include "vm/object.h" | 5 #include "vm/object.h" |
6 | 6 |
7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
10 #include "vm/cpu.h" | 10 #include "vm/cpu.h" |
(...skipping 909 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
920 ASSERT(public_class_name.CharAt(0) == '_'); | 920 ASSERT(public_class_name.CharAt(0) == '_'); |
921 String& str = String::Handle(); | 921 String& str = String::Handle(); |
922 str = lib.PrivateName(public_class_name); | 922 str = lib.PrivateName(public_class_name); |
923 cls.set_name(str); | 923 cls.set_name(str); |
924 lib.AddClass(cls); | 924 lib.AddClass(cls); |
925 } | 925 } |
926 | 926 |
927 | 927 |
928 RawError* Object::Init(Isolate* isolate) { | 928 RawError* Object::Init(Isolate* isolate) { |
929 TIMERSCOPE(isolate, time_bootstrap); | 929 TIMERSCOPE(isolate, time_bootstrap); |
| 930 |
| 931 #if defined(DART_NO_SNAPSHOT) |
| 932 // Object::Init version when we are running in a version of dart that does |
| 933 // not have a full snapshot linked in. |
930 ObjectStore* object_store = isolate->object_store(); | 934 ObjectStore* object_store = isolate->object_store(); |
931 | 935 |
932 Class& cls = Class::Handle(isolate); | 936 Class& cls = Class::Handle(isolate); |
933 Type& type = Type::Handle(isolate); | 937 Type& type = Type::Handle(isolate); |
934 Array& array = Array::Handle(isolate); | 938 Array& array = Array::Handle(isolate); |
935 Library& lib = Library::Handle(isolate); | 939 Library& lib = Library::Handle(isolate); |
936 | 940 |
937 // All RawArray fields will be initialized to an empty array, therefore | 941 // All RawArray fields will be initialized to an empty array, therefore |
938 // initialize array class first. | 942 // initialize array class first. |
939 cls = Class::New<Array>(); | 943 cls = Class::New<Array>(); |
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1419 field.set_value(value); \ | 1423 field.set_value(value); \ |
1420 field.set_type(Type::Handle(Type::IntType())); \ | 1424 field.set_type(Type::Handle(Type::IntType())); \ |
1421 cls.AddField(field); \ | 1425 cls.AddField(field); \ |
1422 | 1426 |
1423 CLASS_LIST_WITH_NULL(ADD_SET_FIELD) | 1427 CLASS_LIST_WITH_NULL(ADD_SET_FIELD) |
1424 #undef ADD_SET_FIELD | 1428 #undef ADD_SET_FIELD |
1425 | 1429 |
1426 isolate->object_store()->InitKnownObjects(); | 1430 isolate->object_store()->InitKnownObjects(); |
1427 | 1431 |
1428 return Error::null(); | 1432 return Error::null(); |
1429 } | 1433 #else // defined(DART_NO_SNAPSHOT). |
1430 | 1434 // Object::Init version when we are running in a version of dart that has |
1431 | 1435 // a full snapshot linked in and an isolate is initialized using the full |
1432 void Object::InitFromSnapshot(Isolate* isolate) { | 1436 // snapshot. |
1433 TIMERSCOPE(isolate, time_bootstrap); | |
1434 ObjectStore* object_store = isolate->object_store(); | 1437 ObjectStore* object_store = isolate->object_store(); |
1435 | 1438 |
1436 Class& cls = Class::Handle(); | 1439 Class& cls = Class::Handle(); |
1437 | 1440 |
1438 // Set up empty classes in the object store, these will get | 1441 // Set up empty classes in the object store, these will get |
1439 // initialized correctly when we read from the snapshot. | 1442 // initialized correctly when we read from the snapshot. |
1440 // This is done to allow bootstrapping of reading classes from the snapshot. | 1443 // This is done to allow bootstrapping of reading classes from the snapshot. |
1441 // Some classes are not stored in the object store. Yet we still need to | 1444 // Some classes are not stored in the object store. Yet we still need to |
1442 // create their Class object so that they get put into the class_table | 1445 // create their Class object so that they get put into the class_table |
1443 // (as a side effect of Class::New()). | 1446 // (as a side effect of Class::New()). |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1533 object_store->set_weak_property_class(cls); | 1536 object_store->set_weak_property_class(cls); |
1534 | 1537 |
1535 cls = Class::New<MirrorReference>(); | 1538 cls = Class::New<MirrorReference>(); |
1536 cls = Class::New<UserTag>(); | 1539 cls = Class::New<UserTag>(); |
1537 | 1540 |
1538 const Context& context = Context::Handle(isolate, | 1541 const Context& context = Context::Handle(isolate, |
1539 Context::New(0, Heap::kOld)); | 1542 Context::New(0, Heap::kOld)); |
1540 object_store->set_empty_context(context); | 1543 object_store->set_empty_context(context); |
1541 | 1544 |
1542 StubCode::InitBootstrapStubs(isolate); | 1545 StubCode::InitBootstrapStubs(isolate); |
| 1546 #endif // defined(DART_NO_SNAPSHOT). |
| 1547 |
| 1548 return Error::null(); |
1543 } | 1549 } |
1544 | 1550 |
1545 | 1551 |
1546 void Object::Print() const { | 1552 void Object::Print() const { |
1547 OS::Print("%s\n", ToCString()); | 1553 OS::Print("%s\n", ToCString()); |
1548 } | 1554 } |
1549 | 1555 |
1550 | 1556 |
1551 static void AddNameProperties(JSONObject* jsobj, | 1557 static void AddNameProperties(JSONObject* jsobj, |
1552 const String& name, | 1558 const String& name, |
(...skipping 19171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
20724 return tag_label.ToCString(); | 20730 return tag_label.ToCString(); |
20725 } | 20731 } |
20726 | 20732 |
20727 | 20733 |
20728 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { | 20734 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { |
20729 Instance::PrintJSONImpl(stream, ref); | 20735 Instance::PrintJSONImpl(stream, ref); |
20730 } | 20736 } |
20731 | 20737 |
20732 | 20738 |
20733 } // namespace dart | 20739 } // namespace dart |
OLD | NEW |