| 105 | } |
| 106 | |
| 107 | void insert(void *key, const AllocInfo &info) { |
| 108 | if (!entries) init(); |
| 109 | if ((filled + 1) * 4 >= capacity * 3) rehash(capacity * 2); |
| 110 | size_t i = find(key); |
| 111 | void *k = entries[i].key; |
| 112 | entries[i].key = key; |
| 113 | entries[i].info = info; |
| 114 | if (k == nullptr) { ++filled; ++live; } |
| 115 | else if (k == kTombstone) { ++live; } |
| 116 | } |
| 117 | |
| 118 | void erase(void *key) { |
| 119 | if (!entries || !live) return; |