Merge branch '7.40'

Conflicts:
	ChangeLog
	configure.ac
This commit is contained in:
John Cupitt 2014-09-08 19:49:09 +01:00
commit b746984318
8 changed files with 30 additions and 9 deletions

View File

@ -5,6 +5,9 @@
- return of vips_init(), but just for bindings
- revised type.c to make it more binding-friendly
8/9/14 started 7.40.8
- fix configure on rhel6 [Lovell]
21/8/14 started 7.40.7
- width and height were swapped in matlab load
- set interpretation more carefully on matlab load
@ -12,6 +15,8 @@
- fix memleak in VipsArray [Lovell]
- fix memleak in webp load from buffer [Lovell]
- fix memleak in png save to buffer [Lovell]
- make out of order read in png and jpg a fatal error
- add thread_shutdown() to C++ (and thereby to python)
12/8/14 started 7.40.6
- more doc fixes

View File

@ -37,9 +37,9 @@ VIPS_VERSION_STRING=$VIPS_VERSION-`date`
# binary interface changes backwards compatible?: increment age
# binary interface changes not backwards compatible?: reset age to 0
LIBRARY_CURRENT=38
LIBRARY_REVISION=5
LIBRARY_AGE=0
LIBRARY_CURRENT=39
LIBRARY_REVISION=0
LIBRARY_AGE=1
# patched into include/vips/version.h
AC_SUBST(VIPS_VERSION)
@ -411,7 +411,7 @@ PACKAGES_USED="$PACKAGES_USED glib-2.0 libxml-2.0 gmodule-2.0 gobject-2.0"
# after 2.28 we have a monotonic timer
PKG_CHECK_MODULES(MONOTONIC, glib-2.0 >= 2.28,[
AC_DEFINE(HAVE_MONOTONIC_TIME,1,[define if your glib has g_get_monotonic_time().])
],[
],[:
]
)
@ -432,7 +432,7 @@ PKG_CHECK_MODULES(THREADS, glib-2.0 >= 2.32,[
# with 2.36 and after the type system inits itself
PKG_CHECK_MODULES(TYPE_INIT, glib-2.0 < 2.36,[
AC_DEFINE(NEED_TYPE_INIT,1,[define if your glib needs g_type_init().])
],[
],[:
]
)

View File

@ -71,7 +71,7 @@
#include "pconversion.h"
/* Stall threads that run ahead for up to this long, in seconds. Normally they
* will be woken up long before this, once their data is ready. The timeout is
* will be woken once their data is ready and long before this. The timeout is
* just to prevent a total crash in the case of accidental deadlock.
*
* This has to be a long time: if we're trying to use all cores on a busy

View File

@ -916,7 +916,11 @@ read_jpeg_generate( VipsRegion *or,
/* And check that y_pos is correct. It should be, since we are inside
* a vips_sequential().
*/
g_assert( r->top == jpeg->y_pos );
if( r->top != jpeg->y_pos ) {
vips_error( "VipsJpeg",
_( "out of order read at line %d" ), jpeg->y_pos );
return( -1 );
}
/* Here for longjmp() from vips__new_error_exit().
*/

View File

@ -483,7 +483,11 @@ png2vips_generate( VipsRegion *or,
/* And check that y_pos is correct. It should be, since we are inside
* a vips_sequential().
*/
g_assert( r->top == read->y_pos );
if( r->top != read->y_pos ) {
vips_error( "vipspng",
_( "out of order read at line %d" ), read->y_pos );
return( -1 );
}
for( y = 0; y < r->height; y++ ) {
png_bytep q = (png_bytep) VIPS_REGION_ADDR( or, 0, r->top + y );

View File

@ -64,6 +64,11 @@ void shutdown()
vips_shutdown();
}
void thread_shutdown()
{
vips_thread_shutdown();
}
void VImage::refblock::debug_print()
{
std::list<refblock *>::iterator i;

View File

@ -63,6 +63,7 @@ VIPS_NAMESPACE_START
/* vips_init() and vips_shutdown as namespaced C++ functions.
*/
bool init( const char *argv0 = "nothing" );
void thread_shutdown( void );
void shutdown( void );
/* A VIPS callback, our name for im_callback_fn.
@ -451,6 +452,8 @@ VIPS_NAMESPACE_END
// Other VIPS protos we need
extern "C" {
extern int im_init_world( const char *argv0 );
extern int im_init_world( const char *argv0 );
extern void vips_thread_shutdown( void );
extern void im__print_all();
extern void im_col_Lab2XYZ(
float, float, float,

View File

@ -490,7 +490,7 @@ thumbnail_shrink( VipsObject *process, VipsImage *in,
if( vips_tilecache( in, &t[4],
"tile_width", in->Xsize,
"tile_height", 10,
"max_tiles", (nlines * 2) / 10,
"max_tiles", 1 + (nlines * 2) / 10,
"access", VIPS_ACCESS_SEQUENTIAL,
"threaded", TRUE,
NULL ) )