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/become.h" | 10 #include "vm/become.h" |
(...skipping 7458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7469 result.set_is_double_initialized(false); | 7469 result.set_is_double_initialized(false); |
7470 result.set_owner(owner); | 7470 result.set_owner(owner); |
7471 result.set_token_pos(token_pos); | 7471 result.set_token_pos(token_pos); |
7472 result.set_has_initializer(false); | 7472 result.set_has_initializer(false); |
7473 result.set_is_unboxing_candidate(true); | 7473 result.set_is_unboxing_candidate(true); |
7474 Isolate* isolate = Isolate::Current(); | 7474 Isolate* isolate = Isolate::Current(); |
7475 | 7475 |
7476 // Use field guards if they are enabled and the isolate has never reloaded. | 7476 // Use field guards if they are enabled and the isolate has never reloaded. |
7477 // TODO(johnmccutchan): The reload case assumes the worst case (everything is | 7477 // TODO(johnmccutchan): The reload case assumes the worst case (everything is |
7478 // dynamic and possibly null). Attempt to relax this later. | 7478 // dynamic and possibly null). Attempt to relax this later. |
7479 const bool use_field_guards = | 7479 const bool use_guarded_cid = |
7480 FLAG_use_field_guards && !isolate->HasAttemptedReload(); | 7480 FLAG_precompiled_mode || |
7481 result.set_guarded_cid(use_field_guards ? kIllegalCid : kDynamicCid); | 7481 (FLAG_use_field_guards && !isolate->HasAttemptedReload()); |
7482 result.set_is_nullable(use_field_guards ? false : true); | 7482 result.set_guarded_cid(use_guarded_cid ? kIllegalCid : kDynamicCid); |
| 7483 result.set_is_nullable(use_guarded_cid ? false : true); |
7483 result.set_guarded_list_length_in_object_offset(Field::kUnknownLengthOffset); | 7484 result.set_guarded_list_length_in_object_offset(Field::kUnknownLengthOffset); |
7484 // Presently, we only attempt to remember the list length for final fields. | 7485 // Presently, we only attempt to remember the list length for final fields. |
7485 if (is_final && use_field_guards) { | 7486 if (is_final && use_guarded_cid) { |
7486 result.set_guarded_list_length(Field::kUnknownFixedLength); | 7487 result.set_guarded_list_length(Field::kUnknownFixedLength); |
7487 } else { | 7488 } else { |
7488 result.set_guarded_list_length(Field::kNoFixedLength); | 7489 result.set_guarded_list_length(Field::kNoFixedLength); |
7489 } | 7490 } |
7490 } | 7491 } |
7491 | 7492 |
7492 | 7493 |
7493 RawField* Field::New(const String& name, | 7494 RawField* Field::New(const String& name, |
7494 bool is_static, | 7495 bool is_static, |
7495 bool is_final, | 7496 bool is_final, |
(...skipping 6692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14188 return Thread::kNoDeoptId; | 14189 return Thread::kNoDeoptId; |
14189 } | 14190 } |
14190 | 14191 |
14191 | 14192 |
14192 const char* Code::ToCString() const { | 14193 const char* Code::ToCString() const { |
14193 Zone* zone = Thread::Current()->zone(); | 14194 Zone* zone = Thread::Current()->zone(); |
14194 if (IsStubCode()) { | 14195 if (IsStubCode()) { |
14195 const char* name = StubCode::NameOfStub(UncheckedEntryPoint()); | 14196 const char* name = StubCode::NameOfStub(UncheckedEntryPoint()); |
14196 return zone->PrintToString("[stub: %s]", name); | 14197 return zone->PrintToString("[stub: %s]", name); |
14197 } else { | 14198 } else { |
14198 return zone->PrintToString("Code entry:%" Px, UncheckedEntryPoint()); | 14199 return zone->PrintToString("Code entry: 0x%" Px, UncheckedEntryPoint()); |
14199 } | 14200 } |
14200 } | 14201 } |
14201 | 14202 |
14202 | 14203 |
14203 RawString* Code::Name() const { | 14204 RawString* Code::Name() const { |
14204 const Object& obj = Object::Handle(owner()); | 14205 const Object& obj = Object::Handle(owner()); |
14205 if (obj.IsNull()) { | 14206 if (obj.IsNull()) { |
14206 // Regular stub. | 14207 // Regular stub. |
14207 Thread* thread = Thread::Current(); | 14208 Thread* thread = Thread::Current(); |
14208 Zone* zone = thread->zone(); | 14209 Zone* zone = thread->zone(); |
(...skipping 8556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
22765 return UserTag::null(); | 22766 return UserTag::null(); |
22766 } | 22767 } |
22767 | 22768 |
22768 | 22769 |
22769 const char* UserTag::ToCString() const { | 22770 const char* UserTag::ToCString() const { |
22770 const String& tag_label = String::Handle(label()); | 22771 const String& tag_label = String::Handle(label()); |
22771 return tag_label.ToCString(); | 22772 return tag_label.ToCString(); |
22772 } | 22773 } |
22773 | 22774 |
22774 } // namespace dart | 22775 } // namespace dart |
OLD | NEW |