summaryrefslogtreecommitdiff
path: root/src/libmpeg2
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2001-11-17 22:40:01 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2001-11-17 22:40:01 +0000
commit9ee92c975ddef88214ce317d9a25ff37d080aeed (patch)
treed952463443e8b96f68dcda9aae8bfede394fdb32 /src/libmpeg2
parent81b2f95cbb603795f41636ed3b089bfd712d1a79 (diff)
downloadxine-lib-9ee92c975ddef88214ce317d9a25ff37d080aeed.tar.gz
xine-lib-9ee92c975ddef88214ce317d9a25ff37d080aeed.tar.bz2
fixing memory leaks
CVS patchset: 1061 CVS date: 2001/11/17 22:40:01
Diffstat (limited to 'src/libmpeg2')
-rw-r--r--src/libmpeg2/decode.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/libmpeg2/decode.c b/src/libmpeg2/decode.c
index 0e84ccbaa..703b269e5 100644
--- a/src/libmpeg2/decode.c
+++ b/src/libmpeg2/decode.c
@@ -50,8 +50,10 @@ void mpeg2_init (mpeg2dec_t * mpeg2dec,
motion_comp_init ();
}
- mpeg2dec->chunk_buffer = xine_xmalloc_aligned (16, BUFFER_SIZE + 4);
- mpeg2dec->picture = xine_xmalloc_aligned (16, sizeof (picture_t));
+ if( !mpeg2dec->chunk_buffer )
+ mpeg2dec->chunk_buffer = xine_xmalloc_aligned (16, BUFFER_SIZE + 4);
+ if( !mpeg2dec->picture )
+ mpeg2dec->picture = xine_xmalloc_aligned (16, sizeof (picture_t));
mpeg2dec->shift = 0xffffff00;
mpeg2dec->is_sequence_needed = 1;
@@ -414,10 +416,15 @@ void mpeg2_close (mpeg2dec_t * mpeg2dec)
picture->backward_reference_frame->free (picture->backward_reference_frame);
}
- /* FIXME
- free (mpeg2dec->chunk_buffer);
- free (mpeg2dec->picture);
- */
+ if ( mpeg2dec->chunk_buffer ) {
+ xine_free_aligned (mpeg2dec->chunk_buffer);
+ mpeg2dec->chunk_buffer = NULL;
+ }
+
+ if ( mpeg2dec->picture ) {
+ xine_free_aligned (mpeg2dec->picture);
+ mpeg2dec->picture = NULL;
+ }
}
void mpeg2_find_sequence_header (mpeg2dec_t * mpeg2dec,