You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by va...@apache.org on 2022/06/07 21:46:56 UTC

[couchdb] 01/01: Avoid using length/1 guard for >0 or ==0 tests in couch_key_tree

This is an automated email from the ASF dual-hosted git repository.

vatamane pushed a commit to branch avoid-length-in-guards-in-key-tree-stemming
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit bd605b42cfaf6f8d369b08d21af0cbf6d6ce2a4c
Author: Nick Vatamaniuc <va...@gmail.com>
AuthorDate: Tue Jun 7 17:44:26 2022 -0400

    Avoid using length/1 guard for >0 or ==0 tests in couch_key_tree
    
    Issue originally discovered by @iilyak using https://comby.dev/
---
 src/couch/src/couch_key_tree.erl | 6 +++---
 1 file 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.