# HG changeset patch # User Matthew Wild # Date 1278292837 -3600 # Node ID 5228a395999b059b205494b049d66a7af10f0c41 # Parent c4e107e7c88380e168f33666eb1f46ec62a7e154 mod_roster: Use value returned by pairs() during roster iteration to avoid dozens of wasteful table lookups diff -r c4e107e7c883 -r 5228a395999b plugins/mod_roster.lua --- 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