| 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 4589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4600 if (IsImplicitStaticClosureFunction()) { | 4600 if (IsImplicitStaticClosureFunction()) { |
| 4601 const Object& obj = Object::Handle(raw_ptr()->data_); | 4601 const Object& obj = Object::Handle(raw_ptr()->data_); |
| 4602 ASSERT(!obj.IsNull()); | 4602 ASSERT(!obj.IsNull()); |
| 4603 ClosureData::Cast(obj).set_implicit_static_closure(closure); | 4603 ClosureData::Cast(obj).set_implicit_static_closure(closure); |
| 4604 return; | 4604 return; |
| 4605 } | 4605 } |
| 4606 UNREACHABLE(); | 4606 UNREACHABLE(); |
| 4607 } | 4607 } |
| 4608 | 4608 |
| 4609 | 4609 |
| 4610 RawCode* Function::closure_allocation_stub() const { | |
| 4611 if (IsClosureFunction()) { | |
| 4612 const Object& obj = Object::Handle(raw_ptr()->data_); | |
| 4613 ASSERT(!obj.IsNull()); | |
| 4614 return ClosureData::Cast(obj).closure_allocation_stub(); | |
| 4615 } | |
| 4616 return Code::null(); | |
| 4617 } | |
| 4618 | |
| 4619 | |
| 4620 void Function::set_closure_allocation_stub(const Code& value) const { | |
| 4621 if (IsClosureFunction()) { | |
| 4622 const Object& obj = Object::Handle(raw_ptr()->data_); | |
| 4623 ASSERT(!obj.IsNull()); | |
| 4624 ClosureData::Cast(obj).set_closure_allocation_stub(value); | |
| 4625 return; | |
| 4626 } | |
| 4627 UNREACHABLE(); | |
| 4628 } | |
| 4629 | |
| 4630 | |
| 4631 RawFunction* Function::extracted_method_closure() const { | 4610 RawFunction* Function::extracted_method_closure() const { |
| 4632 ASSERT(kind() == RawFunction::kMethodExtractor); | 4611 ASSERT(kind() == RawFunction::kMethodExtractor); |
| 4633 const Object& obj = Object::Handle(raw_ptr()->data_); | 4612 const Object& obj = Object::Handle(raw_ptr()->data_); |
| 4634 ASSERT(obj.IsFunction()); | 4613 ASSERT(obj.IsFunction()); |
| 4635 return Function::Cast(obj).raw(); | 4614 return Function::Cast(obj).raw(); |
| 4636 } | 4615 } |
| 4637 | 4616 |
| 4638 | 4617 |
| 4639 void Function::set_extracted_method_closure(const Function& value) const { | 4618 void Function::set_extracted_method_closure(const Function& value) const { |
| 4640 ASSERT(kind() == RawFunction::kMethodExtractor); | 4619 ASSERT(kind() == RawFunction::kMethodExtractor); |
| (...skipping 1480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6121 } | 6100 } |
| 6122 | 6101 |
| 6123 | 6102 |
| 6124 void ClosureData::set_implicit_static_closure(const Instance& closure) const { | 6103 void ClosureData::set_implicit_static_closure(const Instance& closure) const { |
| 6125 ASSERT(!closure.IsNull()); | 6104 ASSERT(!closure.IsNull()); |
| 6126 ASSERT(raw_ptr()->closure_ == Instance::null()); | 6105 ASSERT(raw_ptr()->closure_ == Instance::null()); |
| 6127 StorePointer(&raw_ptr()->closure_, closure.raw()); | 6106 StorePointer(&raw_ptr()->closure_, closure.raw()); |
| 6128 } | 6107 } |
| 6129 | 6108 |
| 6130 | 6109 |
| 6131 void ClosureData::set_closure_allocation_stub(const Code& value) const { | |
| 6132 ASSERT(!value.IsNull()); | |
| 6133 ASSERT(raw_ptr()->closure_allocation_stub_ == Code::null()); | |
| 6134 StorePointer(&raw_ptr()->closure_allocation_stub_, value.raw()); | |
| 6135 } | |
| 6136 | |
| 6137 | |
| 6138 void ClosureData::set_parent_function(const Function& value) const { | 6110 void ClosureData::set_parent_function(const Function& value) const { |
| 6139 StorePointer(&raw_ptr()->parent_function_, value.raw()); | 6111 StorePointer(&raw_ptr()->parent_function_, value.raw()); |
| 6140 } | 6112 } |
| 6141 | 6113 |
| 6142 | 6114 |
| 6143 void ClosureData::set_signature_class(const Class& value) const { | 6115 void ClosureData::set_signature_class(const Class& value) const { |
| 6144 StorePointer(&raw_ptr()->signature_class_, value.raw()); | 6116 StorePointer(&raw_ptr()->signature_class_, value.raw()); |
| 6145 } | 6117 } |
| 6146 | 6118 |
| 6147 | 6119 |
| (...skipping 11308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 17456 return "_MirrorReference"; | 17428 return "_MirrorReference"; |
| 17457 } | 17429 } |
| 17458 | 17430 |
| 17459 | 17431 |
| 17460 void MirrorReference::PrintToJSONStream(JSONStream* stream, bool ref) const { | 17432 void MirrorReference::PrintToJSONStream(JSONStream* stream, bool ref) const { |
| 17461 Instance::PrintToJSONStream(stream, ref); | 17433 Instance::PrintToJSONStream(stream, ref); |
| 17462 } | 17434 } |
| 17463 | 17435 |
| 17464 | 17436 |
| 17465 } // namespace dart | 17437 } // namespace dart |
| OLD | NEW |