diff options
author | Simon Farnsworth <simon.farnsworth@onelan.co.uk> | 2007-07-12 11:30:14 +0100 |
---|---|---|
committer | Simon Farnsworth <simon.farnsworth@onelan.co.uk> | 2007-07-12 11:30:14 +0100 |
commit | 7cb04769574d9ef849ca7a7bd4da45671639eb77 (patch) | |
tree | ce8fa2f87b118cd674400b54cce6225c6427142d /src/xine-engine/video_overlay.c | |
parent | c29f5163db85b1b4097a791ca1ba96f2b52f1f04 (diff) | |
download | xine-lib-7cb04769574d9ef849ca7a7bd4da45671639eb77.tar.gz xine-lib-7cb04769574d9ef849ca7a7bd4da45671639eb77.tar.bz2 |
Fix memory leak in video_overlay.c
When running DVB subtitles for a long period of time (over 24 hours), we
noticed a slow leak of memory. This patch removes one cause of leakage
for us.
Diffstat (limited to 'src/xine-engine/video_overlay.c')
-rw-r--r-- | src/xine-engine/video_overlay.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/xine-engine/video_overlay.c b/src/xine-engine/video_overlay.c index 231aa5a70..574f42ac3 100644 --- a/src/xine-engine/video_overlay.c +++ b/src/xine-engine/video_overlay.c @@ -395,6 +395,8 @@ static int video_overlay_event( video_overlay_t *this, int64_t vpts ) { #endif /* free any overlay associated with this event */ if (this->events[this_event].event->object.overlay != NULL) { + if( this->events[this_event].event->object.overlay->rle != NULL ) + free( this->events[this_event].event->object.overlay->rle ); free(this->events[this_event].event->object.overlay); this->events[this_event].event->object.overlay = NULL; } @@ -406,9 +408,11 @@ static int video_overlay_event( video_overlay_t *this, int64_t vpts ) { printf ("video_overlay: FREE SPU NOW\n"); #endif /* free any overlay associated with this event */ - if (this->events[this_event].event->object.overlay != NULL) { + if( this->events[this_event].event->object.overlay != NULL) { + if( this->events[this_event].event->object.overlay->rle != NULL ) + free( this->events[this_event].event->object.overlay->rle ); free(this->events[this_event].event->object.overlay); - this->events[this_event].event->object.overlay = NULL; + this->events[this_event].event->object.overlay = NULL; } /* this avoid removing this_event from the queue * (it will be removed at the end of this loop) */ |