more vips image read fixing

thanks AFL!
This commit is contained in:
John Cupitt 2016-05-17 21:58:52 +01:00
parent 4285118880
commit 7ec63c4451
5 changed files with 18 additions and 11 deletions

View File

@ -1,3 +1,6 @@
18/5/16 started 8.3.2
- more robust vips image reading
15/4/16 started 8.3.1 15/4/16 started 8.3.1
- rename vips wrapper script, it was still vips-8.2, thanks Benjamin - rename vips wrapper script, it was still vips-8.2, thanks Benjamin
- export C++ operator overloads for MSVC linking [Lovell] - export C++ operator overloads for MSVC linking [Lovell]

View File

@ -2,7 +2,7 @@
# also update the version number in the m4 macros below # also update the version number in the m4 macros below
AC_INIT([vips], [8.3.1], [vipsip@jiscmail.ac.uk]) AC_INIT([vips], [8.3.2], [vipsip@jiscmail.ac.uk])
# required for gobject-introspection # required for gobject-introspection
AC_PREREQ(2.62) AC_PREREQ(2.62)
@ -18,7 +18,7 @@ AC_CONFIG_MACRO_DIR([m4])
# user-visible library versioning # user-visible library versioning
m4_define([vips_major_version], [8]) m4_define([vips_major_version], [8])
m4_define([vips_minor_version], [3]) m4_define([vips_minor_version], [3])
m4_define([vips_micro_version], [1]) m4_define([vips_micro_version], [2])
m4_define([vips_version], m4_define([vips_version],
[vips_major_version.vips_minor_version.vips_micro_version]) [vips_major_version.vips_minor_version.vips_micro_version])
@ -38,7 +38,7 @@ VIPS_VERSION_STRING=$VIPS_VERSION-`date`
# binary interface changes not backwards compatible?: reset age to 0 # binary interface changes not backwards compatible?: reset age to 0
LIBRARY_CURRENT=46 LIBRARY_CURRENT=46
LIBRARY_REVISION=1 LIBRARY_REVISION=2
LIBRARY_AGE=4 LIBRARY_AGE=4
# patched into include/vips/version.h # patched into include/vips/version.h

View File

@ -196,8 +196,7 @@ const guint64 vips__image_sizeof_bandformat[] = {
guint64 guint64
vips_format_sizeof( VipsBandFormat format ) vips_format_sizeof( VipsBandFormat format )
{ {
g_assert( format >= 0 && format = VIPS_CLIP( 0, format, VIPS_FORMAT_DPCOMPLEX );
format < VIPS_FORMAT_LAST );
return( vips__image_sizeof_bandformat[format] ); return( vips__image_sizeof_bandformat[format] );
} }

View File

@ -2786,7 +2786,8 @@ vips_image_ispartial( VipsImage *image )
int int
vips_image_write_prepare( VipsImage *image ) vips_image_write_prepare( VipsImage *image )
{ {
g_assert( vips_object_sanity( VIPS_OBJECT( image ) ) ); if( !vips_object_sanity( VIPS_OBJECT( image ) ) )
return( -1 );
if( image->Xsize <= 0 || if( image->Xsize <= 0 ||
image->Ysize <= 0 || image->Ysize <= 0 ||
@ -3046,7 +3047,8 @@ vips_image_wio_input( VipsImage *image )
{ {
VipsImage *t1; VipsImage *t1;
g_assert( vips_object_sanity( VIPS_OBJECT( image ) ) ); if( !vips_object_sanity( VIPS_OBJECT( image ) ) )
return( -1 );
#ifdef DEBUG_IO #ifdef DEBUG_IO
printf( "vips_image_wio_input: wio input for %s\n", printf( "vips_image_wio_input: wio input for %s\n",
@ -3269,8 +3271,9 @@ vips_image_inplace( VipsImage *image )
*/ */
int int
vips_image_pio_input( VipsImage *image ) vips_image_pio_input( VipsImage *image )
{ {
g_assert( vips_object_sanity( VIPS_OBJECT( image ) ) ); if( !vips_object_sanity( VIPS_OBJECT( image ) ) )
return( -1 );
#ifdef DEBUG_IO #ifdef DEBUG_IO
printf( "vips_image_pio_input: enabling partial input for %s\n", printf( "vips_image_pio_input: enabling partial input for %s\n",

View File

@ -692,7 +692,7 @@ vips_threadpool_new( VipsImage *im )
VipsThreadpool *pool; VipsThreadpool *pool;
int tile_width; int tile_width;
int tile_height; int tile_height;
int n_tiles; gint64 n_tiles;
int n_lines; int n_lines;
/* Allocate and init new thread block. /* Allocate and init new thread block.
@ -716,7 +716,9 @@ vips_threadpool_new( VipsImage *im )
* the number of threads we create. * the number of threads we create.
*/ */
vips_get_tile_size( im, &tile_width, &tile_height, &n_lines ); vips_get_tile_size( im, &tile_width, &tile_height, &n_lines );
n_tiles = (1 + im->Xsize / tile_width) * (1 + im->Ysize / tile_height); n_tiles = (1 + (gint64) im->Xsize / tile_width) *
(1 + (gint64) im->Ysize / tile_height);
n_tiles = VIPS_CLIP( 0, n_tiles, MAX_THREADS );
pool->nthr = VIPS_MIN( pool->nthr, n_tiles ); pool->nthr = VIPS_MIN( pool->nthr, n_tiles );
/* Attach tidy-up callback. /* Attach tidy-up callback.