summaryrefslogtreecommitdiffstats
path: root/src/server/Engine.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-06-29 23:06:19 +0000
committerDavid Robillard <d@drobilla.net>2012-06-29 23:06:19 +0000
commit8f7f419adcfcd6cd7557b82266b064ed242793ad (patch)
treee0004f6eec4958260df53c711ac2c92d85e8f4cc /src/server/Engine.cpp
parent6eb584d3b0bc67fc8de36baba5e296d816ba080f (diff)
downloadingen-8f7f419adcfcd6cd7557b82266b064ed242793ad.tar.gz
ingen-8f7f419adcfcd6cd7557b82266b064ed242793ad.tar.bz2
ingen-8f7f419adcfcd6cd7557b82266b064ed242793ad.zip
Fix crashes caused by events attempting to respond to deleted clients (fix #842).
This one mainly manifested when using ingenish from the command line since the client is so short lived. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4503 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/Engine.cpp')
-rw-r--r--src/server/Engine.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/server/Engine.cpp b/src/server/Engine.cpp
index c5a7bddd..85ca530c 100644
--- a/src/server/Engine.cpp
+++ b/src/server/Engine.cpp
@@ -218,8 +218,9 @@ Engine::activate()
make_pair(uris.ingen_canvasY,
Resource::Property(forge.make(32.0f), Resource::EXTERNAL)));
+ SharedPtr<Interface> respondee;
execute_and_delete_event(
- context, new Events::CreatePort(*this, NULL, -1, 0,
+ context, new Events::CreatePort(*this, respondee, -1, 0,
"/control_in", false, in_properties));
// Add control out
@@ -236,7 +237,7 @@ Engine::activate()
Resource::Property(forge.make(32.0f), Resource::EXTERNAL)));
execute_and_delete_event(
- context, new Events::CreatePort(*this, NULL, -1, 0,
+ context, new Events::CreatePort(*this, respondee, -1, 0,
"/control_out", true, out_properties));
}