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 9352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9363 intptr_t i = 0; | 9363 intptr_t i = 0; |
9364 while (i < num_classes) { | 9364 while (i < num_classes) { |
9365 if (cls.raw() == patch_classes.At(i)) break; | 9365 if (cls.raw() == patch_classes.At(i)) break; |
9366 i++; | 9366 i++; |
9367 } | 9367 } |
9368 if (i == num_classes) return; | 9368 if (i == num_classes) return; |
9369 // Replace the entry with the script. We keep the script so that | 9369 // Replace the entry with the script. We keep the script so that |
9370 // Library::LoadedScripts() can find it without having to iterate | 9370 // Library::LoadedScripts() can find it without having to iterate |
9371 // over the members of each class. | 9371 // over the members of each class. |
9372 ASSERT(i < num_classes); // We must have found a class. | 9372 ASSERT(i < num_classes); // We must have found a class. |
9373 Class& pc = Class::Handle(); | 9373 const Script& patch_script = Script::Handle(cls.script()); |
9374 pc ^= patch_classes.At(i); | |
9375 const Script& patch_script = Script::Handle(pc.script()); | |
9376 patch_classes.SetAt(i, patch_script); | 9374 patch_classes.SetAt(i, patch_script); |
9377 } | 9375 } |
9378 | 9376 |
9379 | 9377 |
9380 static RawString* MakeClassMetaName(const Class& cls) { | 9378 static RawString* MakeClassMetaName(const Class& cls) { |
9381 return Symbols::FromConcat(Symbols::At(), String::Handle(cls.Name())); | 9379 return Symbols::FromConcat(Symbols::At(), String::Handle(cls.Name())); |
9382 } | 9380 } |
9383 | 9381 |
9384 | 9382 |
9385 static RawString* MakeFieldMetaName(const Field& field) { | 9383 static RawString* MakeFieldMetaName(const Field& field) { |
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9809 } | 9807 } |
9810 | 9808 |
9811 // Add all scripts from patch classes. | 9809 // Add all scripts from patch classes. |
9812 GrowableObjectArray& patches = GrowableObjectArray::Handle(patch_classes()); | 9810 GrowableObjectArray& patches = GrowableObjectArray::Handle(patch_classes()); |
9813 for (intptr_t i = 0; i < patches.Length(); i++) { | 9811 for (intptr_t i = 0; i < patches.Length(); i++) { |
9814 entry = patches.At(i); | 9812 entry = patches.At(i); |
9815 if (entry.IsClass()) { | 9813 if (entry.IsClass()) { |
9816 owner_script = Class::Cast(entry).script(); | 9814 owner_script = Class::Cast(entry).script(); |
9817 } else { | 9815 } else { |
9818 ASSERT(entry.IsScript()); | 9816 ASSERT(entry.IsScript()); |
9819 owner_script ^= Script::Cast(entry).raw(); | 9817 owner_script = Script::Cast(entry).raw(); |
9820 } | 9818 } |
9821 AddScriptIfUnique(scripts, owner_script); | 9819 AddScriptIfUnique(scripts, owner_script); |
9822 } | 9820 } |
9823 | 9821 |
9824 cls ^= toplevel_class(); | 9822 cls ^= toplevel_class(); |
9825 if (!cls.IsNull()) { | 9823 if (!cls.IsNull()) { |
9826 owner_script = cls.script(); | 9824 owner_script = cls.script(); |
9827 AddScriptIfUnique(scripts, owner_script); | 9825 AddScriptIfUnique(scripts, owner_script); |
9828 // Special case: Scripts that only contain external top-level functions | 9826 // Special case: Scripts that only contain external top-level functions |
9829 // are not included above, but can be referenced through a library's | 9827 // are not included above, but can be referenced through a library's |
(...skipping 12126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
21956 return tag_label.ToCString(); | 21954 return tag_label.ToCString(); |
21957 } | 21955 } |
21958 | 21956 |
21959 | 21957 |
21960 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { | 21958 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { |
21961 Instance::PrintJSONImpl(stream, ref); | 21959 Instance::PrintJSONImpl(stream, ref); |
21962 } | 21960 } |
21963 | 21961 |
21964 | 21962 |
21965 } // namespace dart | 21963 } // namespace dart |
OLD | NEW |