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

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

Issue 11428067: Merge the Merlin heap tracing to top-of-trunk. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: address remaining review comments Created 8 years 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
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_RAW_OBJECT_H_ 5 #ifndef VM_RAW_OBJECT_H_
6 #define VM_RAW_OBJECT_H_ 6 #define VM_RAW_OBJECT_H_
7 7
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/globals.h" 9 #include "vm/globals.h"
10 #include "vm/token.h" 10 #include "vm/token.h"
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 return ClassIdTag::decode(tags); 382 return ClassIdTag::decode(tags);
383 } 383 }
384 384
385 friend class Api; 385 friend class Api;
386 friend class Array; 386 friend class Array;
387 friend class FreeListElement; 387 friend class FreeListElement;
388 friend class GCMarker; 388 friend class GCMarker;
389 friend class Heap; 389 friend class Heap;
390 friend class HeapProfiler; 390 friend class HeapProfiler;
391 friend class HeapProfilerRootVisitor; 391 friend class HeapProfilerRootVisitor;
392 friend class HeapTrace;
393 friend class HeapTraceDebugObjectVisitor;
394 friend class HeapTraceHandleVisitor;
395 friend class HeapTraceVisitor;
392 friend class MarkingVisitor; 396 friend class MarkingVisitor;
393 friend class Object; 397 friend class Object;
394 friend class RawInstructions; 398 friend class RawInstructions;
395 friend class RawInstance; 399 friend class RawInstance;
396 friend class Scavenger; 400 friend class Scavenger;
397 friend class SnapshotReader; 401 friend class SnapshotReader;
398 friend class SnapshotWriter; 402 friend class SnapshotWriter;
399 friend class String; 403 friend class String;
400 404
401 DISALLOW_ALLOCATION(); 405 DISALLOW_ALLOCATION();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 439
436 cpp_vtable handle_vtable_; 440 cpp_vtable handle_vtable_;
437 intptr_t instance_size_in_words_; // Size if fixed len or 0 if variable len. 441 intptr_t instance_size_in_words_; // Size if fixed len or 0 if variable len.
438 intptr_t id_; // Class Id, also index in the class table. 442 intptr_t id_; // Class Id, also index in the class table.
439 intptr_t type_arguments_field_offset_in_words_; // Offset of type args fld. 443 intptr_t type_arguments_field_offset_in_words_; // Offset of type args fld.
440 intptr_t next_field_offset_in_words_; // Offset of the next instance field. 444 intptr_t next_field_offset_in_words_; // Offset of the next instance field.
441 intptr_t num_native_fields_; // Number of native fields in class. 445 intptr_t num_native_fields_; // Number of native fields in class.
442 intptr_t token_pos_; 446 intptr_t token_pos_;
443 uint8_t state_bits_; // state, is_const, is_implemented. 447 uint8_t state_bits_; // state, is_const, is_implemented.
444 448
449 friend class HeapTrace;
445 friend class Instance; 450 friend class Instance;
446 friend class Object; 451 friend class Object;
447 friend class RawInstance; 452 friend class RawInstance;
448 friend class RawInstructions; 453 friend class RawInstructions;
449 friend class SnapshotReader; 454 friend class SnapshotReader;
450 }; 455 };
451 456
452 457
453 class RawUnresolvedClass : public RawObject { 458 class RawUnresolvedClass : public RawObject {
454 RAW_HEAP_OBJECT_IMPLEMENTATION(UnresolvedClass); 459 RAW_HEAP_OBJECT_IMPLEMENTATION(UnresolvedClass);
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after
1111 1116
1112 1117
1113 class RawString : public RawInstance { 1118 class RawString : public RawInstance {
1114 RAW_HEAP_OBJECT_IMPLEMENTATION(String); 1119 RAW_HEAP_OBJECT_IMPLEMENTATION(String);
1115 1120
1116 protected: 1121 protected:
1117 RawObject** from() { return reinterpret_cast<RawObject**>(&ptr()->length_); } 1122 RawObject** from() { return reinterpret_cast<RawObject**>(&ptr()->length_); }
1118 RawSmi* length_; 1123 RawSmi* length_;
1119 RawSmi* hash_; 1124 RawSmi* hash_;
1120 RawObject** to() { return reinterpret_cast<RawObject**>(&ptr()->hash_); } 1125 RawObject** to() { return reinterpret_cast<RawObject**>(&ptr()->hash_); }
1126
1127 friend class HeapTrace;
1121 }; 1128 };
1122 1129
1123 1130
1124 class RawOneByteString : public RawString { 1131 class RawOneByteString : public RawString {
1125 RAW_HEAP_OBJECT_IMPLEMENTATION(OneByteString); 1132 RAW_HEAP_OBJECT_IMPLEMENTATION(OneByteString);
1126 1133
1127 // Variable length data follows here. 1134 // Variable length data follows here.
1128 uint8_t data_[0]; 1135 uint8_t data_[0];
1129 1136
1137 friend class ApiMessageReader;
1138 friend class HeapTrace;
1130 friend class SnapshotReader; 1139 friend class SnapshotReader;
1131 friend class ApiMessageReader;
1132 }; 1140 };
1133 1141
1134 1142
1135 class RawTwoByteString : public RawString { 1143 class RawTwoByteString : public RawString {
1136 RAW_HEAP_OBJECT_IMPLEMENTATION(TwoByteString); 1144 RAW_HEAP_OBJECT_IMPLEMENTATION(TwoByteString);
1137 1145
1138 // Variable length data follows here. 1146 // Variable length data follows here.
1139 uint16_t data_[0]; 1147 uint16_t data_[0];
1140 1148
1149 friend class HeapTrace;
1141 friend class SnapshotReader; 1150 friend class SnapshotReader;
1142 }; 1151 };
1143 1152
1144 1153
1145 template<typename T> 1154 template<typename T>
1146 class ExternalStringData { 1155 class ExternalStringData {
1147 public: 1156 public:
1148 ExternalStringData(const T* data, void* peer, Dart_PeerFinalizer callback) : 1157 ExternalStringData(const T* data, void* peer, Dart_PeerFinalizer callback) :
1149 data_(data), peer_(peer), callback_(callback) { 1158 data_(data), peer_(peer), callback_(callback) {
1150 } 1159 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1210 friend class RawImmutableArray; 1219 friend class RawImmutableArray;
1211 friend class SnapshotReader; 1220 friend class SnapshotReader;
1212 friend class GrowableObjectArray; 1221 friend class GrowableObjectArray;
1213 friend class Object; 1222 friend class Object;
1214 }; 1223 };
1215 1224
1216 1225
1217 class RawImmutableArray : public RawArray { 1226 class RawImmutableArray : public RawArray {
1218 RAW_HEAP_OBJECT_IMPLEMENTATION(ImmutableArray); 1227 RAW_HEAP_OBJECT_IMPLEMENTATION(ImmutableArray);
1219 1228
1229 friend class HeapTrace;
1220 friend class SnapshotReader; 1230 friend class SnapshotReader;
1221 }; 1231 };
1222 1232
1223 1233
1224 class RawGrowableObjectArray : public RawInstance { 1234 class RawGrowableObjectArray : public RawInstance {
1225 RAW_HEAP_OBJECT_IMPLEMENTATION(GrowableObjectArray); 1235 RAW_HEAP_OBJECT_IMPLEMENTATION(GrowableObjectArray);
1226 1236
1227 RawObject** from() { 1237 RawObject** from() {
1228 return reinterpret_cast<RawObject**>(&ptr()->type_arguments_); 1238 return reinterpret_cast<RawObject**>(&ptr()->type_arguments_);
1229 } 1239 }
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
1656 kExternalUint64ArrayCid == kExternalInt8ArrayCid + 8 && 1666 kExternalUint64ArrayCid == kExternalInt8ArrayCid + 8 &&
1657 kExternalFloat32ArrayCid == kExternalInt8ArrayCid + 9 && 1667 kExternalFloat32ArrayCid == kExternalInt8ArrayCid + 9 &&
1658 kExternalFloat64ArrayCid == kExternalInt8ArrayCid + 10 && 1668 kExternalFloat64ArrayCid == kExternalInt8ArrayCid + 10 &&
1659 kStacktraceCid == kExternalInt8ArrayCid + 11); 1669 kStacktraceCid == kExternalInt8ArrayCid + 11);
1660 return (index >= kExternalInt8ArrayCid && index <= kExternalFloat64ArrayCid); 1670 return (index >= kExternalInt8ArrayCid && index <= kExternalFloat64ArrayCid);
1661 } 1671 }
1662 1672
1663 } // namespace dart 1673 } // namespace dart
1664 1674
1665 #endif // VM_RAW_OBJECT_H_ 1675 #endif // VM_RAW_OBJECT_H_
OLDNEW
« runtime/vm/heap_trace.cc ('K') | « runtime/vm/pages.cc ('k') | runtime/vm/scavenger.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698