revert an accidental ABI break

the new window manager code in 8.6.1 changed the prototype of an internal
function which was visible in the public API

this patch renames the function, adds it to an internal header instead,
and adds a stub for the old prototype

see https://github.com/jcupitt/libvips/issues/854
This commit is contained in:
John Cupitt 2018-01-12 11:56:17 +00:00
parent 1b89d62eb5
commit 24c07cfde2
6 changed files with 21 additions and 7 deletions

View File

@ -1,5 +1,6 @@
5/1/18 started 8.6.2
- vips_sink_screen() keeps a ref to the input image ... stops a rare race
- fix a minor accidental ABI break in 8.6.0 -> 8.6.1 [remicollet]
10/12/17 started 8.6.1
- fix mmap window new/free cycling

View File

@ -257,6 +257,11 @@ void vips__reorder_init( void );
int vips__reorder_set_input( VipsImage *image, VipsImage **in );
void vips__reorder_clear( VipsImage *image );
/* Window manager API.
*/
VipsWindow *vips_window_take( VipsWindow *window,
VipsImage *im, int top, int height );
#ifdef __cplusplus
}
#endif /*__cplusplus*/

View File

@ -71,10 +71,6 @@ typedef struct {
size_t length; /* Size of window */
} VipsWindow;
/* window manager.
*/
VipsWindow *vips_window_ref( VipsWindow *window,
struct _VipsImage *im, int top, int height );
int vips_window_unref( VipsWindow *window );
void vips_window_print( VipsWindow *window );

View File

@ -1227,6 +1227,10 @@ int vips_check_dmask_1d( const char *domain, DOUBLEMASK *mask );
GOptionGroup *vips_get_option_group( void );
/* old window manager API
*/
VipsWindow *vips_window_ref( VipsImage *im, int top, int height );
#ifdef __cplusplus
}
#endif /*__cplusplus*/

View File

@ -678,7 +678,7 @@ vips_region_image( VipsRegion *reg, const VipsRect *r )
/* No complete image data ... but we can use a rolling window.
*/
reg->type = VIPS_REGION_WINDOW;
if( !(reg->window = vips_window_ref( reg->window, image,
if( !(reg->window = vips_window_take( reg->window, image,
clipped.top, clipped.height )) )
return( -1 );

View File

@ -342,10 +342,18 @@ vips_window_find( VipsImage *im, int top, int height )
return( window );
}
/* Update a ref to a window to make it enclose top/height.
/* Old API. Just a compat stub now.
*/
VipsWindow *
vips_window_ref( VipsWindow *window, VipsImage *im, int top, int height )
vips_window_ref( VipsImage *im, int top, int height )
{
return( NULL );
}
/* Update a window to make it enclose top/height.
*/
VipsWindow *
vips_window_take( VipsWindow *window, VipsImage *im, int top, int height )
{
int margin;