Skip to content

Commit 248e7b3

Browse files
authored
Auto merge of #37399 - retep998:heap-of-trouble, r=alexcrichton
Print out the error when HeapFree failures do occur cc #37395 I'd prefer to use `assert!` instead of `debug_assert!` if the cost is acceptable. r? @alexcrichton
2 parents 2b262cf + b3e8c4c commit 248e7b3

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/liballoc_system/lib.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ mod imp {
166166
fn HeapAlloc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T) -> LPVOID;
167167
fn HeapReAlloc(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID, dwBytes: SIZE_T) -> LPVOID;
168168
fn HeapFree(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID) -> BOOL;
169+
fn GetLastError() -> DWORD;
169170
}
170171

171172
#[repr(C)]
@@ -230,11 +231,11 @@ mod imp {
230231
pub unsafe fn deallocate(ptr: *mut u8, _old_size: usize, align: usize) {
231232
if align <= MIN_ALIGN {
232233
let err = HeapFree(GetProcessHeap(), 0, ptr as LPVOID);
233-
debug_assert!(err != 0);
234+
debug_assert!(err != 0, "Failed to free heap memory: {}", GetLastError());
234235
} else {
235236
let header = get_header(ptr);
236237
let err = HeapFree(GetProcessHeap(), 0, header.0 as LPVOID);
237-
debug_assert!(err != 0);
238+
debug_assert!(err != 0, "Failed to free heap memory: {}", GetLastError());
238239
}
239240
}
240241

0 commit comments

Comments
 (0)