Tony,
> The reason for the failure is that the first check in the function
> cff_get_advance, shown below, always fails. At no point is there a check for
> FT_ADVANCE_FLAG_FAST_ONLY of the flag passed into the function.
>
> cff_get_advance( ... )
> {
> if ( !FT_IS_SFNT( face ) ) // <-----
> always fails, regardless of the flags
> return FT_THROW( Unimplemented_Feature );
> ...
> }
This error is ignored in base/ftadvanc.c and the identical slow fallback is
implemented there. It is true that cff_get_advance used to ignore
FT_ADVANCE_FLAG_FAST_ONLY, which was incorrect.
Alexei