| Index: runtime/vm/scavenger.cc
|
| diff --git a/runtime/vm/scavenger.cc b/runtime/vm/scavenger.cc
|
| index 4fa81d926f661b5918bbfc394fc3bcee12d5b2c6..b6d15f758a5dd162cf3e687c48144d3a83ddc589 100644
|
| --- a/runtime/vm/scavenger.cc
|
| +++ b/runtime/vm/scavenger.cc
|
| @@ -197,12 +197,8 @@ class ScavengerVisitor : public ObjectPointerVisitor {
|
|
|
| class ScavengerWeakVisitor : public HandleVisitor {
|
| public:
|
| - ScavengerWeakVisitor(Thread* thread,
|
| - Scavenger* scavenger,
|
| - FinalizationQueue* finalization_queue)
|
| - : HandleVisitor(thread),
|
| - scavenger_(scavenger),
|
| - queue_(finalization_queue) {
|
| + ScavengerWeakVisitor(Thread* thread, Scavenger* scavenger)
|
| + : HandleVisitor(thread), scavenger_(scavenger) {
|
| ASSERT(scavenger->heap_->isolate() == thread->isolate());
|
| }
|
|
|
| @@ -211,7 +207,7 @@ class ScavengerWeakVisitor : public HandleVisitor {
|
| reinterpret_cast<FinalizablePersistentHandle*>(addr);
|
| RawObject** p = handle->raw_addr();
|
| if (scavenger_->IsUnreachable(p)) {
|
| - handle->UpdateUnreachable(thread()->isolate(), queue_);
|
| + handle->UpdateUnreachable(thread()->isolate());
|
| } else {
|
| handle->UpdateRelocated(thread()->isolate());
|
| }
|
| @@ -219,7 +215,6 @@ class ScavengerWeakVisitor : public HandleVisitor {
|
|
|
| private:
|
| Scavenger* scavenger_;
|
| - FinalizationQueue* queue_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ScavengerWeakVisitor);
|
| };
|
| @@ -823,19 +818,8 @@ void Scavenger::Scavenge(bool invoke_api_callbacks) {
|
| int64_t middle = OS::GetCurrentMonotonicMicros();
|
| {
|
| TIMELINE_FUNCTION_GC_DURATION(thread, "WeakHandleProcessing");
|
| - if (FLAG_background_finalization) {
|
| - FinalizationQueue* queue = new FinalizationQueue();
|
| - ScavengerWeakVisitor weak_visitor(thread, this, queue);
|
| - IterateWeakRoots(isolate, &weak_visitor);
|
| - if (queue->length() > 0) {
|
| - Dart::thread_pool()->Run(new BackgroundFinalizer(isolate, queue));
|
| - } else {
|
| - delete queue;
|
| - }
|
| - } else {
|
| - ScavengerWeakVisitor weak_visitor(thread, this, NULL);
|
| - IterateWeakRoots(isolate, &weak_visitor);
|
| - }
|
| + ScavengerWeakVisitor weak_visitor(thread, this);
|
| + IterateWeakRoots(isolate, &weak_visitor);
|
| }
|
| ProcessWeakReferences();
|
| page_space->ReleaseDataLock();
|
|
|