From c656c7e9c274f3426527355320c0c22549c7792b Mon Sep 17 00:00:00 2001 From: fiaxh Date: Tue, 17 Apr 2018 20:11:44 +0200 Subject: small fixes --- xmpp-vala/src/module/util.vala | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'xmpp-vala/src/module/util.vala') diff --git a/xmpp-vala/src/module/util.vala b/xmpp-vala/src/module/util.vala index 849aeeec..cb11418c 100644 --- a/xmpp-vala/src/module/util.vala +++ b/xmpp-vala/src/module/util.vala @@ -20,9 +20,14 @@ public abstract class StanzaListener : OrderedListener { public class StanzaListenerHolder : ListenerHolder { public async void run(XmppStream stream, T stanza) { - foreach (OrderedListener ol in listeners) { + + // listeners can change e.g. when switching to another stream + ArrayList listeners_copy = new ArrayList(); + listeners_copy.add_all(listeners); + + foreach (OrderedListener ol in listeners_copy) { StanzaListener l = ol as StanzaListener; - bool stop = yield l.run(stream, stanza); + bool stop = yield l.run(stream, stanza); if (stop) break; } } -- cgit v1.2.3-70-g09d2