diff options
author | Nick Vatamaniuc <vatamane@gmail.com> | 2022-06-07 17:44:26 -0400 |
---|---|---|
committer | Nick Vatamaniuc <nickva@users.noreply.github.com> | 2022-06-08 10:04:02 -0400 |
commit | 35a8cbf7a5b3bf3c8e9e30182ee95e3a10b5ac5d (patch) | |
tree | 1e7c2d3d0d02c07aca66402860b67e66004a5dd5 | |
parent | 3f85dcfce309098fb02d7cc63e2760826b4efbab (diff) | |
download | couchdb-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.erl | 6 |
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. |