# HG changeset patch # User Leonard Ritter # Date 1678211639 -3600 # Tue Mar 07 18:53:59 2023 +0100 # Node ID 93115576408d8f21c490a684677e8280c24ff135 # Parent fc1287ba96ee52fc522dda9b566b39641b1b9d5a * fixed potential hashing of uninitialized values in the erase functions of `Map` and `Set` diff --git a/lib/scopes/Map.sc b/lib/scopes/Map.sc --- a/lib/scopes/Map.sc +++ b/lib/scopes/Map.sc @@ -144,8 +144,7 @@ let atvalue = (self._values @ index) let prev_key = (self._keys @ index_prev) let prev_value = (self._values @ index_prev) - let pd = (keydistance ((hash atkey) as u64) index mask) - if ((pd == 0) or (not (valid-slot? self index))) + if ((not (valid-slot? self index)) or ((keydistance ((hash atkey) as u64) index mask) == 0)) unset-slot self index_prev merge done swap atkey prev_key diff --git a/lib/scopes/Set.sc b/lib/scopes/Set.sc --- a/lib/scopes/Set.sc +++ b/lib/scopes/Set.sc @@ -138,8 +138,7 @@ let index_prev = (prevpos index mask) let atkey = (self._keys @ index) let prev_key = (self._keys @ index_prev) - let pd = (keydistance ((hash atkey) as u64) index mask) - if ((pd == 0) or (not (valid-slot? self index))) + if ((not (valid-slot? self index)) or ((keydistance ((hash atkey) as u64) index mask) == 0)) unset-slot self index_prev merge done swap atkey prev_key