diff --git a/src/common/free_region_manager.h b/src/common/free_region_manager.h index e282a35cca..738dde6bdb 100644 --- a/src/common/free_region_manager.h +++ b/src/common/free_region_manager.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +;;;// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -12,6 +12,12 @@ class FreeRegionManager { public: explicit FreeRegionManager() = default; ~FreeRegionManager() = default; + + // Clear all free regions + void Clear() { + std::scoped_lock lk(m_mutex); + m_free_regions.clear(); + } void SetAddressSpace(void* start, size_t size) { this->FreeBlock(start, size); diff --git a/src/common/host_memory.cpp b/src/common/host_memory.cpp index 3eee0b66d5..d06522ec2c 100644 --- a/src/common/host_memory.cpp +++ b/src/common/host_memory.cpp @@ -592,7 +592,7 @@ private: void Release() { // Make sure we release resources in the correct order // First clear the free region manager to avoid any dangling references - free_manager = {}; + free_manager.Clear(); if (virtual_map_base != MAP_FAILED) { int ret = munmap(virtual_map_base, virtual_size);