| 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 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 185 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 196   object() : super() {}                                                        \ | 196   object() : super() {}                                                        \ | 
| 197   BASE_OBJECT_IMPLEMENTATION(object, super)                                    \ | 197   BASE_OBJECT_IMPLEMENTATION(object, super)                                    \ | 
| 198 | 198 | 
| 199 #define HEAP_OBJECT_IMPLEMENTATION(object, super)                              \ | 199 #define HEAP_OBJECT_IMPLEMENTATION(object, super)                              \ | 
| 200   OBJECT_IMPLEMENTATION(object, super);                                        \ | 200   OBJECT_IMPLEMENTATION(object, super);                                        \ | 
| 201   const Raw##object* raw_ptr() const {                                         \ | 201   const Raw##object* raw_ptr() const {                                         \ | 
| 202     ASSERT(raw() != null());                                                   \ | 202     ASSERT(raw() != null());                                                   \ | 
| 203     return raw()->ptr();                                                       \ | 203     return raw()->ptr();                                                       \ | 
| 204   }                                                                            \ | 204   }                                                                            \ | 
| 205   SNAPSHOT_READER_SUPPORT(object)                                              \ | 205   SNAPSHOT_READER_SUPPORT(object)                                              \ | 
| 206   friend class Isolate;                                                        \ |  | 
| 207   friend class StackFrame;                                                     \ | 206   friend class StackFrame;                                                     \ | 
|  | 207   friend class Thread;                                                         \ | 
| 208 | 208 | 
| 209 // This macro is used to denote types that do not have a sub-type. | 209 // This macro is used to denote types that do not have a sub-type. | 
| 210 #define FINAL_HEAP_OBJECT_IMPLEMENTATION_HELPER(object, rettype, super)        \ | 210 #define FINAL_HEAP_OBJECT_IMPLEMENTATION_HELPER(object, rettype, super)        \ | 
| 211  public:  /* NOLINT */                                                         \ | 211  public:  /* NOLINT */                                                         \ | 
| 212   void operator=(Raw##object* value) {                                         \ | 212   void operator=(Raw##object* value) {                                         \ | 
| 213     raw_ = value;                                                              \ | 213     raw_ = value;                                                              \ | 
| 214     CHECK_HANDLE();                                                            \ | 214     CHECK_HANDLE();                                                            \ | 
| 215   }                                                                            \ | 215   }                                                                            \ | 
| 216   void operator^=(RawObject* value) {                                          \ | 216   void operator^=(RawObject* value) {                                          \ | 
| 217     raw_ = value;                                                              \ | 217     raw_ = value;                                                              \ | 
| 218     CHECK_HANDLE();                                                            \ | 218     CHECK_HANDLE();                                                            \ | 
| 219   }                                                                            \ | 219   }                                                                            \ | 
| 220  private:  /* NOLINT */                                                        \ | 220  private:  /* NOLINT */                                                        \ | 
| 221   object() : super() {}                                                        \ | 221   object() : super() {}                                                        \ | 
| 222   BASE_OBJECT_IMPLEMENTATION(object, super)                                    \ | 222   BASE_OBJECT_IMPLEMENTATION(object, super)                                    \ | 
| 223   const Raw##object* raw_ptr() const {                                         \ | 223   const Raw##object* raw_ptr() const {                                         \ | 
| 224     ASSERT(raw() != null());                                                   \ | 224     ASSERT(raw() != null());                                                   \ | 
| 225     return raw()->ptr();                                                       \ | 225     return raw()->ptr();                                                       \ | 
| 226   }                                                                            \ | 226   }                                                                            \ | 
| 227   static intptr_t NextFieldOffset() {                                          \ | 227   static intptr_t NextFieldOffset() {                                          \ | 
| 228     return -kWordSize;                                                         \ | 228     return -kWordSize;                                                         \ | 
| 229   }                                                                            \ | 229   }                                                                            \ | 
| 230   SNAPSHOT_READER_SUPPORT(rettype)                                             \ | 230   SNAPSHOT_READER_SUPPORT(rettype)                                             \ | 
| 231   friend class Isolate;                                                        \ |  | 
| 232   friend class StackFrame;                                                     \ | 231   friend class StackFrame;                                                     \ | 
|  | 232   friend class Thread;                                                         \ | 
| 233 | 233 | 
| 234 #define FINAL_HEAP_OBJECT_IMPLEMENTATION(object, super)                        \ | 234 #define FINAL_HEAP_OBJECT_IMPLEMENTATION(object, super)                        \ | 
| 235   FINAL_HEAP_OBJECT_IMPLEMENTATION_HELPER(object, object, super)               \ | 235   FINAL_HEAP_OBJECT_IMPLEMENTATION_HELPER(object, object, super)               \ | 
| 236 | 236 | 
| 237 #define MINT_OBJECT_IMPLEMENTATION(object, rettype, super)                     \ | 237 #define MINT_OBJECT_IMPLEMENTATION(object, rettype, super)                     \ | 
| 238   FINAL_HEAP_OBJECT_IMPLEMENTATION_HELPER(object, rettype, super)              \ | 238   FINAL_HEAP_OBJECT_IMPLEMENTATION_HELPER(object, rettype, super)              \ | 
| 239 | 239 | 
| 240 class Object { | 240 class Object { | 
| 241  public: | 241  public: | 
| 242   virtual ~Object() { } | 242   virtual ~Object() { } | 
| (...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 815   static Array* vm_isolate_snapshot_object_table_; | 815   static Array* vm_isolate_snapshot_object_table_; | 
| 816 | 816 | 
| 817   friend void ClassTable::Register(const Class& cls); | 817   friend void ClassTable::Register(const Class& cls); | 
| 818   friend void RawObject::Validate(Isolate* isolate) const; | 818   friend void RawObject::Validate(Isolate* isolate) const; | 
| 819   friend class Closure; | 819   friend class Closure; | 
| 820   friend class SnapshotReader; | 820   friend class SnapshotReader; | 
| 821   friend class OneByteString; | 821   friend class OneByteString; | 
| 822   friend class TwoByteString; | 822   friend class TwoByteString; | 
| 823   friend class ExternalOneByteString; | 823   friend class ExternalOneByteString; | 
| 824   friend class ExternalTwoByteString; | 824   friend class ExternalTwoByteString; | 
| 825   friend class Isolate; | 825   friend class Thread; | 
|  | 826 | 
| 826 #define REUSABLE_FRIEND_DECLARATION(name)                                      \ | 827 #define REUSABLE_FRIEND_DECLARATION(name)                                      \ | 
| 827   friend class Reusable##name##HandleScope; | 828   friend class Reusable##name##HandleScope; | 
| 828 REUSABLE_HANDLE_LIST(REUSABLE_FRIEND_DECLARATION) | 829 REUSABLE_HANDLE_LIST(REUSABLE_FRIEND_DECLARATION) | 
| 829 #undef REUSABLE_FRIEND_DECLARATION | 830 #undef REUSABLE_FRIEND_DECLARATION | 
| 830 | 831 | 
| 831   DISALLOW_ALLOCATION(); | 832   DISALLOW_ALLOCATION(); | 
| 832   DISALLOW_COPY_AND_ASSIGN(Object); | 833   DISALLOW_COPY_AND_ASSIGN(Object); | 
| 833 }; | 834 }; | 
| 834 | 835 | 
| 835 | 836 | 
| (...skipping 7323 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 8159 | 8160 | 
| 8160 | 8161 | 
| 8161 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, | 8162 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, | 
| 8162                                                intptr_t index) { | 8163                                                intptr_t index) { | 
| 8163   return array.At((index * kEntryLength) + kTargetFunctionIndex); | 8164   return array.At((index * kEntryLength) + kTargetFunctionIndex); | 
| 8164 } | 8165 } | 
| 8165 | 8166 | 
| 8166 }  // namespace dart | 8167 }  // namespace dart | 
| 8167 | 8168 | 
| 8168 #endif  // VM_OBJECT_H_ | 8169 #endif  // VM_OBJECT_H_ | 
| OLD | NEW | 
|---|