Merge remote-tracking branch 'origin/7.26'
Conflicts: ChangeLog configure.in libvips/include/vips/vips.h libvips/include/vips/vips7compat.h libvips/iofuncs/image.c libvips/iofuncs/init.c po/vips7.pot
This commit is contained in:
commit
b948f17c02
@ -29,7 +29,7 @@ PACKAGE=vips
|
|||||||
# interface changes not backwards compatible?: reset age to 0
|
# interface changes not backwards compatible?: reset age to 0
|
||||||
|
|
||||||
LIBRARY_CURRENT=30
|
LIBRARY_CURRENT=30
|
||||||
LIBRARY_REVISION=2
|
LIBRARY_REVISION=3
|
||||||
LIBRARY_AGE=15
|
LIBRARY_AGE=15
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
|
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
|
||||||
|
@ -159,7 +159,7 @@ extern "C" {
|
|||||||
#define im_invalidate vips_image_invalidate_all
|
#define im_invalidate vips_image_invalidate_all
|
||||||
#define im_isfile vips_image_isfile
|
#define im_isfile vips_image_isfile
|
||||||
#define im_printdesc( I ) vips_object_print( VIPS_OBJECT( I ) )
|
#define im_printdesc( I ) vips_object_print( VIPS_OBJECT( I ) )
|
||||||
#define im_openout( F ) vips_image_new_from_file( F, "w" )
|
#define im_openout( F ) vips_image_new_mode( F, "w" )
|
||||||
#define im_setbuf( F ) vips_image_new( "t" )
|
#define im_setbuf( F ) vips_image_new( "t" )
|
||||||
|
|
||||||
#define im_initdesc( image, \
|
#define im_initdesc( image, \
|
||||||
@ -537,6 +537,10 @@ int im_copy_morph( VipsImage *in, VipsImage *out,
|
|||||||
int im_copy_swap( VipsImage *in, VipsImage *out );
|
int im_copy_swap( VipsImage *in, VipsImage *out );
|
||||||
int im_copy_native( VipsImage *in, VipsImage *out, gboolean is_msb_first );
|
int im_copy_native( VipsImage *in, VipsImage *out, gboolean is_msb_first );
|
||||||
|
|
||||||
|
/* ruby-vips uses this
|
||||||
|
*/
|
||||||
|
#define vips_class_map_concrete_all vips_class_map_all
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /*__cplusplus*/
|
#endif /*__cplusplus*/
|
||||||
|
@ -268,7 +268,6 @@ vips_init( const char *argv0 )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Call this before vips stuff that uses stuff we need to have inited.
|
/* Call this before vips stuff that uses stuff we need to have inited.
|
||||||
* Fallback initialisation.
|
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
vips_check_init( void )
|
vips_check_init( void )
|
||||||
|
@ -1026,6 +1026,8 @@ vips_object_real_new_from_string( const char *string )
|
|||||||
{
|
{
|
||||||
GType type;
|
GType type;
|
||||||
|
|
||||||
|
vips_check_init();
|
||||||
|
|
||||||
/* The main arg selects the subclass.
|
/* The main arg selects the subclass.
|
||||||
*/
|
*/
|
||||||
if( !(type = vips_type_find( "VipsObject", string )) )
|
if( !(type = vips_type_find( "VipsObject", string )) )
|
||||||
@ -1425,6 +1427,8 @@ vips_object_new( GType type, VipsObjectSetArguments set, void *a, void *b )
|
|||||||
{
|
{
|
||||||
VipsObject *object;
|
VipsObject *object;
|
||||||
|
|
||||||
|
vips_check_init();
|
||||||
|
|
||||||
object = VIPS_OBJECT( g_object_new( type, NULL ) );
|
object = VIPS_OBJECT( g_object_new( type, NULL ) );
|
||||||
|
|
||||||
if( set && set( object, a, b ) ) {
|
if( set && set( object, a, b ) ) {
|
||||||
@ -1685,14 +1689,22 @@ vips_class_map_all( GType type, VipsClassMap fn, void *a )
|
|||||||
{
|
{
|
||||||
void *result;
|
void *result;
|
||||||
|
|
||||||
/* We never unref this ref, but we never unload classes
|
/* We can't instantiate abstract classes.
|
||||||
* anyway, so so what.
|
|
||||||
*/
|
*/
|
||||||
if( !(result = fn( VIPS_OBJECT_CLASS( g_type_class_ref( type ) ), a )) )
|
if( !G_TYPE_IS_ABSTRACT( type ) ) {
|
||||||
result = vips_type_map( type,
|
/* We never unref this ref, but we never unload classes
|
||||||
(VipsTypeMap2) vips_class_map_all, fn, a );
|
* anyway, so so what.
|
||||||
|
*/
|
||||||
|
if( (result = fn(
|
||||||
|
VIPS_OBJECT_CLASS( g_type_class_ref( type ) ), a )) )
|
||||||
|
return( result );
|
||||||
|
}
|
||||||
|
|
||||||
return( result );
|
if( (result = vips_type_map( type,
|
||||||
|
(VipsTypeMap2) vips_class_map_all, fn, a )) )
|
||||||
|
return( result );
|
||||||
|
|
||||||
|
return( NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* How deeply nested is a class ... used to indent class lists.
|
/* How deeply nested is a class ... used to indent class lists.
|
||||||
|
@ -214,6 +214,8 @@ vips_operation_new( const char *name )
|
|||||||
GType type;
|
GType type;
|
||||||
VipsOperation *operation;
|
VipsOperation *operation;
|
||||||
|
|
||||||
|
vips_check_init();
|
||||||
|
|
||||||
if( !(type = vips_type_find( "VipsOperation", name )) )
|
if( !(type = vips_type_find( "VipsOperation", name )) )
|
||||||
return( NULL );
|
return( NULL );
|
||||||
operation = VIPS_OPERATION( g_object_new( type, NULL ) );
|
operation = VIPS_OPERATION( g_object_new( type, NULL ) );
|
||||||
|
2492
po/vips7.pot
2492
po/vips7.pot
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user