| ... | @@ -151,6 +151,13 @@ pub const DirectAllocator = struct { | ... | @@ -151,6 +151,13 @@ pub const DirectAllocator = struct { |
| 151 | const old_record_addr = old_adjusted_addr + old_mem.len; | 151 | const old_record_addr = old_adjusted_addr + old_mem.len; |
| 152 | const root_addr = @intToPtr(*align(1) usize, old_record_addr).*; | 152 | const root_addr = @intToPtr(*align(1) usize, old_record_addr).*; |
| 153 | const old_ptr = @intToPtr(*c_void, root_addr); | 153 | const old_ptr = @intToPtr(*c_void, root_addr); |
| | 154 | |
| | 155 | if(new_size == 0) |
| | 156 | { |
| | 157 | if(os.windows.HeapFree(self.heap_handle.?, 0, old_ptr) == 0) unreachable; |
| | 158 | return old_mem[0..0]; |
| | 159 | } |
| | 160 | |
| 154 | const amt = new_size + new_align + @sizeOf(usize); | 161 | const amt = new_size + new_align + @sizeOf(usize); |
| 155 | const new_ptr = os.windows.HeapReAlloc( | 162 | const new_ptr = os.windows.HeapReAlloc( |
| 156 | self.heap_handle.?, | 163 | self.heap_handle.?, |