| 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 #ifndef RUNTIME_VM_OBJECT_H_ | 5 #ifndef RUNTIME_VM_OBJECT_H_ |
| 6 #define RUNTIME_VM_OBJECT_H_ | 6 #define RUNTIME_VM_OBJECT_H_ |
| 7 | 7 |
| 8 #include "include/dart_api.h" | 8 #include "include/dart_api.h" |
| 9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
| 10 #include "platform/utils.h" | 10 #include "platform/utils.h" |
| (...skipping 2329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2340 // If none exists yet, create one and remember it. | 2340 // If none exists yet, create one and remember it. |
| 2341 RawFunction* ImplicitClosureFunction() const; | 2341 RawFunction* ImplicitClosureFunction() const; |
| 2342 void DropUncompiledImplicitClosureFunction() const; | 2342 void DropUncompiledImplicitClosureFunction() const; |
| 2343 | 2343 |
| 2344 // Return the closure implicitly created for this function. | 2344 // Return the closure implicitly created for this function. |
| 2345 // If none exists yet, create one and remember it. | 2345 // If none exists yet, create one and remember it. |
| 2346 RawInstance* ImplicitStaticClosure() const; | 2346 RawInstance* ImplicitStaticClosure() const; |
| 2347 | 2347 |
| 2348 RawInstance* ImplicitInstanceClosure(const Instance& receiver) const; | 2348 RawInstance* ImplicitInstanceClosure(const Instance& receiver) const; |
| 2349 | 2349 |
| 2350 RawSmi* GetClosureHashCode() const; |
| 2351 |
| 2350 // Redirection information for a redirecting factory. | 2352 // Redirection information for a redirecting factory. |
| 2351 bool IsRedirectingFactory() const; | 2353 bool IsRedirectingFactory() const; |
| 2352 RawType* RedirectionType() const; | 2354 RawType* RedirectionType() const; |
| 2353 void SetRedirectionType(const Type& type) const; | 2355 void SetRedirectionType(const Type& type) const; |
| 2354 RawString* RedirectionIdentifier() const; | 2356 RawString* RedirectionIdentifier() const; |
| 2355 void SetRedirectionIdentifier(const String& identifier) const; | 2357 void SetRedirectionIdentifier(const String& identifier) const; |
| 2356 RawFunction* RedirectionTarget() const; | 2358 RawFunction* RedirectionTarget() const; |
| 2357 void SetRedirectionTarget(const Function& target) const; | 2359 void SetRedirectionTarget(const Function& target) const; |
| 2358 | 2360 |
| 2359 RawFunction::Kind kind() const { | 2361 RawFunction::Kind kind() const { |
| (...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3008 RawFunction* parent_function() const { return raw_ptr()->parent_function_; } | 3010 RawFunction* parent_function() const { return raw_ptr()->parent_function_; } |
| 3009 void set_parent_function(const Function& value) const; | 3011 void set_parent_function(const Function& value) const; |
| 3010 | 3012 |
| 3011 // Signature type of this closure function. | 3013 // Signature type of this closure function. |
| 3012 RawType* signature_type() const { return raw_ptr()->signature_type_; } | 3014 RawType* signature_type() const { return raw_ptr()->signature_type_; } |
| 3013 void set_signature_type(const Type& value) const; | 3015 void set_signature_type(const Type& value) const; |
| 3014 | 3016 |
| 3015 RawInstance* implicit_static_closure() const { return raw_ptr()->closure_; } | 3017 RawInstance* implicit_static_closure() const { return raw_ptr()->closure_; } |
| 3016 void set_implicit_static_closure(const Instance& closure) const; | 3018 void set_implicit_static_closure(const Instance& closure) const; |
| 3017 | 3019 |
| 3020 RawObject* hash() const { return raw_ptr()->hash_; } |
| 3021 void set_hash(intptr_t value) const; |
| 3022 |
| 3018 static RawClosureData* New(); | 3023 static RawClosureData* New(); |
| 3019 | 3024 |
| 3020 FINAL_HEAP_OBJECT_IMPLEMENTATION(ClosureData, Object); | 3025 FINAL_HEAP_OBJECT_IMPLEMENTATION(ClosureData, Object); |
| 3021 friend class Class; | 3026 friend class Class; |
| 3022 friend class Function; | 3027 friend class Function; |
| 3023 friend class HeapProfiler; | 3028 friend class HeapProfiler; |
| 3024 }; | 3029 }; |
| 3025 | 3030 |
| 3026 | 3031 |
| 3027 class SignatureData : public Object { | 3032 class SignatureData : public Object { |
| (...skipping 5902 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8930 | 8935 |
| 8931 inline void TypeArguments::SetHash(intptr_t value) const { | 8936 inline void TypeArguments::SetHash(intptr_t value) const { |
| 8932 // This is only safe because we create a new Smi, which does not cause | 8937 // This is only safe because we create a new Smi, which does not cause |
| 8933 // heap allocation. | 8938 // heap allocation. |
| 8934 StoreSmi(&raw_ptr()->hash_, Smi::New(value)); | 8939 StoreSmi(&raw_ptr()->hash_, Smi::New(value)); |
| 8935 } | 8940 } |
| 8936 | 8941 |
| 8937 } // namespace dart | 8942 } // namespace dart |
| 8938 | 8943 |
| 8939 #endif // RUNTIME_VM_OBJECT_H_ | 8944 #endif // RUNTIME_VM_OBJECT_H_ |
| OLD | NEW |