From 2c45a56603414db399166c8179140d709f69c62d Mon Sep 17 00:00:00 2001 From: lizzie Date: Wed, 6 May 2026 17:01:54 +0000 Subject: [PATCH] fix std exchange, fix host mem unused funcs --- src/common/host_memory.cpp | 24 +++++++++++++++++------- src/common/virtual_buffer.h | 3 ++- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/common/host_memory.cpp b/src/common/host_memory.cpp index 88f6a8758e..876ed03a10 100644 --- a/src/common/host_memory.cpp +++ b/src/common/host_memory.cpp @@ -393,6 +393,10 @@ private: ankerl::unordered_dense::map placeholder_host_pointers; ///< Placeholder backing offset }; +#elif defined(__OPENORBIS__) +// None of the luxuries of POSIX +class Impl { +}; #else // ^^^ Windows ^^^ vvv POSIX vvv #ifdef ARCHITECTURE_arm64 @@ -700,30 +704,32 @@ HostMemory::HostMemory(HostMemory&&) noexcept = default; HostMemory& HostMemory::operator=(HostMemory&&) noexcept = default; -void HostMemory::Map(size_t virtual_offset, size_t host_offset, size_t length, - MemoryPermission perms, bool separate_heap) { +void HostMemory::Map(size_t virtual_offset, size_t host_offset, size_t length, MemoryPermission perms, bool separate_heap) { +#ifndef __OPENORBIS__ ASSERT(virtual_offset % PageAlignment == 0); ASSERT(host_offset % PageAlignment == 0); ASSERT(length % PageAlignment == 0); ASSERT(virtual_offset + length <= virtual_size); ASSERT(host_offset + length <= backing_size); - if (length == 0 || !virtual_base || !impl) { + if (length == 0 || !virtual_base || !impl) return; - } impl->Map(virtual_offset + virtual_base_offset, host_offset, length, perms); +#endif } void HostMemory::Unmap(size_t virtual_offset, size_t length, bool separate_heap) { +#ifndef __OPENORBIS__ ASSERT(virtual_offset % PageAlignment == 0); ASSERT(length % PageAlignment == 0); ASSERT(virtual_offset + length <= virtual_size); - if (length == 0 || !virtual_base || !impl) { + if (length == 0 || !virtual_base || !impl) return; - } impl->Unmap(virtual_offset + virtual_base_offset, length); +#endif } void HostMemory::Protect(size_t virtual_offset, size_t length, MemoryPermission perm) { +#ifndef __OPENORBIS__ ASSERT(virtual_offset % PageAlignment == 0); ASSERT(length % PageAlignment == 0); ASSERT(virtual_offset + length <= virtual_size); @@ -734,17 +740,21 @@ void HostMemory::Protect(size_t virtual_offset, size_t length, MemoryPermission const bool write = True(perm & MemoryPermission::Write); const bool execute = True(perm & MemoryPermission::Execute); impl->Protect(virtual_offset + virtual_base_offset, length, read, write, execute); +#endif } void HostMemory::ClearBackingRegion(size_t physical_offset, size_t length, u32 fill_value) { - std::memset(backing_base + physical_offset, fill_value, length); + if (!impl) + std::memset(backing_base + physical_offset, fill_value, length); } void HostMemory::EnableDirectMappedAddress() { +#ifndef __OPENORBIS__ if (impl) { impl->EnableDirectMappedAddress(); virtual_size += reinterpret_cast(virtual_base); } +#endif } } // namespace Common diff --git a/src/common/virtual_buffer.h b/src/common/virtual_buffer.h index af51949a10..adfdbb75d4 100644 --- a/src/common/virtual_buffer.h +++ b/src/common/virtual_buffer.h @@ -39,7 +39,8 @@ public: VirtualBuffer& operator=(const VirtualBuffer&) = delete; VirtualBuffer(VirtualBuffer&& other) noexcept - : alloc_size{std::exchange(other.alloc_size, 0)}, base_ptr{std::exchange(other.base_ptr), nullptr} + : alloc_size{std::exchange(other.alloc_size, 0)} + , base_ptr{std::exchange(other.base_ptr, nullptr)} {} VirtualBuffer& operator=(VirtualBuffer&& other) noexcept {