diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dtree.erl | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/dtree.erl b/src/dtree.erl index f39d8e3ac9..436bac558f 100644 --- a/src/dtree.erl +++ b/src/dtree.erl @@ -121,10 +121,13 @@ take_all(SK, {P, S}) -> {KVs, {P1, prune(SKS, PKS, S)}} end. -%% Drop all entries for the given primary key. +%% Drop all entries for the given primary key (which does not have to exist). drop(PK, {P, S}) -> - SKS = gb_trees:get(PK, P), - {gb_trees:delete(PK, P), prune(SKS, gb_sets:singleton(PK), S)}. + case gb_trees:lookup(PK, P) of + none -> {P, S}; + {value, SKS} -> {gb_trees:delete(PK, P), + prune(SKS, gb_sets:singleton(PK), S)} + end. is_defined(SK, {_P, S}) -> gb_trees:is_defined(SK, S). |
