From 3cad73dad6cde4896ed662bbe67605f2bdc6e296 Mon Sep 17 00:00:00 2001 From: swurl Date: Mon, 19 May 2025 15:22:08 -0400 Subject: Revert "THIS NEEDS TO BE CHECKED BEFORE MERGE: RAII fix, initial MSAA, some fixes for memory misallocation (#116)" This reverts commit ce5d5d2aff50f9ce8159d609824eb2391bed9ef2. --- src/common/host_memory.cpp | 31 +++---------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) (limited to 'src/common/host_memory.cpp') diff --git a/src/common/host_memory.cpp b/src/common/host_memory.cpp index d06522ec2c..e0b5a6a67c 100644 --- a/src/common/host_memory.cpp +++ b/src/common/host_memory.cpp @@ -491,12 +491,6 @@ public: // Intersect the range with our address space. AdjustMap(&virtual_offset, &length); - // Skip if length is zero after adjustment - if (length == 0) { - LOG_DEBUG(HW_Memory, "Skipping zero-length mapping at virtual_offset={}", virtual_offset); - return; - } - // We are removing a placeholder. free_manager.AllocateBlock(virtual_base + virtual_offset, length); @@ -526,21 +520,13 @@ public: // Intersect the range with our address space. AdjustMap(&virtual_offset, &length); - // Skip if length is zero after adjustment - if (length == 0) { - return; - } - // Merge with any adjacent placeholder mappings. auto [merged_pointer, merged_size] = free_manager.FreeBlock(virtual_base + virtual_offset, length); - // Only attempt to mmap if we have a valid pointer and size - if (merged_pointer != nullptr && merged_size > 0) { - void* ret = mmap(merged_pointer, merged_size, PROT_NONE, - MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0); - ASSERT_MSG(ret != MAP_FAILED, "mmap failed: {}", strerror(errno)); - } + void* ret = mmap(merged_pointer, merged_size, PROT_NONE, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0); + ASSERT_MSG(ret != MAP_FAILED, "mmap failed: {}", strerror(errno)); } void Protect(size_t virtual_offset, size_t length, bool read, bool write, bool execute) { @@ -590,26 +576,19 @@ public: private: /// Release all resources in the object void Release() { - // Make sure we release resources in the correct order - // First clear the free region manager to avoid any dangling references - free_manager.Clear(); - if (virtual_map_base != MAP_FAILED) { int ret = munmap(virtual_map_base, virtual_size); ASSERT_MSG(ret == 0, "munmap failed: {}", strerror(errno)); - virtual_map_base = reinterpret_cast(MAP_FAILED); } if (backing_base != MAP_FAILED) { int ret = munmap(backing_base, backing_size); ASSERT_MSG(ret == 0, "munmap failed: {}", strerror(errno)); - backing_base = reinterpret_cast(MAP_FAILED); } if (fd != -1) { int ret = close(fd); ASSERT_MSG(ret == 0, "close failed: {}", strerror(errno)); - fd = -1; } } @@ -707,10 +686,8 @@ void HostMemory::Map(size_t virtual_offset, size_t host_offset, size_t length, ASSERT(virtual_offset + length <= virtual_size); ASSERT(host_offset + length <= backing_size); if (length == 0 || !virtual_base || !impl) { - LOG_ERROR(HW_Memory, "Invalid mapping operation: virtual_base or impl is null"); return; } - LOG_INFO(HW_Memory, "Mapping memory: virtual_offset={}, host_offset={}, length={}", virtual_offset, host_offset, length); impl->Map(virtual_offset + virtual_base_offset, host_offset, length, perms); } @@ -719,10 +696,8 @@ void HostMemory::Unmap(size_t virtual_offset, size_t length, bool separate_heap) ASSERT(length % PageAlignment == 0); ASSERT(virtual_offset + length <= virtual_size); if (length == 0 || !virtual_base || !impl) { - LOG_ERROR(HW_Memory, "Invalid unmapping operation: virtual_base or impl is null"); return; } - LOG_INFO(HW_Memory, "Unmapping memory: virtual_offset={}, length={}", virtual_offset, length); impl->Unmap(virtual_offset + virtual_base_offset, length); } -- cgit v1.2.3