diff options
author | Sverker Eriksson <sverker@erlang.org> | 2023-04-27 15:10:32 +0200 |
---|---|---|
committer | Sverker Eriksson <sverker@erlang.org> | 2023-04-27 17:42:51 +0200 |
commit | 1f799a82c6e19de9b9623cf4700176c9804d9b39 (patch) | |
tree | af6e84327cd2096c28c695f7ba5beda17612dfe3 | |
parent | e1044e4213f7f793c5ff2380081766954517d6f9 (diff) | |
download | erlang-1f799a82c6e19de9b9623cf4700176c9804d9b39.tar.gz |
erts: Remove dead code
Merging of two key-value leafs with equal keys are handled
by hashmap_merge() itself, which means merge_colliding_node()
will always end up with at least two distinct keys and return
a collision node.
-rw-r--r-- | erts/emulator/beam/erl_map.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/erts/emulator/beam/erl_map.c b/erts/emulator/beam/erl_map.c index 88c74469ad..5cd867bb36 100644 --- a/erts/emulator/beam/erl_map.c +++ b/erts/emulator/beam/erl_map.c @@ -1466,10 +1466,10 @@ BIF_RETTYPE maps_merge_trap_1(BIF_ALIST_1) { #define MAP_MERGE_LOOP_FACTOR 8 -static Eterm merge_maybe_collision_node(Process* p, - Eterm* srcA, Uint szA, - Eterm* srcB, Uint szB, - Uint* map_sizep) +static Eterm merge_collision_node(Process* p, + Eterm* srcA, Uint szA, + Eterm* srcB, Uint szB, + Uint* map_sizep) { Eterm *hp; Eterm *hdr_ptr; @@ -1502,12 +1502,7 @@ static Eterm merge_maybe_collision_node(Process* p, } } } - if (arity == 1) { /* no collision node needed */ - Eterm ret_cons = hdr_ptr[1]; - ASSERT(!szA && !szB); - HRelease(p, hp_end, hdr_ptr); - return ret_cons; - } + ASSERT(arity >= 2); for ( ; szA; szA--) *hp++ = *srcA++; @@ -1691,8 +1686,8 @@ merge_nodes: ASSERT(!(sp->rbm == 0 && ctx->lvl > 0)); } else { - res = merge_maybe_collision_node(p, sp->srcA, coll_szA, - sp->srcB, coll_szB, &ctx->size); + res = merge_collision_node(p, sp->srcA, coll_szA, + sp->srcB, coll_szB, &ctx->size); sp->mix = 3; coll_szA = coll_szB = 0; continue; |