From 2815fe0163b52877b5aac63bec51a59aa79145fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E5=A4=B4=E4=BA=91?= Date: Wed, 3 Dec 2025 08:48:02 +0000 Subject: [PATCH] fix(shm_win): Use mem::$delete instead of mem::free in release() The acquire() function allocates id_info_t using mem::$new(), so the release() function must use mem::$delete(ii) to deallocate it, not mem::free(ii). This ensures proper allocation/deallocation pairing. Issue: Memory allocated with mem::$new must be freed with mem::$delete to maintain consistent memory management semantics. --- src/libipc/platform/win/shm_win.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libipc/platform/win/shm_win.cpp b/src/libipc/platform/win/shm_win.cpp index a3dda44..a8a0ce5 100755 --- a/src/libipc/platform/win/shm_win.cpp +++ b/src/libipc/platform/win/shm_win.cpp @@ -161,7 +161,7 @@ std::int32_t release(id_t id) noexcept { ipc::error("fail release: invalid id (h = null)\n"); } else ::CloseHandle(ii->h_); - mem::free(ii); + mem::$delete(ii); return ret; }