rename function members
some function members were not named with a trailing _fn, causing confusion
This commit is contained in:
parent
8ec4dbcedc
commit
f2d9001cce
16
TODO
16
TODO
@ -31,6 +31,22 @@ it's the 'stop' member of SinkThreadState
|
|||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
argh we have ->stop (a bool) and ->stop (a function)
|
||||||
|
|
||||||
|
rename the function as stop_fn
|
||||||
|
|
||||||
|
sstate is the "state" member of VipsThread
|
||||||
|
|
||||||
|
which is created by the ->start member of the thread
|
||||||
|
|
||||||
|
which is set by vips_threadpool_run()
|
||||||
|
|
||||||
|
which is vips_thread_state_new(), see vips_sink_memory()
|
||||||
|
|
||||||
|
which creates a VipsThreadState
|
||||||
|
|
||||||
|
|
||||||
|
so .. move ->stop from SinkThreadState into the base class, VipsThreadState
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,11 +44,11 @@ typedef int (*VipsGenerateFn)( VipsRegion *out,
|
|||||||
void *seq, void *a, void *b, gboolean *stop );
|
void *seq, void *a, void *b, gboolean *stop );
|
||||||
typedef int (*VipsStopFn)( void *seq, void *a, void *b );
|
typedef int (*VipsStopFn)( void *seq, void *a, void *b );
|
||||||
int vips_sink( VipsImage *im,
|
int vips_sink( VipsImage *im,
|
||||||
VipsStartFn start, VipsGenerateFn generate, VipsStopFn stop,
|
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
|
||||||
void *a, void *b );
|
void *a, void *b );
|
||||||
int vips_sink_tile( VipsImage *im,
|
int vips_sink_tile( VipsImage *im,
|
||||||
int tile_width, int tile_height,
|
int tile_width, int tile_height,
|
||||||
VipsStartFn start, VipsGenerateFn generate, VipsStopFn stop,
|
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
|
||||||
void *a, void *b );
|
void *a, void *b );
|
||||||
|
|
||||||
typedef void (*VipsSinkNotify)( VipsImage *im, VipsRect *rect, void *a );
|
typedef void (*VipsSinkNotify)( VipsImage *im, VipsRect *rect, void *a );
|
||||||
@ -69,7 +69,7 @@ VipsImage **vips_allocate_input_array( VipsImage *out, ... )
|
|||||||
__attribute__((sentinel));
|
__attribute__((sentinel));
|
||||||
|
|
||||||
int vips_image_generate( VipsImage *im,
|
int vips_image_generate( VipsImage *im,
|
||||||
VipsStartFn start, VipsGenerateFn generate, VipsStopFn stop,
|
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
|
||||||
void *a, void *b
|
void *a, void *b
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -297,9 +297,9 @@ typedef struct _VipsImage {
|
|||||||
/* Partial image stuff. All these fields are initialised
|
/* Partial image stuff. All these fields are initialised
|
||||||
* to NULL and ignored unless set by vips_image_generate() etc.
|
* to NULL and ignored unless set by vips_image_generate() etc.
|
||||||
*/
|
*/
|
||||||
void *(*start)(); /* user-supplied start function */
|
void *(*start_fn)(); /* user-supplied start function */
|
||||||
int (*generate)(); /* user-supplied generate function */
|
int (*generate_fn)(); /* user-supplied generate function */
|
||||||
int (*stop)(); /* user-supplied stop function */
|
int (*stop_fn)(); /* user-supplied stop function */
|
||||||
void *client1; /* user arguments */
|
void *client1; /* user arguments */
|
||||||
void *client2;
|
void *client2;
|
||||||
GMutex *sslock; /* start-stop lock */
|
GMutex *sslock; /* start-stop lock */
|
||||||
|
@ -567,9 +567,9 @@ write_vips( VipsRegion *region, VipsRect *area, void *a, void *b )
|
|||||||
/**
|
/**
|
||||||
* vips_image_generate:
|
* vips_image_generate:
|
||||||
* @image: generate this image
|
* @image: generate this image
|
||||||
* @start: start sequences with this function
|
* @start_fn: start sequences with this function
|
||||||
* @generate: generate pixels with this function
|
* @generate_fn: generate pixels with this function
|
||||||
* @stop: stop sequences with this function
|
* @stop_fn: stop sequences with this function
|
||||||
* @a: user data
|
* @a: user data
|
||||||
* @b: user data
|
* @b: user data
|
||||||
*
|
*
|
||||||
@ -591,14 +591,14 @@ write_vips( VipsRegion *region, VipsRect *area, void *a, void *b )
|
|||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
vips_image_generate( VipsImage *image,
|
vips_image_generate( VipsImage *image,
|
||||||
VipsStartFn start, VipsGenerateFn generate, VipsStopFn stop,
|
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
|
||||||
void *a, void *b )
|
void *a, void *b )
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
VIPS_DEBUG_MSG( "vips_image_generate: %p\n", image );
|
VIPS_DEBUG_MSG( "vips_image_generate: %p\n", image );
|
||||||
|
|
||||||
g_assert( generate );
|
g_assert( generate_fn );
|
||||||
g_assert( vips_object_sanity( VIPS_OBJECT( image ) ) );
|
g_assert( vips_object_sanity( VIPS_OBJECT( image ) ) );
|
||||||
|
|
||||||
if( !image->hint_set ) {
|
if( !image->hint_set ) {
|
||||||
@ -618,17 +618,17 @@ vips_image_generate( VipsImage *image,
|
|||||||
case VIPS_IMAGE_PARTIAL:
|
case VIPS_IMAGE_PARTIAL:
|
||||||
/* Output to partial image. Just attach functions and return.
|
/* Output to partial image. Just attach functions and return.
|
||||||
*/
|
*/
|
||||||
if( image->generate ||
|
if( image->generate_fn ||
|
||||||
image->start ||
|
image->start_fn ||
|
||||||
image->stop ) {
|
image->stop_fn ) {
|
||||||
vips_error( "VipsImage",
|
vips_error( "VipsImage",
|
||||||
"%s", _( "generate() called twice" ) );
|
"%s", _( "generate() called twice" ) );
|
||||||
return( -1 );
|
return( -1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
image->start = start;
|
image->start_fn = start_fn;
|
||||||
image->generate = generate;
|
image->generate_fn = generate_fn;
|
||||||
image->stop = stop;
|
image->stop_fn = stop_fn;
|
||||||
image->client1 = a;
|
image->client1 = a;
|
||||||
image->client2 = b;
|
image->client2 = b;
|
||||||
|
|
||||||
@ -643,9 +643,9 @@ vips_image_generate( VipsImage *image,
|
|||||||
case VIPS_IMAGE_OPENOUT:
|
case VIPS_IMAGE_OPENOUT:
|
||||||
/* Eval now .. sanity check.
|
/* Eval now .. sanity check.
|
||||||
*/
|
*/
|
||||||
if( image->generate ||
|
if( image->generate_fn ||
|
||||||
image->start ||
|
image->start_fn ||
|
||||||
image->stop ) {
|
image->stop_fn ) {
|
||||||
vips_error( "VipsImage",
|
vips_error( "VipsImage",
|
||||||
"%s", _( "generate() called twice" ) );
|
"%s", _( "generate() called twice" ) );
|
||||||
return( -1 );
|
return( -1 );
|
||||||
@ -653,9 +653,9 @@ vips_image_generate( VipsImage *image,
|
|||||||
|
|
||||||
/* Attach callbacks.
|
/* Attach callbacks.
|
||||||
*/
|
*/
|
||||||
image->start = start;
|
image->start_fn = start_fn;
|
||||||
image->generate = generate;
|
image->generate_fn = generate_fn;
|
||||||
image->stop = stop;
|
image->stop_fn = stop_fn;
|
||||||
image->client1 = a;
|
image->client1 = a;
|
||||||
image->client2 = b;
|
image->client2 = b;
|
||||||
|
|
||||||
|
@ -185,9 +185,9 @@ vips_image_finalize( GObject *gobject )
|
|||||||
|
|
||||||
/* Junk generate functions.
|
/* Junk generate functions.
|
||||||
*/
|
*/
|
||||||
image->start = NULL;
|
image->start_fn = NULL;
|
||||||
image->generate = NULL;
|
image->generate_fn = NULL;
|
||||||
image->stop = NULL;
|
image->stop_fn = NULL;
|
||||||
image->client1 = NULL;
|
image->client1 = NULL;
|
||||||
image->client2 = NULL;
|
image->client2 = NULL;
|
||||||
|
|
||||||
@ -2095,7 +2095,7 @@ vips_image_wio_output( VipsImage *image )
|
|||||||
case VIPS_IMAGE_PARTIAL:
|
case VIPS_IMAGE_PARTIAL:
|
||||||
/* Make sure nothing is attached.
|
/* Make sure nothing is attached.
|
||||||
*/
|
*/
|
||||||
if( image->generate ) {
|
if( image->generate_fn ) {
|
||||||
vips_error( "vips_image_wio_output",
|
vips_error( "vips_image_wio_output",
|
||||||
"%s", _( "image already written" ) );
|
"%s", _( "image already written" ) );
|
||||||
return( -1 );
|
return( -1 );
|
||||||
@ -2213,16 +2213,16 @@ vips_image_pio_input( VipsImage *image )
|
|||||||
|
|
||||||
/* Should be no generate functions now.
|
/* Should be no generate functions now.
|
||||||
*/
|
*/
|
||||||
image->start = NULL;
|
image->start_fn = NULL;
|
||||||
image->generate = NULL;
|
image->generate_fn = NULL;
|
||||||
image->stop = NULL;
|
image->stop_fn = NULL;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIPS_IMAGE_PARTIAL:
|
case VIPS_IMAGE_PARTIAL:
|
||||||
/* Should have had generate functions attached.
|
/* Should have had generate functions attached.
|
||||||
*/
|
*/
|
||||||
if( !image->generate ) {
|
if( !image->generate_fn ) {
|
||||||
vips_error( "vips_image_pio_input",
|
vips_error( "vips_image_pio_input",
|
||||||
"%s", _( "no image data" ) );
|
"%s", _( "no image data" ) );
|
||||||
return( -1 );
|
return( -1 );
|
||||||
@ -2284,7 +2284,7 @@ vips_image_pio_output( VipsImage *image )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case VIPS_IMAGE_PARTIAL:
|
case VIPS_IMAGE_PARTIAL:
|
||||||
if( image->generate ) {
|
if( image->generate_fn ) {
|
||||||
vips_error( "im_poutcheck",
|
vips_error( "im_poutcheck",
|
||||||
"%s", _( "image already written" ) );
|
"%s", _( "image already written" ) );
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
@ -201,10 +201,10 @@ vips__region_start( VipsRegion *region )
|
|||||||
{
|
{
|
||||||
VipsImage *image = region->im;
|
VipsImage *image = region->im;
|
||||||
|
|
||||||
if( !region->seq && image->start ) {
|
if( !region->seq && image->start_fn ) {
|
||||||
g_mutex_lock( image->sslock );
|
g_mutex_lock( image->sslock );
|
||||||
region->seq =
|
region->seq = image->start_fn( image,
|
||||||
image->start( image, image->client1, image->client2 );
|
image->client1, image->client2 );
|
||||||
g_mutex_unlock( image->sslock );
|
g_mutex_unlock( image->sslock );
|
||||||
|
|
||||||
if( !region->seq ) {
|
if( !region->seq ) {
|
||||||
@ -225,11 +225,11 @@ vips__region_stop( VipsRegion *region )
|
|||||||
{
|
{
|
||||||
IMAGE *image = region->im;
|
IMAGE *image = region->im;
|
||||||
|
|
||||||
if( region->seq && image->stop ) {
|
if( region->seq && image->stop_fn ) {
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
g_mutex_lock( image->sslock );
|
g_mutex_lock( image->sslock );
|
||||||
result = image->stop( region->seq,
|
result = image->stop_fn( region->seq,
|
||||||
image->client1, image->client2 );
|
image->client1, image->client2 );
|
||||||
g_mutex_unlock( image->sslock );
|
g_mutex_unlock( image->sslock );
|
||||||
|
|
||||||
@ -321,7 +321,7 @@ vips_region_sanity( VipsObject *object, VipsBuf *buf )
|
|||||||
case VIPS_IMAGE_PARTIAL:
|
case VIPS_IMAGE_PARTIAL:
|
||||||
/* Start and stop can be NULL, but not generate.
|
/* Start and stop can be NULL, but not generate.
|
||||||
*/
|
*/
|
||||||
if( !region->im->generate )
|
if( !region->im->generate_fn )
|
||||||
vips_buf_appends( buf, "generate NULL in partial\n" );
|
vips_buf_appends( buf, "generate NULL in partial\n" );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -796,7 +796,7 @@ int
|
|||||||
vips_region_fill( VipsRegion *reg, VipsRect *r, VipsRegionFillFn fn, void *a )
|
vips_region_fill( VipsRegion *reg, VipsRect *r, VipsRegionFillFn fn, void *a )
|
||||||
{
|
{
|
||||||
g_assert( reg->im->dtype == VIPS_IMAGE_PARTIAL );
|
g_assert( reg->im->dtype == VIPS_IMAGE_PARTIAL );
|
||||||
g_assert( reg->im->generate );
|
g_assert( reg->im->generate_fn );
|
||||||
|
|
||||||
/* Should have local memory.
|
/* Should have local memory.
|
||||||
*/
|
*/
|
||||||
@ -986,7 +986,7 @@ vips_region_generate( VipsRegion *reg )
|
|||||||
|
|
||||||
/* Ask for evaluation.
|
/* Ask for evaluation.
|
||||||
*/
|
*/
|
||||||
if( im->generate( reg, reg->seq, im->client1, im->client2 ) )
|
if( im->generate_fn( reg, reg->seq, im->client1, im->client2 ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
@ -1093,7 +1093,7 @@ vips_region_prepare_to_generate( VipsRegion *reg,
|
|||||||
IMAGE *im = reg->im;
|
IMAGE *im = reg->im;
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
if( !im->generate ) {
|
if( !im->generate_fn ) {
|
||||||
vips_error( "vips_region_prepare_to",
|
vips_error( "vips_region_prepare_to",
|
||||||
"%s", _( "incomplete header" ) );
|
"%s", _( "incomplete header" ) );
|
||||||
return( -1 );
|
return( -1 );
|
||||||
@ -1248,7 +1248,7 @@ vips_region_prepare_to( VipsRegion *reg,
|
|||||||
/* Could be either input or output. If there is a generate
|
/* Could be either input or output. If there is a generate
|
||||||
* function, we are outputting.
|
* function, we are outputting.
|
||||||
*/
|
*/
|
||||||
if( im->generate ) {
|
if( im->generate_fn ) {
|
||||||
if( vips_region_prepare_to_generate( reg,
|
if( vips_region_prepare_to_generate( reg,
|
||||||
dest, &final, x, y ) )
|
dest, &final, x, y ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
@ -61,9 +61,9 @@ typedef struct _Sink {
|
|||||||
|
|
||||||
/* Call params.
|
/* Call params.
|
||||||
*/
|
*/
|
||||||
VipsStartFn start;
|
VipsStartFn start_fn;
|
||||||
VipsGenerateFn generate;
|
VipsGenerateFn generate_fn;
|
||||||
VipsStopFn stop;
|
VipsStopFn stop_fn;
|
||||||
void *a;
|
void *a;
|
||||||
void *b;
|
void *b;
|
||||||
} Sink;
|
} Sink;
|
||||||
@ -99,10 +99,10 @@ G_DEFINE_TYPE( SinkThreadState, sink_thread_state, VIPS_TYPE_THREAD_STATE );
|
|||||||
static int
|
static int
|
||||||
sink_call_stop( Sink *sink, SinkThreadState *state )
|
sink_call_stop( Sink *sink, SinkThreadState *state )
|
||||||
{
|
{
|
||||||
if( state->seq && sink->stop ) {
|
if( state->seq && sink->stop_fn ) {
|
||||||
VIPS_DEBUG_MSG( "sink_call_stop: state = %p\n", state );
|
VIPS_DEBUG_MSG( "sink_call_stop: state = %p\n", state );
|
||||||
|
|
||||||
if( sink->stop( state->seq, sink->a, sink->b ) ) {
|
if( sink->stop_fn( state->seq, sink->a, sink->b ) ) {
|
||||||
SinkBase *sink_base = (SinkBase *) sink;
|
SinkBase *sink_base = (SinkBase *) sink;
|
||||||
|
|
||||||
vips_error( "vips_sink",
|
vips_error( "vips_sink",
|
||||||
@ -134,10 +134,10 @@ sink_thread_state_dispose( GObject *gobject )
|
|||||||
static int
|
static int
|
||||||
sink_call_start( Sink *sink, SinkThreadState *state )
|
sink_call_start( Sink *sink, SinkThreadState *state )
|
||||||
{
|
{
|
||||||
if( !state->seq && sink->start ) {
|
if( !state->seq && sink->start_fn ) {
|
||||||
VIPS_DEBUG_MSG( "sink_call_start: state = %p\n", state );
|
VIPS_DEBUG_MSG( "sink_call_start: state = %p\n", state );
|
||||||
|
|
||||||
state->seq = sink->start( sink->t, sink->a, sink->b );
|
state->seq = sink->start_fn( sink->t, sink->a, sink->b );
|
||||||
|
|
||||||
if( !state->seq ) {
|
if( !state->seq ) {
|
||||||
SinkBase *sink_base = (SinkBase *) sink;
|
SinkBase *sink_base = (SinkBase *) sink;
|
||||||
@ -221,17 +221,17 @@ vips_sink_base_init( SinkBase *sink_base, VipsImage *image )
|
|||||||
static int
|
static int
|
||||||
sink_init( Sink *sink,
|
sink_init( Sink *sink,
|
||||||
VipsImage *image,
|
VipsImage *image,
|
||||||
VipsStartFn start, VipsGenerateFn generate, VipsStopFn stop,
|
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
|
||||||
void *a, void *b )
|
void *a, void *b )
|
||||||
{
|
{
|
||||||
g_assert( generate );
|
g_assert( generate_fn );
|
||||||
|
|
||||||
vips_sink_base_init( &sink->sink_base, image );
|
vips_sink_base_init( &sink->sink_base, image );
|
||||||
|
|
||||||
sink->t = NULL;
|
sink->t = NULL;
|
||||||
sink->start = start;
|
sink->start_fn = start_fn;
|
||||||
sink->generate = generate;
|
sink->generate_fn = generate_fn;
|
||||||
sink->stop = stop;
|
sink->stop_fn = stop_fn;
|
||||||
sink->a = a;
|
sink->a = a;
|
||||||
sink->b = b;
|
sink->b = b;
|
||||||
|
|
||||||
@ -299,7 +299,7 @@ sink_work( VipsThreadState *state, void *a )
|
|||||||
Sink *sink = (Sink *) a;
|
Sink *sink = (Sink *) a;
|
||||||
|
|
||||||
if( vips_region_prepare( sstate->reg, &state->pos ) ||
|
if( vips_region_prepare( sstate->reg, &state->pos ) ||
|
||||||
sink->generate( sstate->reg, sstate->seq,
|
sink->generate_fn( sstate->reg, sstate->seq,
|
||||||
sink->a, sink->b, &sstate->stop ) )
|
sink->a, sink->b, &sstate->stop ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
|
||||||
@ -330,9 +330,9 @@ vips_sink_base_progress( void *a )
|
|||||||
* @im: scan over this image
|
* @im: scan over this image
|
||||||
* @tile_width: tile width
|
* @tile_width: tile width
|
||||||
* @tile_height: tile height
|
* @tile_height: tile height
|
||||||
* @start: start sequences with this function
|
* @start_fn: start sequences with this function
|
||||||
* @generate: generate pixels with this function
|
* @generate_fn: generate pixels with this function
|
||||||
* @stop: stop sequences with this function
|
* @stop_fn: stop sequences with this function
|
||||||
* @a: user data
|
* @a: user data
|
||||||
* @b: user data
|
* @b: user data
|
||||||
*
|
*
|
||||||
@ -352,7 +352,7 @@ vips_sink_base_progress( void *a )
|
|||||||
int
|
int
|
||||||
vips_sink_tile( VipsImage *im,
|
vips_sink_tile( VipsImage *im,
|
||||||
int tile_width, int tile_height,
|
int tile_width, int tile_height,
|
||||||
VipsStartFn start, VipsGenerateFn generate, VipsStopFn stop,
|
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
|
||||||
void *a, void *b )
|
void *a, void *b )
|
||||||
{
|
{
|
||||||
Sink sink;
|
Sink sink;
|
||||||
@ -365,7 +365,7 @@ vips_sink_tile( VipsImage *im,
|
|||||||
*/
|
*/
|
||||||
im->Bbits = vips_format_sizeof( im->BandFmt ) << 3;
|
im->Bbits = vips_format_sizeof( im->BandFmt ) << 3;
|
||||||
|
|
||||||
if( sink_init( &sink, im, start, generate, stop, a, b ) )
|
if( sink_init( &sink, im, start_fn, generate_fn, stop_fn, a, b ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
|
||||||
if( tile_width > 0 ) {
|
if( tile_width > 0 ) {
|
||||||
@ -395,9 +395,9 @@ vips_sink_tile( VipsImage *im,
|
|||||||
/**
|
/**
|
||||||
* vips_sink:
|
* vips_sink:
|
||||||
* @im: scan over this image
|
* @im: scan over this image
|
||||||
* @start: start sequences with this function
|
* @start_fn: start sequences with this function
|
||||||
* @generate: generate pixels with this function
|
* @generate_fn: generate pixels with this function
|
||||||
* @stop: stop sequences with this function
|
* @stop_fn: stop sequences with this function
|
||||||
* @a: user data
|
* @a: user data
|
||||||
* @b: user data
|
* @b: user data
|
||||||
*
|
*
|
||||||
@ -414,8 +414,9 @@ vips_sink_tile( VipsImage *im,
|
|||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
vips_sink( VipsImage *im,
|
vips_sink( VipsImage *im,
|
||||||
VipsStartFn start, VipsGenerateFn generate, VipsStopFn stop,
|
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
|
||||||
void *a, void *b )
|
void *a, void *b )
|
||||||
{
|
{
|
||||||
return( vips_sink_tile( im, -1, -1, start, generate, stop, a, b ) );
|
return( vips_sink_tile( im, -1, -1,
|
||||||
|
start_fn, generate_fn, stop_fn, a, b ) );
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user