| ... | @@ -225,7 +225,7 @@ const PageAllocator = struct { | ... | @@ -225,7 +225,7 @@ const PageAllocator = struct { |
| 225 | w.VirtualFree(buf_unaligned.ptr, 0, w.MEM_RELEASE); | 225 | w.VirtualFree(buf_unaligned.ptr, 0, w.MEM_RELEASE); |
| 226 | return 0; | 226 | return 0; |
| 227 | } | 227 | } |
| 228 | if (new_size < buf_unaligned.len) { | 228 | if (new_size <= buf_unaligned.len) { |
| 229 | const base_addr = @ptrToInt(buf_unaligned.ptr); | 229 | const base_addr = @ptrToInt(buf_unaligned.ptr); |
| 230 | const old_addr_end = base_addr + buf_unaligned.len; | 230 | const old_addr_end = base_addr + buf_unaligned.len; |
| 231 | const new_addr_end = mem.alignForward(base_addr + new_size, mem.page_size); | 231 | const new_addr_end = mem.alignForward(base_addr + new_size, mem.page_size); |
| ... | @@ -240,10 +240,10 @@ const PageAllocator = struct { | ... | @@ -240,10 +240,10 @@ const PageAllocator = struct { |
| 240 | } | 240 | } |
| 241 | return alignPageAllocLen(new_size_aligned, new_size, len_align); | 241 | return alignPageAllocLen(new_size_aligned, new_size, len_align); |
| 242 | } | 242 | } |
| 243 | if (new_size == buf_unaligned.len) { | 243 | const old_size_aligned = mem.alignForward(buf_unaligned.len, mem.page_size); |
| | 244 | if (new_size_aligned <= old_size_aligned) { |
| 244 | return alignPageAllocLen(new_size_aligned, new_size, len_align); | 245 | return alignPageAllocLen(new_size_aligned, new_size, len_align); |
| 245 | } | 246 | } |
| 246 | // new_size > buf_unaligned.len not implemented | | |
| 247 | return error.OutOfMemory; | 247 | return error.OutOfMemory; |
| 248 | } | 248 | } |
| 249 | | 249 | |