diff options
author | Sverker Eriksson <[email protected]> | 2019-07-04 18:17:29 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2019-07-05 14:39:24 +0200 |
commit | ea69ed4a5885281b01a774b3efbc87184fe6db5f (patch) | |
tree | 72ac5742bdca5152f778404dc0aeb78b0b263209 /erts | |
parent | 7fe7fa3dde556b5b92522f8279d465bb52baf1f6 (diff) | |
download | otp-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.c | 3 |
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); } |