Skip to content

Fix some FT_Fixed / FT_Long confusion

Ben Wagner requested to merge bungeman/freetype:fixed_long_fixes into master

FT_Fixed and FT_Long are both typedef'ed to be signed long. However, FT_Fixed implies that the lower 16 bits are being used to express fractional values and so these two types should not be confused.

  • include/freetype/internal/services/svmm.h (FT_Set_MM_Blend_Func): use FT_Fixed for coords. Users are passing FT_Fixed and implementations are taking FT_Fixed. (FT_Get_MM_Blend_Func): ditto

  • src/autofit/afcjk.c (af_cjk_metrics_check_digits): use FT_Long for advance and old_advance. advance's address is passed as FT_Long* to af_shaper_get_elem which writes the advance in em units (not fixed). The exact value is not important here as it is only compared to see if it has changed.

  • src/autofit/aflatin.c (af_latin_metrics_check_digits): ditto

Merge request reports