diff --git a/src/modules/SANE/sane.c b/src/modules/SANE/sane.c index 96184f7222bf0f15cd34e58fefb421bbe126d413..490a6402ce6c46af6703cde46243cf68bb0271cc 100644 --- a/src/modules/SANE/sane.c +++ b/src/modules/SANE/sane.c @@ -351,7 +351,7 @@ static void assert_image_program() push_text( "Image.Image" ); APPLY_MASTER( "resolv", 1 ); image_program = program_from_svalue( sp - 1 ); - pop_stack(); + sp--;/* Do not free image program.. */ } } @@ -363,6 +363,8 @@ static void f_scanner_simple_scan( INT32 args ) rgb_group *r; + assert_image_program(); + pop_n_elems( args ); if( sane_start( THIS->h ) ) error("Start failed\n"); if( sane_get_parameters( THIS->h, &p ) ) error("Get parameters failed\n"); @@ -525,6 +527,8 @@ void pike_module_exit() { if( sane_is_inited ) sane_exit(); + if( image_program ) + free_program( image_program ); } #else