In Codewarrior jmp_buf is declared as:

typedef long *jmp_buf[70];

so the volatile FT_ValidatorRec makes the pointers volatile but this code in ftobjs.c fails:

volatile jmp_buf* jump_buffer = &valid->jump_buffer;

Error   : illegal implicit conversion from 'long *volatile  (*)[70]' to
'volatile long * (*)[70]'
ftobjs.c line 95 volatile jmp_buf* jump_buffer = &valid- >jump_buffer;

Note that jmp_buf volatile* is not the correct type either.

also:

Error   : illegal implicit conversion from 'long *volatile [70]' to
'long **'
ttcmap.c line 2296 if ( idator)( &valid ))- >jump_buffer) == 0 )

Before I submit a patch that explicitly casts:

< if ( ft_setjmp( FT_VALIDATOR( &valid )->jump_buffer ) == 0 )
---
> if ( ft_setjmp( *(ft_jmp_buf*) &FT_VALIDATOR( &valid )- >jump_buffer ) == 0 )

is there a better way to deal with this?



_______________________________________________
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel

Reply via email to