summaryrefslogtreecommitdiffstats
path: root/src/server/Event.hpp
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/Event.hpp
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/Event.hpp')
-rw-r--r--src/server/Event.hpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/server/Event.hpp b/src/server/Event.hpp
index 6820e8e2..963671ab 100644
--- a/src/server/Event.hpp
+++ b/src/server/Event.hpp
@@ -86,7 +86,7 @@ public:
}
protected:
- Event(Engine& engine, Interface* client, int32_t id, FrameTime time)
+ Event(Engine& engine, SharedPtr<Interface> client, int32_t id, FrameTime time)
: _engine(engine)
, _request_client(client)
, _request_id(id)
@@ -97,7 +97,6 @@ protected:
/** Constructor for internal events only */
explicit Event(Engine& engine)
: _engine(engine)
- , _request_client(NULL)
, _request_id(-1)
, _time(0)
, _status(NOT_PREPARED)
@@ -110,7 +109,7 @@ protected:
Engine& _engine;
Raul::AtomicPtr<Event> _next;
- Interface* _request_client;
+ SharedPtr<Interface> _request_client;
int32_t _request_id;
FrameTime _time;
Status _status;