From 3633072b365ae858370c5c8e9c17708f255f2dc4 Mon Sep 17 00:00:00 2001 From: mathieui Date: Fri, 31 Jul 2015 20:47:01 +0200 Subject: Fix #3105 (/message completion is slow) sorting things several times is slow, and our roster wrapper is even slower. remove the overly slow code until the roster wrapper is rewritten (do we even need this level of detailed sorting in the first place?) --- src/core/completions.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/core/completions.py b/src/core/completions.py index f17e916c..9fd44f1b 100644 --- a/src/core/completions.py +++ b/src/core/completions.py @@ -217,12 +217,13 @@ def completion_message(self, the_input): n = the_input.get_argument_position(quoted=True) if n >= 2: return - comp = reduce(lambda x, y: x + [i.jid for i in y], (roster[jid].resources for jid in roster.jids() if len(roster[jid])), []) - comp = sorted(comp) - bares = sorted(roster[contact].bare_jid for contact in roster.jids() if len(roster[contact])) - off = sorted(jid for jid in roster.jids() if jid not in bares) - comp = bares + comp + off - return the_input.new_completion(comp, 1, '', quotify=True) + l = [] + for jid in roster.jids(): + if len(roster[jid]): + l.append(jid) + for resource in roster[jid].resources: + l.append(resource.jid) + return the_input.new_completion(l, 1, '', quotify=True) def completion_invite(self, the_input): -- cgit v1.2.3