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

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

Issue 2930943002: Debug garbage collector does not correctly remove cross-gen garbage (Closed)
Patch Set: Created 3 years, 6 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
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 RUNTIME_VM_HEAP_H_ 5 #ifndef RUNTIME_VM_HEAP_H_
6 #define RUNTIME_VM_HEAP_H_ 6 #define RUNTIME_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 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 238
239 Isolate* isolate() const { return isolate_; } 239 Isolate* isolate() const { return isolate_; }
240 240
241 Monitor* barrier() const { return barrier_; } 241 Monitor* barrier() const { return barrier_; }
242 Monitor* barrier_done() const { return barrier_done_; } 242 Monitor* barrier_done() const { return barrier_done_; }
243 243
244 void SetupImagePage(void* pointer, uword size, bool is_executable) { 244 void SetupImagePage(void* pointer, uword size, bool is_executable) {
245 old_space_.SetupImagePage(pointer, size, is_executable); 245 old_space_.SetupImagePage(pointer, size, is_executable);
246 } 246 }
247 247
248 bool IsDebugCollection() { return debug_gc_in_progress_; }
rmacnak 2017/06/08 21:23:48 Unused
249
248 private: 250 private:
249 class GCStats : public ValueObject { 251 class GCStats : public ValueObject {
250 public: 252 public:
251 GCStats() {} 253 GCStats() {}
252 intptr_t num_; 254 intptr_t num_;
253 Heap::Space space_; 255 Heap::Space space_;
254 Heap::GCReason reason_; 256 Heap::GCReason reason_;
255 257
256 class Data : public ValueObject { 258 class Data : public ValueObject {
257 public: 259 public:
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 GCStats stats_; 341 GCStats stats_;
340 342
341 // This heap is in read-only mode: No allocation is allowed. 343 // This heap is in read-only mode: No allocation is allowed.
342 bool read_only_; 344 bool read_only_;
343 345
344 // GC on the heap is in progress. 346 // GC on the heap is in progress.
345 Monitor gc_in_progress_monitor_; 347 Monitor gc_in_progress_monitor_;
346 bool gc_new_space_in_progress_; 348 bool gc_new_space_in_progress_;
347 bool gc_old_space_in_progress_; 349 bool gc_old_space_in_progress_;
348 350
351 // Debug GC is in progress
352 bool debug_gc_in_progress_;
353
349 friend class Become; // VisitObjectPointers 354 friend class Become; // VisitObjectPointers
350 friend class Precompiler; // VisitObjects 355 friend class Precompiler; // VisitObjects
351 friend class ObjectGraph; // VisitObjects 356 friend class ObjectGraph; // VisitObjects
352 friend class Unmarker; // VisitObjects 357 friend class Unmarker; // VisitObjects
353 friend class ServiceEvent; 358 friend class ServiceEvent;
354 friend class PageSpace; // VerifyGC 359 friend class PageSpace; // VerifyGC
355 friend class IsolateReloadContext; // VisitObjects 360 friend class IsolateReloadContext; // VisitObjects
356 friend class ClassFinalizer; // VisitObjects 361 friend class ClassFinalizer; // VisitObjects
357 362
358 DISALLOW_COPY_AND_ASSIGN(Heap); 363 DISALLOW_COPY_AND_ASSIGN(Heap);
(...skipping 28 matching lines...) Expand all
387 // Note: During this scope, the code pages are non-executable. 392 // Note: During this scope, the code pages are non-executable.
388 class WritableVMIsolateScope : StackResource { 393 class WritableVMIsolateScope : StackResource {
389 public: 394 public:
390 explicit WritableVMIsolateScope(Thread* thread); 395 explicit WritableVMIsolateScope(Thread* thread);
391 ~WritableVMIsolateScope(); 396 ~WritableVMIsolateScope();
392 }; 397 };
393 398
394 } // namespace dart 399 } // namespace dart
395 400
396 #endif // RUNTIME_VM_HEAP_H_ 401 #endif // RUNTIME_VM_HEAP_H_
OLDNEW
« runtime/vm/gc_marker.cc ('K') | « runtime/vm/gc_marker.cc ('k') | runtime/vm/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698