about summary refs log tree commit diff
path: root/src/liballoc_system
diff options
context:
space:
mode:
authorPeter Atashian <retep998@gmail.com>2016-10-25 10:00:16 -0400
committerPeter Atashian <retep998@gmail.com>2016-10-25 10:00:16 -0400
commitb3e8c4c2be593562085fca03a973fb2d917e5184 (patch)
tree7a2d43f748d5c81624747281d3ebcbdff5114fe0 /src/liballoc_system
parentaffc3b7552324284ccd7042b5b23f6ecd391babc (diff)
downloadrust-b3e8c4c2be593562085fca03a973fb2d917e5184.tar.gz
rust-b3e8c4c2be593562085fca03a973fb2d917e5184.zip
Print out the error when HeapFree failures do occur
Diffstat (limited to 'src/liballoc_system')
-rw-r--r--src/liballoc_system/lib.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/liballoc_system/lib.rs b/src/liballoc_system/lib.rs
index b380ba180f4..a4fabb5a2c9 100644
--- a/src/liballoc_system/lib.rs
+++ b/src/liballoc_system/lib.rs
@@ -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 @@ mod imp {
     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());
         }
     }