aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPablo Polvorin <pablo.polvorin@process-one.net>2012-11-09 16:58:47 -0300
committerPablo Polvorin <pablo.polvorin@process-one.net>2012-11-09 16:58:47 -0300
commite521c8368a9796d4464bee1c98361f24e67a369c (patch)
tree3e780b883d775c72e1ee1d87f92a1f704b8fe1a2 /src
parentImprovement (diff)
Improvement
Instead of traversing and constructing a new set, share the set structure when constructing the pres_a set.
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_c2s.erl9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index a143bf7b2..97b171f52 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -2390,13 +2390,8 @@ presence_broadcast_first(From, StateData, Packet) ->
JIDs2Probe = format_and_check_privacy(From, StateData, Packet, JIDsProbe, out),
Server = StateData#state.server,
send_multiple(From, Server, JIDs2Probe, PacketProbe),
- {As, JIDs} =
- ?SETS:fold(
- fun(JID, {A, JID_list}) ->
- {?SETS:add_element(JID, A), JID_list++[JID]}
- end,
- {StateData#state.pres_a, []},
- StateData#state.pres_f),
+ As = StateData#state.pres_f, %%Reuse existing structure, don't create a new one
+ JIDs = ?SETS:to_list(StateData#state.pres_f),
JIDs2 = format_and_check_privacy(From, StateData, Packet, JIDs, out),
Server = StateData#state.server,
send_multiple(From, Server, JIDs2, Packet),