%PDF- %PDF-
| Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/heap/ |
| Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/heap/evacuation-allocator.cc |
// Copyright 2023 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/heap/evacuation-allocator.h"
#include "src/heap/main-allocator-inl.h"
namespace v8 {
namespace internal {
void EvacuationAllocator::Finalize() {
heap_->old_space()->MergeCompactionSpace(compaction_spaces_.Get(OLD_SPACE));
heap_->code_space()->MergeCompactionSpace(compaction_spaces_.Get(CODE_SPACE));
if (heap_->shared_space()) {
heap_->shared_space()->MergeCompactionSpace(
compaction_spaces_.Get(SHARED_SPACE));
}
heap_->trusted_space()->MergeCompactionSpace(
compaction_spaces_.Get(TRUSTED_SPACE));
// Give back remaining LAB space if this EvacuationAllocator's new space LAB
// sits right next to new space allocation top.
const LinearAllocationArea info = new_space_lab_.CloseAndMakeIterable();
if (new_space_) new_space_->main_allocator()->MaybeFreeUnusedLab(info);
}
} // namespace internal
} // namespace v8