Hi,

On Mon, 14 Aug 2006 08:27:28 -0700 (PDT)
Jens Claudius <[EMAIL PROTECTED]> wrote:
>on my system ftvalid crashes when I run it on SIL Charis (get it from
>http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=CharisSILfont&_sc=1).

>So it seems that we cannot encapsulate setjmp() within a function. Indeed, if
>I replace the function declaration of ft_validator_run() with a macro
>like this
>
>#define ft_validator_run( valid ) setjmp( (valid)->jump_buffer )
>
>the crash is gone.
>
>I would check in this change to CVS, but I_d like to know first why it
>wasn_t done this way before. Are there compatibility problems with
>systems that don_t have (working) setjmp/longjmp?

Thank you for finding the bug.

The original implementation of ft_validator_run was introduced
as a part of (PS-)CMap handler (before ftvalid), 2002-03-22
(raw setjmp() was used).

http://cvs.savannah.nongnu.org/viewcvs/freetype2/src/base/ftobjs.c?root=freetype&r1=1.125&r2=1.126

At present, ft_validator_run() is only used by otvalid/gxvalid.
Unfortunately, the platforms of ftvalid maintainers (Masatake
Yamato and me) are quite limited: Linux/i386 and a few Mac OS X,
thus the bug does not appear. Yet I'm not sure of the intention
of original author, give me a few weeks. If urgent fix is required,
I will write a patch for configure to check ft_validator_run()
works well and replace ft_setjmp() if does not work.

Regards,
mpsuzuki


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

Reply via email to