motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit 1ec0261518a8a0e302ebba28c96c4956ba323ce7 (tree)
parent 5c13a4e54a3ce814be02b75ef2029ceda6192bab
Author: Nathanaƫl Courant <nathanael.courant@inria.fr>
Date:   Mon,  7 Dec 2020 23:27:37 +0100

Fix general purpose allocator incorrectly modifying total_requested_bytes in some cases

Diffstat:
Mlib/std/heap/general_purpose_allocator.zig | 6+++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/std/heap/general_purpose_allocator.zig b/lib/std/heap/general_purpose_allocator.zig @@ -517,7 +517,11 @@ pub fn GeneralPurposeAllocator(comptime config: Config) type { second_free_stack_trace, }); if (new_size == 0) { - // Recoverable. + // Recoverable. Restore self.total_requested_bytes if needed, as we + // don't return an error value so the errdefer above does not run. + if (config.enable_memory_limit) { + self.total_requested_bytes = prev_req_bytes; + } return @as(usize, 0); } @panic("Unrecoverable double free");