aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mod_mam_mnesia.erl15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/mod_mam_mnesia.erl b/src/mod_mam_mnesia.erl
index 2463690fd..be14d0fff 100644
--- a/src/mod_mam_mnesia.erl
+++ b/src/mod_mam_mnesia.erl
@@ -138,12 +138,15 @@ select(_LServer, JidRequestor,
SortedMsgs = lists:keysort(#archive_msg.timestamp, Msgs),
{FilteredMsgs, IsComplete} = filter_by_rsm(SortedMsgs, RSM),
Count = length(Msgs),
- {lists:map(
- fun(Msg) ->
- {Msg#archive_msg.id,
- jlib:binary_to_integer(Msg#archive_msg.id),
- mod_mam:msg_to_el(Msg, MsgType, JidRequestor, JidArchive)}
- end, FilteredMsgs), IsComplete, Count}.
+ Result = {lists:map(
+ fun(Msg) ->
+ {Msg#archive_msg.id,
+ jlib:binary_to_integer(Msg#archive_msg.id),
+ mod_mam:msg_to_el(Msg, MsgType, JidRequestor,
+ JidArchive)}
+ end, FilteredMsgs), IsComplete, Count},
+ erlang:garbage_collect(),
+ Result.
%%%===================================================================
%%% Internal functions