Skip to content

Commit 3d3d2b1

Browse files
committed
Optimize sets:is_empty/1
1 parent 1621565 commit 3d3d2b1

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

lib/stdlib/src/sets.erl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ false
311311
-doc(#{since => <<"OTP 21.0">>}).
312312
-spec is_empty(Set) -> boolean() when
313313
Set :: set().
314-
is_empty(#{}=S) -> map_size(S) =:= 0;
314+
is_empty(#{}=S) -> S =:= #{};
315315
is_empty(#set{size=Size}) -> Size =:= 0.
316316
317317
-doc """
@@ -561,15 +561,17 @@ elements that are present in both sets.
561561
Set2 :: set(Element),
562562
Set3 :: set(Element).
563563
intersection(#{}=S1, #{}=S2) ->
564-
case map_size(S1) < map_size(S2) of
564+
Size1 = map_size(S1),
565+
Size2 = map_size(S2),
566+
case Size1 < Size2 of
565567
true ->
566568
Next = maps:next(maps:iterator(S1)),
567569
intersection_heuristic(Next, [], [],
568-
floor(map_size(S1) * 0.75), S1, S2);
570+
floor(Size1 * 0.75), S1, S2);
569571
false ->
570572
Next = maps:next(maps:iterator(S2)),
571573
intersection_heuristic(Next, [], [],
572-
floor(map_size(S2) * 0.75), S2, S1)
574+
floor(Size2 * 0.75), S2, S1)
573575
end;
574576
intersection(S1, S2) ->
575577
case size(S1) < size(S2) of

0 commit comments

Comments
 (0)