lower I thresh for orc compile

fixes a segv with very large and complex morph masks
This commit is contained in:
John Cupitt 2012-03-13 13:11:06 +00:00
parent 15c5f330c4
commit b8d977544c
1 changed files with 6 additions and 2 deletions

View File

@ -270,9 +270,11 @@ vips_vector_full( VipsVector *vector )
if( vector->n_source + vector->n_scanline + 1 > 7 ) if( vector->n_source + vector->n_scanline + 1 > 7 )
return( TRUE ); return( TRUE );
/* I seem to get segvs with I counts over about 50 :-( argh. /* I seem to get segvs with I counts over about 50 :-( argh. After
* signalling full, some operations will add up to 4 more instructions
* as they finish up. Leave a margin.
*/ */
if( vector->n_instruction > 45 ) if( vector->n_instruction > 42 )
return( TRUE ); return( TRUE );
return( FALSE ); return( FALSE );
@ -284,6 +286,8 @@ vips_vector_compile( VipsVector *vector )
#ifdef HAVE_ORC #ifdef HAVE_ORC
OrcCompileResult result; OrcCompileResult result;
vips_vector_print( vector );
result = orc_program_compile( vector->program ); result = orc_program_compile( vector->program );
if( !ORC_COMPILE_RESULT_IS_SUCCESSFUL( result ) ) { if( !ORC_COMPILE_RESULT_IS_SUCCESSFUL( result ) ) {
#ifdef DEBUG #ifdef DEBUG