summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Vatamaniuc <vatamane@gmail.com>2022-06-07 17:44:26 -0400
committerNick Vatamaniuc <nickva@users.noreply.github.com>2022-06-08 10:04:02 -0400
commit35a8cbf7a5b3bf3c8e9e30182ee95e3a10b5ac5d (patch)
tree1e7c2d3d0d02c07aca66402860b67e66004a5dd5
parent3f85dcfce309098fb02d7cc63e2760826b4efbab (diff)
downloadcouchdb-35a8cbf7a5b3bf3c8e9e30182ee95e3a10b5ac5d.tar.gz
Avoid using length/1 guard for >0 or ==0 tests in couch_key_tree
Issue originally discovered by @iilyak using https://comby.dev/
-rw-r--r--src/couch/src/couch_key_tree.erl6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/couch/src/couch_key_tree.erl b/src/couch/src/couch_key_tree.erl
index 6c8637b42..ff294c5d3 100644
--- a/src/couch/src/couch_key_tree.erl
+++ b/src/couch/src/couch_key_tree.erl
@@ -537,10 +537,10 @@ stem_tree(Depth, {Key, Val, Children}, Limit, Seen0) ->
),
{FinalSeen, FinalLimitPos, FinalChildren, FinalBranches} = FinalAcc,
case FinalLimitPos of
- N when N > 0, length(FinalChildren) > 0 ->
+ N when N > 0, FinalChildren =/= [] ->
FinalNode = {Key, Val, lists:reverse(FinalChildren)},
{FinalSeen, FinalLimitPos - 1, FinalNode, FinalBranches};
- 0 when length(FinalChildren) > 0 ->
+ 0 when FinalChildren =/= [] ->
NewBranches = lists:map(
fun(Child) ->
{Depth + 1, Child}
@@ -548,7 +548,7 @@ stem_tree(Depth, {Key, Val, Children}, Limit, Seen0) ->
lists:reverse(FinalChildren)
),
{FinalSeen, -1, NewBranches ++ FinalBranches};
- N when N < 0, length(FinalChildren) == 0 ->
+ N when N < 0, FinalChildren =:= [] ->
{FinalSeen, FinalLimitPos - 1, FinalBranches}
end.