summaryrefslogtreecommitdiffstats
path: root/src/server/EventSource.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-09-15 04:53:18 +0000
committerDavid Robillard <d@drobilla.net>2011-09-15 04:53:18 +0000
commitd4cf461177a0e0309cefc3d02910c51477a3c105 (patch)
treeec3a680629342d161d8425c58650d0c71c2e31c3 /src/server/EventSource.cpp
parent728f510e8c542db2907dcd439a9ab99d07282220 (diff)
downloadingen-d4cf461177a0e0309cefc3d02910c51477a3c105.tar.gz
ingen-d4cf461177a0e0309cefc3d02910c51477a3c105.tar.bz2
ingen-d4cf461177a0e0309cefc3d02910c51477a3c105.zip
Fix crash on client event post-processing (e.g. when rapidly manipulating controls).
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3462 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/EventSource.cpp')
-rw-r--r--src/server/EventSource.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/server/EventSource.cpp b/src/server/EventSource.cpp
index cdecfd4a..ef982664 100644
--- a/src/server/EventSource.cpp
+++ b/src/server/EventSource.cpp
@@ -98,9 +98,11 @@ EventSource::process(PostProcessor& dest, ProcessContext& context, bool limit)
}
if (num_events_processed > 0) {
+ QueuedEvent* next = (QueuedEvent*)last->next();
+ last->next(NULL);
dest.append(_head.get(), last);
- _head = (QueuedEvent*)last->next();
- if (!last->next())
+ _head = next;
+ if (!next)
_tail = NULL;
}
}