Chromium Code Reviews| 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_HEAP_H_ | 5 #ifndef VM_HEAP_H_ |
| 6 #define VM_HEAP_H_ | 6 #define VM_HEAP_H_ |
| 7 | 7 |
| 8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
| 9 #include "vm/allocation.h" | 9 #include "vm/allocation.h" |
| 10 #include "vm/flags.h" | 10 #include "vm/flags.h" |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 224 ASSERT((id >= 0) && (id < GCStats::kDataEntries)); | 224 ASSERT((id >= 0) && (id < GCStats::kDataEntries)); |
| 225 stats_.data_[id] = value; | 225 stats_.data_[id] = value; |
| 226 } | 226 } |
| 227 | 227 |
| 228 bool gc_in_progress() const { return gc_in_progress_; } | 228 bool gc_in_progress() const { return gc_in_progress_; } |
| 229 | 229 |
| 230 static bool IsAllocatableInNewSpace(intptr_t size) { | 230 static bool IsAllocatableInNewSpace(intptr_t size) { |
| 231 return size <= kNewAllocatableSize; | 231 return size <= kNewAllocatableSize; |
| 232 } | 232 } |
| 233 | 233 |
| 234 void set_object_id_ring_table(RawObject** object_id_ring_table, | |
|
Ivan Posva
2013/07/10 01:10:13
How about set_object_id_table and object_id_table(
Cutch
2013/07/10 17:23:10
Done.
| |
| 235 intptr_t object_id_ring_table_size) { | |
| 236 ASSERT(!gc_in_progress_); | |
| 237 object_id_ring_table_ = object_id_ring_table; | |
| 238 object_id_ring_table_size_ = object_id_ring_table_size; | |
| 239 } | |
| 240 RawObject** get_object_id_ring_table() { | |
|
Ivan Posva
2013/07/10 01:10:13
Why does this return the naked internals of the Ob
Cutch
2013/07/10 17:23:10
I've killed this and now the marker and scavenger
| |
| 241 return object_id_ring_table_; | |
| 242 } | |
| 243 intptr_t get_object_id_ring_table_size() { | |
| 244 return object_id_ring_table_size_; | |
| 245 } | |
| 246 | |
| 234 private: | 247 private: |
| 235 class GCStats : public ValueObject { | 248 class GCStats : public ValueObject { |
| 236 public: | 249 public: |
| 237 GCStats() {} | 250 GCStats() {} |
| 238 intptr_t num_; | 251 intptr_t num_; |
| 239 Heap::Space space_; | 252 Heap::Space space_; |
| 240 Heap::GCReason reason_; | 253 Heap::GCReason reason_; |
| 241 | 254 |
| 242 class Data : public ValueObject { | 255 class Data : public ValueObject { |
| 243 public: | 256 public: |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 286 | 299 |
| 287 // GC stats collection. | 300 // GC stats collection. |
| 288 GCStats stats_; | 301 GCStats stats_; |
| 289 | 302 |
| 290 // This heap is in read-only mode: No allocation is allowed. | 303 // This heap is in read-only mode: No allocation is allowed. |
| 291 bool read_only_; | 304 bool read_only_; |
| 292 | 305 |
| 293 // GC on the heap is in progress. | 306 // GC on the heap is in progress. |
| 294 bool gc_in_progress_; | 307 bool gc_in_progress_; |
| 295 | 308 |
| 309 // Ring of objects who have a vm service id assigned to them. | |
| 310 RawObject** object_id_ring_table_; | |
| 311 intptr_t object_id_ring_table_size_; | |
| 312 | |
| 296 friend class GCTestHelper; | 313 friend class GCTestHelper; |
| 297 DISALLOW_COPY_AND_ASSIGN(Heap); | 314 DISALLOW_COPY_AND_ASSIGN(Heap); |
| 298 }; | 315 }; |
| 299 | 316 |
| 300 | 317 |
| 301 #if defined(DEBUG) | 318 #if defined(DEBUG) |
| 302 class NoGCScope : public StackResource { | 319 class NoGCScope : public StackResource { |
| 303 public: | 320 public: |
| 304 NoGCScope(); | 321 NoGCScope(); |
| 305 ~NoGCScope(); | 322 ~NoGCScope(); |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 321 NoHeapGrowthControlScope(); | 338 NoHeapGrowthControlScope(); |
| 322 ~NoHeapGrowthControlScope(); | 339 ~NoHeapGrowthControlScope(); |
| 323 private: | 340 private: |
| 324 bool current_growth_controller_state_; | 341 bool current_growth_controller_state_; |
| 325 DISALLOW_COPY_AND_ASSIGN(NoHeapGrowthControlScope); | 342 DISALLOW_COPY_AND_ASSIGN(NoHeapGrowthControlScope); |
| 326 }; | 343 }; |
| 327 | 344 |
| 328 } // namespace dart | 345 } // namespace dart |
| 329 | 346 |
| 330 #endif // VM_HEAP_H_ | 347 #endif // VM_HEAP_H_ |
| OLD | NEW |