| Index: runtime/vm/scavenger.cc
|
| diff --git a/runtime/vm/scavenger.cc b/runtime/vm/scavenger.cc
|
| index 959a7f35e7f0cd8c96d866e193a3543a22329fbc..a55f8f9678063d13a3de3673b2357b02bb34f66a 100644
|
| --- a/runtime/vm/scavenger.cc
|
| +++ b/runtime/vm/scavenger.cc
|
| @@ -372,10 +372,7 @@ intptr_t Scavenger::NewSizeInWords(intptr_t old_size_in_words) const {
|
| }
|
| }
|
|
|
| -SemiSpace* Scavenger::Prologue(Isolate* isolate, bool invoke_api_callbacks) {
|
| - if (invoke_api_callbacks && (isolate->gc_prologue_callback() != NULL)) {
|
| - (isolate->gc_prologue_callback())();
|
| - }
|
| +SemiSpace* Scavenger::Prologue(Isolate* isolate) {
|
| isolate->PrepareForGC();
|
|
|
| // Flip the two semi-spaces so that to_ is always the space for allocating
|
| @@ -399,9 +396,7 @@ SemiSpace* Scavenger::Prologue(Isolate* isolate, bool invoke_api_callbacks) {
|
| return from;
|
| }
|
|
|
| -void Scavenger::Epilogue(Isolate* isolate,
|
| - SemiSpace* from,
|
| - bool invoke_api_callbacks) {
|
| +void Scavenger::Epilogue(Isolate* isolate, SemiSpace* from) {
|
| // All objects in the to space have been copied from the from space at this
|
| // moment.
|
|
|
| @@ -442,9 +437,6 @@ void Scavenger::Epilogue(Isolate* isolate,
|
| if (heap_ != NULL) {
|
| heap_->UpdateGlobalMaxUsed();
|
| }
|
| - if (invoke_api_callbacks && (isolate->gc_epilogue_callback() != NULL)) {
|
| - (isolate->gc_epilogue_callback())();
|
| - }
|
| }
|
|
|
| void Scavenger::IterateStoreBuffers(Isolate* isolate,
|
| @@ -795,12 +787,6 @@ RawObject* Scavenger::FindObject(FindObjectVisitor* visitor) const {
|
| }
|
|
|
| void Scavenger::Scavenge() {
|
| - // TODO(cshapiro): Add a decision procedure for determining when the
|
| - // the API callbacks should be invoked.
|
| - Scavenge(false);
|
| -}
|
| -
|
| -void Scavenger::Scavenge(bool invoke_api_callbacks) {
|
| Isolate* isolate = heap_->isolate();
|
| // Ensure that all threads for this isolate are at a safepoint (either stopped
|
| // or in native code). If two threads are racing at this point, the loser
|
| @@ -838,7 +824,7 @@ void Scavenger::Scavenge(bool invoke_api_callbacks) {
|
| SpaceUsage usage_before = GetCurrentUsage();
|
| intptr_t promo_candidate_words =
|
| (survivor_end_ - FirstObjectStart()) / kWordSize;
|
| - SemiSpace* from = Prologue(isolate, invoke_api_callbacks);
|
| + SemiSpace* from = Prologue(isolate);
|
| // The API prologue/epilogue may create/destroy zones, so we must not
|
| // depend on zone allocations surviving beyond the epilogue callback.
|
| {
|
| @@ -866,7 +852,7 @@ void Scavenger::Scavenge(bool invoke_api_callbacks) {
|
| start, end, usage_before, GetCurrentUsage(), promo_candidate_words,
|
| visitor.bytes_promoted() >> kWordSizeLog2));
|
| }
|
| - Epilogue(isolate, from, invoke_api_callbacks);
|
| + Epilogue(isolate, from);
|
|
|
| // TODO(koda): Make verification more compatible with concurrent sweep.
|
| if (FLAG_verify_after_gc && !FLAG_concurrent_sweep) {
|
|
|