summaryrefslogtreecommitdiff
path: root/src/xine-engine/events.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xine-engine/events.c')
-rw-r--r--src/xine-engine/events.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/xine-engine/events.c b/src/xine-engine/events.c
index 0750408bc..d46fda323 100644
--- a/src/xine-engine/events.c
+++ b/src/xine-engine/events.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: events.c,v 1.11 2002/10/19 21:23:52 guenter Exp $
+ * $Id: events.c,v 1.12 2002/10/22 07:36:05 jcdutton Exp $
*
* Event handling functions
*
@@ -62,7 +62,7 @@ xine_event_t *xine_event_wait (xine_event_queue_t *queue) {
}
void xine_event_free (xine_event_t *event) {
- free (event->data);
+ if (event->data) free (event->data);
free (event);
}
@@ -84,8 +84,12 @@ void xine_event_send (xine_stream_t *stream, const xine_event_t *event) {
cevent->type = event->type;
cevent->stream = event->stream;
cevent->data_length = event->data_length;
- cevent->data = malloc (event->data_length);
- memcpy (cevent->data, event->data, event->data_length);
+ if (cevent->data_length > 0 ) {
+ cevent->data = malloc (event->data_length);
+ memcpy (cevent->data, event->data, event->data_length);
+ } else {
+ cevent->data = NULL;
+ }
pthread_mutex_lock (&queue->lock);
xine_list_append_content (queue->events, cevent);