diff --git a/ChangeLog b/ChangeLog index cd92d3fe..5cb2837f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -70,6 +70,16 @@ - only spot options at the end of arg strings - add vips_cache() as a vips8 operator +14/1/12 started 7.26.8 +- interpolate CLI args were broken (thanks speckins) + +5/12/11 started 7.26.7 +- lazy read from tiled tiff from layers other than 0 was broken +- optional args to vips_call*() do not work, disabled (fixed correctly in + master) +- address calculations in files over 4gb were broken on 32-bit platforms + (broken since March 2011, oops) + 12/10/11 started 7.26.6 - NOCACHE was not being set correctly on OS X causing performance problems with large files diff --git a/TODO b/TODO index 8332dfc8..885766aa 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,13 @@ - Vips.Image has members like chain, __subclasshook__ etc etc, are we really subclassing it correctly? +- have this warning: + +im_histspec.c: In function 'im_histspec': +im_histspec.c:101:6: warning: 'px' may be used uninitialized in this function +[-Wuninitialized] +im_histspec.c:79:6: note: 'px' was declared here:n ../his + - add support for constants how do boxed types work? confusing diff --git a/configure.in b/configure.in index eaaaec86..5534835a 100644 --- a/configure.in +++ b/configure.in @@ -71,7 +71,7 @@ AC_SUBST(vips_introspection_sources) # interface changes not backwards compatible?: reset age to 0 LIBRARY_CURRENT=30 -LIBRARY_REVISION=5 +LIBRARY_REVISION=7 LIBRARY_AGE=15 # patched into include/vips/version.h diff --git a/libvips/deprecated/dispatch_types.c b/libvips/deprecated/dispatch_types.c index 696d0f63..d354dca5 100644 --- a/libvips/deprecated/dispatch_types.c +++ b/libvips/deprecated/dispatch_types.c @@ -871,13 +871,12 @@ static int input_interpolate_init( im_object *obj, char *str ) { GType type = g_type_from_name( "VipsInterpolate" ); - VipsObjectClass *interpolate_class = - VIPS_OBJECT_CLASS( g_type_class_ref( type ) ); + VipsObjectClass *class = VIPS_OBJECT_CLASS( g_type_class_ref( type ) ); VipsObject *object; - g_assert( interpolate_class ); + g_assert( class ); - if( !(object = vips_object_new_from_string( interpolate_class, str )) ) + if( !(object = vips_object_new_from_string( class, str )) ) return( -1 ); if( vips_object_build( object ) ) { g_object_unref( object ); diff --git a/libvips/histograms_lut/im_histspec.c b/libvips/histograms_lut/im_histspec.c index 873a85d5..f2414ad1 100644 --- a/libvips/histograms_lut/im_histspec.c +++ b/libvips/histograms_lut/im_histspec.c @@ -64,18 +64,18 @@ static int match( IMAGE *in, IMAGE *ref, IMAGE *out ) { - const int inpx = in->Xsize * in->Ysize; - const int refpx = ref->Xsize * ref->Ysize; + const guint64 inpx = (guint64) in->Xsize * in->Ysize; + const guint64 refpx = (guint64) ref->Xsize * ref->Ysize; const int bands = in->Bands; unsigned int *inbuf; /* in and ref, padded to same size */ unsigned int *refbuf; unsigned int *outbuf; /* Always output as uint */ - int px; /* Number of pixels */ - int max; /* px * bands */ + guint64 px; /* Number of pixels */ + guint64 max; /* px * bands */ - int i, j; + guint64 i, j; if( im_iocheck( in, out ) || im_iocheck( ref, out ) || @@ -94,6 +94,8 @@ match( IMAGE *in, IMAGE *ref, IMAGE *out ) px = 256; else if( inpx <= 65536 && refpx <= 65536 ) px = 65536; + else + px = IM_MAX( inpx, refpx ); max = px * bands; /* Unpack to equal-sized buffers. diff --git a/libvips/video/im_video_v4l1.c b/libvips/video/im_video_v4l1.c index fe90dad3..1a20e06f 100644 --- a/libvips/video/im_video_v4l1.c +++ b/libvips/video/im_video_v4l1.c @@ -45,7 +45,6 @@ #include #endif /*HAVE_UNISTD_H*/ #include -#include #include #include