]> git.lizzy.rs Git - rust.git/commitdiff
Print out the error when HeapFree failures do occur
authorPeter Atashian <retep998@gmail.com>
Tue, 25 Oct 2016 14:00:16 +0000 (10:00 -0400)
committerPeter Atashian <retep998@gmail.com>
Tue, 25 Oct 2016 14:00:16 +0000 (10:00 -0400)
src/liballoc_system/lib.rs

index b380ba180f40ee865939c28cd6c244f2233d4d21..a4fabb5a2c96dbd69dc39340f1bdfb8ffea8250a 100644 (file)
@@ -166,6 +166,7 @@ mod imp {
         fn HeapAlloc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T) -> LPVOID;
         fn HeapReAlloc(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID, dwBytes: SIZE_T) -> LPVOID;
         fn HeapFree(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID) -> BOOL;
+        fn GetLastError() -> DWORD;
     }
 
     #[repr(C)]
@@ -230,11 +231,11 @@ pub unsafe fn reallocate_inplace(ptr: *mut u8,
     pub unsafe fn deallocate(ptr: *mut u8, _old_size: usize, align: usize) {
         if align <= MIN_ALIGN {
             let err = HeapFree(GetProcessHeap(), 0, ptr as LPVOID);
-            debug_assert!(err != 0);
+            debug_assert!(err != 0, "Failed to free heap memory: {}", GetLastError());
         } else {
             let header = get_header(ptr);
             let err = HeapFree(GetProcessHeap(), 0, header.0 as LPVOID);
-            debug_assert!(err != 0);
+            debug_assert!(err != 0, "Failed to free heap memory: {}", GetLastError());
         }
     }