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

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

Issue 1584443002: VM: Precompiled rodata snapshot. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: win32, android build Created 4 years, 11 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
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/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 875 matching lines...) Expand 10 before | Expand all | Expand 10 after
886 // premark all objects in the vm_isolate_ heap. 886 // premark all objects in the vm_isolate_ heap.
887 class PremarkingVisitor : public ObjectVisitor { 887 class PremarkingVisitor : public ObjectVisitor {
888 public: 888 public:
889 explicit PremarkingVisitor(Isolate* isolate) : ObjectVisitor(isolate) {} 889 explicit PremarkingVisitor(Isolate* isolate) : ObjectVisitor(isolate) {}
890 890
891 void VisitObject(RawObject* obj) { 891 void VisitObject(RawObject* obj) {
892 // Free list elements should never be marked. 892 // Free list elements should never be marked.
893 if (!obj->IsFreeListElement()) { 893 if (!obj->IsFreeListElement()) {
894 ASSERT(obj->IsVMHeapObject()); 894 ASSERT(obj->IsVMHeapObject());
895 if (obj->IsMarked()) { 895 if (obj->IsMarked()) {
896 // Precompiled instructions are loaded pre-marked. 896 // Precompiled objects are loaded pre-marked.
897 ASSERT(Dart::IsRunningPrecompiledCode()); 897 ASSERT(Dart::IsRunningPrecompiledCode());
898 ASSERT(obj->IsInstructions()); 898 ASSERT(obj->IsInstructions() ||
899 obj->IsPcDescriptors() ||
900 obj->IsStackmap());
899 } else { 901 } else {
900 obj->SetMarkBitUnsynchronized(); 902 obj->SetMarkBitUnsynchronized();
901 } 903 }
902 } 904 }
903 } 905 }
904 }; 906 };
905 907
906 908
907 #define SET_CLASS_NAME(class_name, name) \ 909 #define SET_CLASS_NAME(class_name, name) \
908 cls = class_name##_class(); \ 910 cls = class_name##_class(); \
(...skipping 21191 matching lines...) Expand 10 before | Expand all | Expand 10 after
22100 return tag_label.ToCString(); 22102 return tag_label.ToCString();
22101 } 22103 }
22102 22104
22103 22105
22104 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { 22106 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const {
22105 Instance::PrintJSONImpl(stream, ref); 22107 Instance::PrintJSONImpl(stream, ref);
22106 } 22108 }
22107 22109
22108 22110
22109 } // namespace dart 22111 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698