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

Unified Diff: runtime/vm/heap.cc

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 side-by-side diff with in-line comments
Download patch
Index: runtime/vm/heap.cc
diff --git a/runtime/vm/heap.cc b/runtime/vm/heap.cc
index 4998b881cfdc1c4876e1cbf79b991a4853aaa9c1..bc3a057e5b47f93aae419b9709c1b4e9e02e12cd 100644
--- a/runtime/vm/heap.cc
+++ b/runtime/vm/heap.cc
@@ -38,7 +38,8 @@ Heap::Heap(Isolate* isolate,
barrier_done_(new Monitor()),
read_only_(false),
gc_new_space_in_progress_(false),
- gc_old_space_in_progress_(false) {
+ gc_old_space_in_progress_(false),
+ debug_gc_in_progress_(false) {
UpdateGlobalMaxUsed();
for (int sel = 0; sel < kNumWeakSelectors; sel++) {
new_weak_tables_[sel] = new WeakTable();
@@ -444,8 +445,10 @@ void Heap::CollectGarbage(Space space) {
void Heap::CollectAllGarbage() {
Thread* thread = Thread::Current();
- CollectNewSpaceGarbage(thread, kInvokeApiCallbacks, kFull);
+ debug_gc_in_progress_ = true;
CollectOldSpaceGarbage(thread, kInvokeApiCallbacks, kFull);
+ CollectNewSpaceGarbage(thread, kInvokeApiCallbacks, kFull);
+ debug_gc_in_progress_ = false;
}
« runtime/vm/heap.h ('K') | « runtime/vm/heap.h ('k') | runtime/vm/heap_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698