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

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

Issue 231053003: 1. Provide a framework to traverse persistent prolog weak handles. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « runtime/vm/isolate.cc ('k') | runtime/vm/object.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #ifndef VM_OBJECT_H_ 5 #ifndef VM_OBJECT_H_
6 #define VM_OBJECT_H_ 6 #define 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 3997 matching lines...) Expand 10 before | Expand all | Expand 10 after
4008 Error* bound_error) const; 4008 Error* bound_error) const;
4009 4009
4010 // Check whether this instance is identical to the argument according to the 4010 // Check whether this instance is identical to the argument according to the
4011 // specification of dare:core's identical(). 4011 // specification of dare:core's identical().
4012 bool IsIdenticalTo(const Instance& other) const; 4012 bool IsIdenticalTo(const Instance& other) const;
4013 4013
4014 bool IsValidNativeIndex(int index) const { 4014 bool IsValidNativeIndex(int index) const {
4015 return ((index >= 0) && (index < clazz()->ptr()->num_native_fields_)); 4015 return ((index >= 0) && (index < clazz()->ptr()->num_native_fields_));
4016 } 4016 }
4017 4017
4018 intptr_t* NativeFieldsDataAddr() const;
4018 inline intptr_t GetNativeField(int index) const; 4019 inline intptr_t GetNativeField(int index) const;
4019 inline void GetNativeFields(uint16_t num_fields, 4020 inline void GetNativeFields(uint16_t num_fields,
4020 intptr_t* field_values) const; 4021 intptr_t* field_values) const;
4021 4022
4022 uint16_t NumNativeFields() const { 4023 uint16_t NumNativeFields() const {
4023 return clazz()->ptr()->num_native_fields_; 4024 return clazz()->ptr()->num_native_fields_;
4024 } 4025 }
4025 4026
4026 void SetNativeField(int index, intptr_t value) const; 4027 void SetNativeField(int index, intptr_t value) const;
4027 4028
(...skipping 24 matching lines...) Expand all
4052 RawObject** FieldAddrAtOffset(intptr_t offset) const { 4053 RawObject** FieldAddrAtOffset(intptr_t offset) const {
4053 ASSERT(IsValidFieldOffset(offset)); 4054 ASSERT(IsValidFieldOffset(offset));
4054 return reinterpret_cast<RawObject**>(raw_value() - kHeapObjectTag + offset); 4055 return reinterpret_cast<RawObject**>(raw_value() - kHeapObjectTag + offset);
4055 } 4056 }
4056 RawObject** FieldAddr(const Field& field) const { 4057 RawObject** FieldAddr(const Field& field) const {
4057 return FieldAddrAtOffset(field.Offset()); 4058 return FieldAddrAtOffset(field.Offset());
4058 } 4059 }
4059 RawObject** NativeFieldsAddr() const { 4060 RawObject** NativeFieldsAddr() const {
4060 return FieldAddrAtOffset(sizeof(RawObject)); 4061 return FieldAddrAtOffset(sizeof(RawObject));
4061 } 4062 }
4063
4062 void SetFieldAtOffset(intptr_t offset, const Object& value) const { 4064 void SetFieldAtOffset(intptr_t offset, const Object& value) const {
4063 StorePointer(FieldAddrAtOffset(offset), value.raw()); 4065 StorePointer(FieldAddrAtOffset(offset), value.raw());
4064 } 4066 }
4065 bool IsValidFieldOffset(intptr_t offset) const; 4067 bool IsValidFieldOffset(intptr_t offset) const;
4066 4068
4067 static intptr_t NextFieldOffset() { 4069 static intptr_t NextFieldOffset() {
4068 return sizeof(RawInstance); 4070 return sizeof(RawInstance);
4069 } 4071 }
4070 4072
4071 // TODO(iposva): Determine if this gets in the way of Smi. 4073 // TODO(iposva): Determine if this gets in the way of Smi.
(...skipping 2703 matching lines...) Expand 10 before | Expand all | Expand 10 after
6775 6777
6776 6778
6777 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, 6779 RawObject* MegamorphicCache::GetTargetFunction(const Array& array,
6778 intptr_t index) { 6780 intptr_t index) {
6779 return array.At((index * kEntryLength) + kTargetFunctionIndex); 6781 return array.At((index * kEntryLength) + kTargetFunctionIndex);
6780 } 6782 }
6781 6783
6782 } // namespace dart 6784 } // namespace dart
6783 6785
6784 #endif // VM_OBJECT_H_ 6786 #endif // VM_OBJECT_H_
OLDNEW
« no previous file with comments | « runtime/vm/isolate.cc ('k') | runtime/vm/object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698