oops, keep Render alive for longer

This commit is contained in:
John Cupitt 2010-03-10 20:09:44 +00:00
parent c80452f70b
commit 96964001c7
1 changed files with 11 additions and 1 deletions

View File

@ -41,6 +41,8 @@
* - im_render(), im_render_fade() moved to deprecated
* 22/1/10
* - drop painted tiles on invalidate
* 10/3/10
* - keep render alive until both in and out close
*/
/*
@ -641,7 +643,10 @@ render_new( IMAGE *in, IMAGE *out, IMAGE *mask,
if( !(render = IM_NEW( NULL, Render )) )
return( NULL );
render->ref_count = 1;
/* Both in and out need to close before we can go, so ref_count starts
* at 2.
*/
render->ref_count = 2;
render->ref_count_lock = g_mutex_new();
render->in = in;
@ -671,6 +676,11 @@ render_new( IMAGE *in, IMAGE *out, IMAGE *mask,
(void) render_unref( render );
return( NULL );
}
if( im_add_close_callback( in,
(im_callback_fn) render_unref, render, NULL ) ) {
(void) render_unref( render );
return( NULL );
}
if( im_add_invalidate_callback( in,
(im_callback_fn) render_invalidate, render, NULL ) )