From 86ff334195469a69f9de2cc18884f50c0eca2d25 Mon Sep 17 00:00:00 2001 From: Torben Hohn Date: Tue, 2 Mar 2010 00:24:56 +0100 Subject: [PATCH] add jack_session_event_free() and dont free it in jack_session_reply() --- jack/session.h | 9 +++++++++ libjack/client.c | 12 +++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/jack/session.h b/jack/session.h index 6768dec..8c13bfa 100644 --- a/jack/session.h +++ b/jack/session.h @@ -26,6 +26,7 @@ extern "C" { #endif +#include #include /** @@ -148,6 +149,14 @@ int jack_set_session_callback(jack_client_t *client, int jack_session_reply( jack_client_t *client, jack_session_event_t *event ) JACK_WEAK_EXPORT; +/** + * free memory used by a jack_session_event_t + * this also frees the memory used by the command_line pointer. + * if its non NULL. + */ + +void jack_session_event_free (jack_session_event_t *event); + /*@}*/ diff --git a/libjack/client.c b/libjack/client.c index 8b97272..d1a3f94 100644 --- a/libjack/client.c +++ b/libjack/client.c @@ -1348,7 +1348,6 @@ jack_session_reply (jack_client_t *client, jack_session_event_t *event ) "%s", event->command_line); client->control->session_flags = event->flags; - free (event->command_line); } else { retval = -1; } @@ -1363,11 +1362,18 @@ jack_session_reply (jack_client_t *client, jack_session_event_t *event ) retval = jack_client_deliver_request(client, &request); } + return retval; +} + +void +jack_session_event_free (jack_session_event_t *event) +{ + if (event->command_line) + free (event->command_line); + free ((char *)event->session_dir); free ((char *)event->client_uuid); free (event); - - return retval; } void