diff options
author | Pablo Polvorin <pablo.polvorin@process-one.net> | 2012-11-09 16:58:47 -0300 |
---|---|---|
committer | Pablo Polvorin <pablo.polvorin@process-one.net> | 2012-11-09 16:58:47 -0300 |
commit | e521c8368a9796d4464bee1c98361f24e67a369c (patch) | |
tree | 3e780b883d775c72e1ee1d87f92a1f704b8fe1a2 /src | |
parent | Improvement (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.erl | 9 |
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), |