diff options
| author | Michael Dusan <michael.dusan@gmail.com> | 2020-02-10 21:08:08 -0500 |
|---|---|---|
| committer | Michael Dusan <michael.dusan@gmail.com> | 2020-02-10 21:08:08 -0500 |
| commit | edb210905dcbe666fa5222bceacd2e5bdb16bb89 (patch) | |
| tree | 984aec0e5bad756daf426855c54bae3c42c73eca /src/hash_map.hpp | |
| parent | 1cdefeb10b7496126bbb7d00709235abfee56a4a (diff) | |
| download | zig-edb210905dcbe666fa5222bceacd2e5bdb16bb89.tar.gz zig-edb210905dcbe666fa5222bceacd2e5bdb16bb89.zip | |
stage1: memory/report overhaul
- split util_base.hpp from util.hpp
- new namespaces: `mem` and `heap`
- new `mem::Allocator` interface
- new `heap::CAllocator` impl with global `heap::c_allocator`
- new `heap::ArenaAllocator` impl
- new `mem::TypeInfo` extracts names without RTTI
- name extraction is enabled w/ ZIG_ENABLE_MEM_PROFILE=1
- new `mem::List` takes explicit `Allocator&` parameter
- new `mem::HashMap` takes explicit `Allocator&` parameter
- add Codegen.pass1_arena and use for all `ZigValue` allocs
- deinit Codegen.pass1_arena early in `zig_llvm_emit_output()`
Diffstat (limited to 'src/hash_map.hpp')
| -rw-r--r-- | src/hash_map.hpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/hash_map.hpp b/src/hash_map.hpp index e819ea1c10..69e5568093 100644 --- a/src/hash_map.hpp +++ b/src/hash_map.hpp @@ -19,7 +19,7 @@ public: init_capacity(capacity); } void deinit(void) { - free(_entries); + heap::c_allocator.deallocate(_entries, _capacity); } struct Entry { @@ -57,7 +57,7 @@ public: if (old_entry->used) internal_put(old_entry->key, old_entry->value); } - free(old_entries); + heap::c_allocator.deallocate(old_entries, old_capacity); } } @@ -164,7 +164,7 @@ private: void init_capacity(int capacity) { _capacity = capacity; - _entries = allocate<Entry>(_capacity); + _entries = heap::c_allocator.allocate<Entry>(_capacity); _size = 0; _max_distance_from_start_index = 0; for (int i = 0; i < _capacity; i += 1) { |
