From 8b98e34ff670e6f8d053b42749d036787b65b800 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Tue, 15 Jan 2008 20:41:56 +0000 Subject: [PATCH] Closed a small memory leak --- test/ng_xorrisoburn.c | 16 ++++++++++++---- test/ng_xorrisoburn.h | 3 ++- test/xorriso.c | 6 ++---- test/xorriso_timestamp.h | 2 +- test/xorrisoburn.c | 12 ++++++++---- test/xorrisoburn.h | 3 ++- 6 files changed, 27 insertions(+), 15 deletions(-) diff --git a/test/ng_xorrisoburn.c b/test/ng_xorrisoburn.c index fd5a20d5..7d1bc85a 100644 --- a/test/ng_xorrisoburn.c +++ b/test/ng_xorrisoburn.c @@ -119,11 +119,19 @@ int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag) } -int Xorriso_shutdown_libraries(struct XorrisO *xorriso, int flag) +/* @param flag bit0= global shutdown of libraries */ +int Xorriso_detach_libraries(struct XorrisO *xorriso, int flag) { - if(xorriso->libs_are_started==0) - return(0); - isoburn_finish(); + Xorriso_give_up_drive(xorriso, 3); + if(xorriso->in_volset_handle!=NULL) { /* standalone image */ + iso_image_unref((IsoImage *) xorriso->in_volset_handle); + xorriso->in_volset_handle= NULL; + } + if(flag&1) { + if(xorriso->libs_are_started==0) + return(0); + isoburn_finish(); + } return(1); } diff --git a/test/ng_xorrisoburn.h b/test/ng_xorrisoburn.h index 1fc1acd4..b5b66677 100644 --- a/test/ng_xorrisoburn.h +++ b/test/ng_xorrisoburn.h @@ -19,7 +19,8 @@ struct FindjoB; int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag); -int Xorriso_shutdown_libraries(struct XorrisO *xorriso, int flag); +/* @param flag bit0= global shutdown of libraries */ +int Xorriso_detach_libraries(struct XorrisO *xorriso, int flag); int Xorriso_create_empty_iso(struct XorrisO *xorriso, int flag); diff --git a/test/xorriso.c b/test/xorriso.c index 8d98e7eb..98186973 100644 --- a/test/xorriso.c +++ b/test/xorriso.c @@ -2957,7 +2957,7 @@ int Xorriso_destroy_re(struct XorrisO *m, int flag) } -/* @param flag bit0= shutdown libraries */ +/* @param flag bit0= global shutdown of libraries */ int Xorriso_destroy(struct XorrisO **xorriso, int flag) { struct XorrisO *m; @@ -2965,10 +2965,8 @@ int Xorriso_destroy(struct XorrisO **xorriso, int flag) m= *xorriso; if(m==NULL) return(0); - Xorriso_give_up_drive(m, 3); Xorriso_destroy_re(m,0); - if(flag&1) - Xorriso_shutdown_libraries(m, 0); + Xorriso_detach_libraries(m, flag&1); free((char *) m); *xorriso= NULL; diff --git a/test/xorriso_timestamp.h b/test/xorriso_timestamp.h index ac2a3212..aba65aae 100644 --- a/test/xorriso_timestamp.h +++ b/test/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2008.01.15.174409" +#define Xorriso_timestamP "2008.01.15.204057" diff --git a/test/xorrisoburn.c b/test/xorrisoburn.c index 32b09dfa..f4bb1291 100644 --- a/test/xorrisoburn.c +++ b/test/xorrisoburn.c @@ -101,11 +101,15 @@ int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag) } -int Xorriso_shutdown_libraries(struct XorrisO *xorriso, int flag) +/* @param flag bit0= global shutdown of libraries */ +int Xorriso_detach_libraries(struct XorrisO *xorriso, int flag) { - if(xorriso->libs_are_started==0) - return(0); - isoburn_finish(); + Xorriso_give_up_drive(xorriso, 3); + if(flag&1) { + if(xorriso->libs_are_started==0) + return(0); + isoburn_finish(); + } return(1); } diff --git a/test/xorrisoburn.h b/test/xorrisoburn.h index 83848e61..e205eb23 100644 --- a/test/xorrisoburn.h +++ b/test/xorrisoburn.h @@ -19,7 +19,8 @@ struct FindjoB; int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag); -int Xorriso_shutdown_libraries(struct XorrisO *xorriso, int flag); +/* @param flag bit0= global shutdown of libraries */ +int Xorriso_detach_libraries(struct XorrisO *xorriso, int flag); int Xorriso_create_empty_iso(struct XorrisO *xorriso, int flag);