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:
John Cupitt 2011-10-11 21:49:06 +01:00
commit b948f17c02
6 changed files with 26 additions and 2501 deletions

View File

@ -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)

View File

@ -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*/

View File

@ -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 )

View File

@ -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.

View File

@ -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 ) );

File diff suppressed because it is too large Load Diff