Diff

plugins/mod_roster.lua @ 3323:5228a395999b

mod_roster: Use value returned by pairs() during roster iteration to avoid dozens of wasteful table lookups
author Matthew Wild <mwild1@gmail.com>
date Mon, 05 Jul 2010 02:20:37 +0100
parent 2925:692b3c6c5bd2
child 3525:1e44e7e8e79c
line wrap: on
line diff
--- a/plugins/mod_roster.lua	Sun Jul 04 19:38:33 2010 +0100
+++ b/plugins/mod_roster.lua	Mon Jul 05 02:20:37 2010 +0100
@@ -42,15 +42,15 @@
 					if not (client_ver and server_ver) or client_ver ~= server_ver then
 						roster:query("jabber:iq:roster");
 						-- Client does not support versioning, or has stale roster
-						for jid in pairs(session.roster) do
+						for jid, item in pairs(session.roster) do
 							if jid ~= "pending" and jid then
 								roster:tag("item", {
 									jid = jid,
-									subscription = session.roster[jid].subscription,
-									ask = session.roster[jid].ask,
-									name = session.roster[jid].name,
+									subscription = item.subscription,
+									ask = item.ask,
+									name = item.name,
 								});
-								for group in pairs(session.roster[jid].groups) do
+								for group in pairs(item.groups) do
 									roster:tag("group"):text(group):up();
 								end
 								roster:up(); -- move out from item