mirror of
https://github.com/ziglang/zig.git
synced 2026-01-06 05:25:10 +00:00
Merge branch 'fix879' of https://github.com/bnoordhuis/zig into bnoordhuis-fix879
This commit is contained in:
commit
19e0ed5d3e
@ -31,8 +31,8 @@ pub const BufMap = struct {
|
||||
if (self.hash_map.get(key)) |entry| {
|
||||
const value_copy = try self.copy(value);
|
||||
errdefer self.free(value_copy);
|
||||
_ = try self.hash_map.put(key, value_copy);
|
||||
self.free(entry.value);
|
||||
const old_value = ??(try self.hash_map.put(key, value_copy));
|
||||
self.free(old_value);
|
||||
} else {
|
||||
const key_copy = try self.copy(key);
|
||||
errdefer self.free(key_copy);
|
||||
@ -71,3 +71,29 @@ pub const BufMap = struct {
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
const assert = @import("debug/index.zig").assert;
|
||||
const heap = @import("heap.zig");
|
||||
|
||||
test "BufMap" {
|
||||
var direct_allocator = heap.DirectAllocator.init();
|
||||
defer direct_allocator.deinit();
|
||||
|
||||
var bufmap = BufMap.init(&direct_allocator.allocator);
|
||||
defer bufmap.deinit();
|
||||
|
||||
try bufmap.set("x", "1");
|
||||
assert(mem.eql(u8, ??bufmap.get("x"), "1"));
|
||||
assert(1 == bufmap.count());
|
||||
|
||||
try bufmap.set("x", "2");
|
||||
assert(mem.eql(u8, ??bufmap.get("x"), "2"));
|
||||
assert(1 == bufmap.count());
|
||||
|
||||
try bufmap.set("x", "3");
|
||||
assert(mem.eql(u8, ??bufmap.get("x"), "3"));
|
||||
assert(1 == bufmap.count());
|
||||
|
||||
bufmap.delete("x");
|
||||
assert(0 == bufmap.count());
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user