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
|
||||
|
||||
LIBRARY_CURRENT=30
|
||||
LIBRARY_REVISION=2
|
||||
LIBRARY_REVISION=3
|
||||
LIBRARY_AGE=15
|
||||
|
||||
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
|
||||
|
@ -159,7 +159,7 @@ extern "C" {
|
||||
#define im_invalidate vips_image_invalidate_all
|
||||
#define im_isfile vips_image_isfile
|
||||
#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_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_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
|
||||
}
|
||||
#endif /*__cplusplus*/
|
||||
|
@ -268,7 +268,6 @@ vips_init( const char *argv0 )
|
||||
}
|
||||
|
||||
/* Call this before vips stuff that uses stuff we need to have inited.
|
||||
* Fallback initialisation.
|
||||
*/
|
||||
void
|
||||
vips_check_init( void )
|
||||
|
@ -1026,6 +1026,8 @@ vips_object_real_new_from_string( const char *string )
|
||||
{
|
||||
GType type;
|
||||
|
||||
vips_check_init();
|
||||
|
||||
/* The main arg selects the subclass.
|
||||
*/
|
||||
if( !(type = vips_type_find( "VipsObject", string )) )
|
||||
@ -1425,6 +1427,8 @@ vips_object_new( GType type, VipsObjectSetArguments set, void *a, void *b )
|
||||
{
|
||||
VipsObject *object;
|
||||
|
||||
vips_check_init();
|
||||
|
||||
object = VIPS_OBJECT( g_object_new( type, NULL ) );
|
||||
|
||||
if( set && set( object, a, b ) ) {
|
||||
@ -1685,14 +1689,22 @@ vips_class_map_all( GType type, VipsClassMap fn, void *a )
|
||||
{
|
||||
void *result;
|
||||
|
||||
/* We never unref this ref, but we never unload classes
|
||||
* anyway, so so what.
|
||||
/* We can't instantiate abstract classes.
|
||||
*/
|
||||
if( !(result = fn( VIPS_OBJECT_CLASS( g_type_class_ref( type ) ), a )) )
|
||||
result = vips_type_map( type,
|
||||
(VipsTypeMap2) vips_class_map_all, fn, a );
|
||||
if( !G_TYPE_IS_ABSTRACT( type ) ) {
|
||||
/* We never unref this ref, but we never unload classes
|
||||
* 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.
|
||||
|
@ -214,6 +214,8 @@ vips_operation_new( const char *name )
|
||||
GType type;
|
||||
VipsOperation *operation;
|
||||
|
||||
vips_check_init();
|
||||
|
||||
if( !(type = vips_type_find( "VipsOperation", name )) )
|
||||
return( 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