aboutsummaryrefslogtreecommitdiffstats
path: root/erts
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2019-07-04 18:17:29 +0200
committerSverker Eriksson <[email protected]>2019-07-05 14:39:24 +0200
commitea69ed4a5885281b01a774b3efbc87184fe6db5f (patch)
tree72ac5742bdca5152f778404dc0aeb78b0b263209 /erts
parent7fe7fa3dde556b5b92522f8279d465bb52baf1f6 (diff)
downloadotp-ea69ed4a5885281b01a774b3efbc87184fe6db5f.tar.gz
otp-ea69ed4a5885281b01a774b3efbc87184fe6db5f.tar.bz2
otp-ea69ed4a5885281b01a774b3efbc87184fe6db5f.zip
stdlib: ets_SUITE:fixtable_iter_bag
Turns out the bug in ets:next() that I tried to provoke with this new test wasn't really there. Oh well.
Diffstat (limited to 'erts')
-rw-r--r--erts/emulator/beam/erl_db_hash.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_db_hash.c b/erts/emulator/beam/erl_db_hash.c
index 42d7909a08..73d74ba47f 100644
--- a/erts/emulator/beam/erl_db_hash.c
+++ b/erts/emulator/beam/erl_db_hash.c
@@ -750,7 +750,7 @@ static int db_next_hash(Process *p, DbTable *tbl, Eterm key, Eterm *ret)
b = next_live(tb, &ix, &lck, b->next);
if (tb->common.status & (DB_BAG | DB_DUPLICATE_BAG)) {
while (b != 0) {
- if (!has_live_key(tb, b, key, hval)) {
+ if (!has_key(tb, b, key, hval)) {
break;
}
b = next_live(tb, &ix, &lck, b->next);
@@ -760,6 +760,7 @@ static int db_next_hash(Process *p, DbTable *tbl, Eterm key, Eterm *ret)
*ret = am_EOT;
}
else {
+ ASSERT(!is_pseudo_deleted(b));
*ret = db_copy_key(p, tbl, &b->dbterm);
RUNLOCK_HASH(lck);
}