Skip to content

Commit

Permalink
fix freeing m.key_values.all_deleted, when there were no deletions, u…
Browse files Browse the repository at this point in the history
…se a single unsafe{} block for clarity
  • Loading branch information
spytheman committed Aug 31, 2024
1 parent 67a111a commit 4acbdbd
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions vlib/builtin/map.v
Original file line number Diff line number Diff line change
Expand Up @@ -318,9 +318,13 @@ pub fn (mut m map) clear() {
m.even_index = 0
m.key_values.len = 0
m.key_values.deletes = 0
unsafe { free(m.key_values.all_deleted) }
unsafe { vmemset(m.key_values.keys, 0, m.key_values.key_bytes * m.key_values.cap) }
unsafe { vmemset(m.metas, 0, sizeof(u32) * (m.even_index + 2 + m.extra_metas)) }
unsafe {
if m.key_values.all_deleted != 0 {
free(m.key_values.all_deleted)
}
vmemset(m.key_values.keys, 0, m.key_values.key_bytes * m.key_values.cap)
vmemset(m.metas, 0, sizeof(u32) * (m.even_index + 2 + m.extra_metas))
}
}

@[inline]
Expand Down

0 comments on commit 4acbdbd

Please sign in to comment.