kc3-lang/freetype/src/base/ftcalc.c

Branch :


Log

Author Commit Date CI Message
fc01e7dd 2023-03-05 22:05:24 Fix a couple of MSVC warnings. * src/base/ftcalc.c (FT_MulAddFix): Add cast. * src/sfnt/ttcolr.c (tt_face_get_colorline_stops, read_paint): Ditto.
65f85237 2023-01-17 09:18:25 Update all copyright notices.
bec4ef41 2022-07-01 12:04:28 [base] Round values in `FT_MulAdd_Fix`. This avoids regressing Blink layout tests and makes `FT_MulAdd_Fix` delta retrieval implementation consistent with the previous implementation, which used `FT_fixedToInt` and included rounding. * src/base/ftcalc.c (FT_MulAdd_Fix): Implement it. Also fix remaining `temp` initialization compilation issue. Fixes #1169.
0607e0e9 2022-06-30 10:55:50 Fix initialisation of temp variable in new FT_MulAddFix src/truetype/ttgxvar.c (FT_MulAddFix): Initialise `temp`.
15fef219 2022-06-29 11:48:10 New function `FT_MulAddFix` to compute the sum of fixed-point products. This function, based on the code of `FT_MulFix`, uses 64-bit precision internally for intermediate computations. * include/freetype/internal/ftcalc.h, base/ftcalc.c (FT_MulAddFix): Implement it.
d0cfb4e1 2022-01-11 10:54:10 Update all copyright notices.
85703839 2021-08-18 23:05:51 Use FT_INT64 instead of FT_LONG64. * include/freetype/config/integer-types.h: Remove synonymous FT_LONG64. * include/freetype/internal/ftcalc.h: s/FT_LONG64/FT_INT64/. * src/base/ftcalc.c: Ditto. * src/base/fttrigon.c: Ditto. * src/smooth/ftgrays.c: Ditto.
08f66322 2021-06-08 18:23:16 More various documentation improvements and fixes.
b6e8a712 2021-01-17 07:18:48 Update all copyright notices.
16586859 2020-06-13 21:15:45 Remove redundant inclusion of `ft2build.h'. * */*: Remove `#include <ft2build.h>' where possible. * include/freetype/freetype.h: Remove cpp error about missing inclusion of `ft2build.h'.
e1339133 2020-06-08 13:31:55 Make macros for header file names optional. We no longer have to take care of the 8.3 file name limit; this allows us (a) to introduce longer, meaningful file names, and (b) to avoid macro names in `#include' lines altogether since some compilers (most notably Visual C++) doesn't support this properly. */*: Replace #include FOO_H with #include <freetype/foo.h> or something similar. Also update the documentation.
e5038be7 2020-01-19 17:05:19 Update all copyright notices.
75859970 2019-02-23 10:07:09 Update all copyright notices.
f686ad46 2019-01-22 20:31:44 Update copyright years.
77f0814a 2018-08-23 17:53:54 Add macros for handling over-/underflowing `FT_Int64' values. * include/freetype/internal/ftcalc.h (ADD_INT64, SUB_INT64, MUL_INT64, DIV_INT64) [FT_LONG64]: New macros. * src/base/ftcalc.c (ft_corner_orientation) [FT_LONG64]: Use `SUB_INT64' and `MUL_INT64'. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10028
a0dd16fb 2018-08-15 18:13:17 Don't use `trace_' prefix for FT_COMPONENT arguments. * include/freetype/internal/ftdebug.h (FT_TRACE_COMP, FT_TRACE_COMP_): New auxiliary macros to add `trace_' prefix. (FT_TRACE): Use `FT_TRACE_COMP'. */* (FT_COMPONENT): Updated.
5b904409 2018-08-11 06:41:35 * src/base/ftcalc.c (FT_Matrix_Check): Fix integer overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9811
cc333390 2018-06-24 06:22:48 New base function `FT_Matrix_Check' (#54019). * src/base/ftcalc.c (FT_Matrix_Check): New base function to properly reject degenerate font matrices. * include/freetype/internal/ftcalc.h: Updated. * src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c (cid_parse_font_matrix), src/type1/t1load.c (t1_parse_font_matrix), src/type42/t42parse.c (t42_parse_font_matrix): Use `FT_Matrix_Check'.
9ac9060d 2018-06-03 09:01:17 [GSoC] src/*.*: Convert block comments to `light' style. This monster commit was created by applying Nikhil's scripts `docconverter.py' and `markify.py' to all C header and source files, followed up by minor manual clean-up. No change in functionality, of course. I used commit f7419907bc6044b9b7057f9789866426c804ba82 from https://github.com/nikramakrishnan/freetype-docs.git.
0a0c2256 2018-01-02 09:33:57 Update copyright year.
39ce3ac4 2017-09-16 19:08:17 * Version 2.8.1 released. ========================= Tag sources with `VER-2-8-1'. * docs/VERSION.TXT: Add entry for version 2.8.1. * docs/CHANGES: Updated. * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, builds/windows/vc2005/index.html, builds/windows/vc2008/freetype.vcproj, builds/windows/vc2008/index.html, builds/windows/vc2010/freetype.vcxproj, builds/windows/vc2010/index.html, builds/windows/visualc/freetype.dsp, builds/windows/visualc/freetype.vcproj, builds/windows/visualc/index.html, builds/windows/visualce/freetype.dsp, builds/windows/visualce/freetype.vcproj, builds/windows/visualce/index.html, builds/wince/vc2005-ce/freetype.vcproj, builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/freetype.vcproj, builds/wince/vc2008-ce/index.html: s/2.8/2.8.1/, s/28/281/. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. * builds/unix/configure.raw (version_info): Set to 21:0:15. * CMakeLists.txt (VERSION_PATCH): Set to 1.
7819aeb6 2017-06-28 22:57:41 Avoid Microsoft compiler warnings (#51331). While clang's sanitizer recommends a cast to unsigned for safe negation (to handle -INT_MIN), both MSVC and Visualc emit warning C4146 if an unsigned value gets negated. * include/freetype/internal/ftcalc.h (NEG_LONG, NEG_INT32), src/base/ftcalc.c (FT_MOVE_SIGN): Replace negation with a subtraction.
dde8f5ab 2017-06-27 06:16:04 [truetype] Integer overflows. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2384 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2391 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_DivFix): Use NEG_LONG. * src/truetype/ttinterp.c (Ins_SxVTL): Use NEG_LONG.
2c4fba9c 2017-06-10 11:03:41 * src/base/ftcalc.c (FT_DivFix): Fix embarrassing typo. Bug introduced 2017-05-28.
dcd8de27 2017-06-09 11:21:58 */*: Remove `OVERFLOW_' prefix. This increases readability.
fbe2fe4c 2017-05-29 13:29:28 Handle some integer overflow run-time errors (#46149, #48979). This commit (mainly for 32bit CPUs) is the first of a series of similar commits to handle known integer overflows. Basically, all of them are harmless, since they affect rendering of glyphs only, not posing security threats. It is expected that fuzzying will show up more overflows, to be fixed in due course. The idea is to mark places where overflows can occur, using macros that simply cast to unsigned integers, because overflow arithmetic is well defined in this case. Doing so suppresses run-time errors of sanitizers without adding computational overhead. * include/freetype/internal/ftcalc.h (OVERFLOW_ADD_INT, OVERFLOW_SUB_INT, OVERFLOW_MUL_INT, OVERFLOW_ADD_LONG, OVERFLOW_SUB_LONG, OVERFLOW_MUL_LONG): New macros. * src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_Matrix_Multiply, FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled, ft_corner_orientation): Use new macros. * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use new macros.
93572190 2017-05-28 07:20:09 Fix negation of INT_MIN and LONG_MIN (#46149). * src/base/ftcalc.c (FT_MOVE_SIGN): Add argument to pass unsigned value, to be used as the result. (FT_MulDiv, FT_MulDiv_No_Round, FT_DivFix, FT_MulFix, FT_Vector_NormLen): Updated.
563ae780 2017-01-04 20:16:34 Update copyright year.
37c72f66 2016-12-25 22:55:25 Minor formatting.
fc11af1e 2016-01-19 19:15:54 Various minor clang fixes. * src/autofit/afcjk.c (af_cjk_metrics_init_widths), src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize `ch'. * src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Add cast. * src/base/ftdbgmem.c (ft_mem_table_destroy): Add cast. * src/base/fthash.c (hash_num_lookup): Add cast. * src/base/fttrigon.c (ft_trig_downscale) [FT_LONG64]: Fix cast. * src/gxvalid/gxvcommn.c (gxv_EntryTable_validate): Comment out redundant code. * src/type1/t1driver.c (t1_get_ps_font_value) <PS_DICT_SUBR>: Add cast. * src/type1/t1load.c (parse_subrs): Fix type of `count'.
9adeab64 2016-01-13 11:54:10 Update copyright year.
3ea0d2c6 2015-09-13 23:19:34 * src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Improve.
09948e42 2015-09-09 21:30:15 * src/base/ftcalc.c (FT_RoundFix): Improve.
822acb02 2015-09-09 07:59:10 * src/base/ftcalc.c (FT_CeilFix, FT_FloorFix): Normalize. This commit makes the functions behave as expected, this is, rounding towards plus or minus infinity.
00d89950 2015-08-16 22:57:34 [base] Reoptimize aritmetic. * src/base/ftcalc.c (FT_MulDiv, FT_MulFix) [!FT_LONG64]: Remove special cases that slow down the general use.
7e6c321a 2015-08-03 23:26:13 [base] Fix `ft_corner_orientation'. Remove casting from `FT_Long' to `FT_Int' that might change the sign of the return value and make it faster too. * src/base/ftcalc.c (ft_corner_orientation): On 32-bit systems, stay with 32-bit arithmetic when safe. Use plain math on 64-bit systems. * src/pshinter/pshalgo.c: Remove old unused code.
2b07a5ae 2015-07-28 23:14:30 * src/base/ftcalc.c (FT_Vector_NormLen): Clarify.
a50a0458 2015-07-28 07:37:19 Minor.
e8b186ee 2015-07-27 23:22:34 * src/base/ftcalc.c (FT_Vector_NormLen): Explicate type conversions.
884e4e67 2015-06-29 22:32:05 [base] Implement fast vector normalization. The function uses Newton's iterations instead of dividing vector components by its length, which needs a square root. This is, literally, a bit less accurate but a lot faster. * src/base/ftcalc.c (FT_Vector_NormLen): New function.
d3240c56 2015-02-17 20:30:36 [base] Fix Savannah bug #44284. * src/base/ftcalc.c (FT_MulFix): Typos.
6d7d636b 2015-02-15 12:30:42 [base] Clean up signedness in arithmetic functions. This makes the code more readable and reduces compiler warnings. * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_MulFix, FT_DivFix): Convert input parameters to unsigned, do the computation, then convert the result back to signed. (ft_corner_orientation): Fix casts.
f57fc59e 2015-01-17 20:41:43 Run `src/tools/update-copyright'.
70241553 2014-12-24 12:11:46 [base] Formatting and nanooptimizations. * src/base/ftcalc.c, * src/base/fttrigon.c: Revise sign restoration.
9870d6da 2014-12-07 09:40:47 */*: Decorate hex constants with `U' and `L' where appropriate.
237c0abf 2014-11-19 22:10:29 Trailing space.
d8632a84 2014-10-25 06:28:18 Improve comments, remove dead code.
aba0f498 2014-10-24 23:50:57 Improve flat corner definition. * include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean distance with the alpha max plus beta min algorithm. * src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab metric.
7abdb8cc 2014-10-02 23:13:33 [base] Significant optimization of `ft_div64by32' We shift as many bits as we can into the high register, perform 32-bit division with modulo there, then work through the remaining bits with long division. This optimization is especially noticeable for smaller dividends that barely use the high register. * src/base/ftcalc.c (ft_div64by32): Updated.
c0ce72a6 2014-10-02 06:44:43 Formatting.
74d0aad2 2014-10-01 23:27:15 * src/base/ftcalc.c: Remove miscellaneous type casts.
418e18f3 2014-10-01 22:36:40 [base] Use more common `FT_MSB' implementation with masks. * src/base/ftcalc.c (FT_MSB): Updated.
955aff12 2014-09-30 23:09:39 [base] Clean up. * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used code.
f78ca0db 2014-09-30 22:53:38 Remove commented out code.
7f49111f 2014-09-25 22:54:38 [base] Avoid unnecessary long division. This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or lack thereof are predicted accurately. * src/base/ftcalc.c (ft_div64by32): Improve readability. (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division when multiplication stayed within 32 bits.
5c894842 2014-09-19 22:03:15 * src/base/ftcalc.c: Harmonize code.
ef070d45 2014-09-15 22:06:19 [base] Tighten the overflow check in `FT_MulDiv'. * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
336735d8 2014-09-03 22:55:26 [base] Tighten the overflow check in `FT_DivFix'. This fixes a 13-year old bug. The original overflow check should have been updated when rounding was introduced into this function (c2cd00443b). * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated. * include/freetype.h (FT_DivFix): Updated documentation.
3212852c 2014-09-03 21:57:42 [base] Tighten the overflow check in `FT_MulFix'. * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
1ec98b29 2014-08-31 08:47:11 Don't use `register' keyword. Fixes compiler warnings. * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it. * src/gzip/inftrees.c (huft_build): Ditto. * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto.
70961e57 2014-08-20 16:19:32 Minor.
8fd87d4e 2014-08-20 00:57:22 [base] Small optimization of `FT_MulFix'. * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct 32-bit calculations.
f09326a1 2014-08-20 00:08:38 [base] Use unsigned calculation in `FT_MulDiv'. * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
382f3155 2014-08-18 23:16:15 [base] Remove truncation in `FT_DivFix'. * src/base/ftcalc.c (FT_DivFix): Updated.
5ef2023c 2014-08-14 23:21:46 Minor refactoring. * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
c7022467 2014-08-14 23:01:01 Turn FT_MSB into a macro when using gcc builtins. * src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
4728993f 2014-08-11 23:39:34 [base] Restore FT_MulFix inlining. * include/freetype.h (FT_MulFix): Unconditionally defined. * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here... * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here, which conditionally replaces the function with an inline version through the macro.
cbbf26b7 2014-07-17 17:27:12 Whitespace.
177982e9 2014-07-15 23:54:34 * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
71330ceb 2014-07-15 23:30:45 [base] Move assembler code back in the source file. FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b. * include/config/ftconfig.h, builds/unix/ftconfig.in, builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here... * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
2f52df4a 2014-07-05 22:29:26 [base] Improve comment.
ceab95a6 2014-07-04 23:01:32 [base] Small optimization of the ancient code. * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the condition for direct 32-bit calculations.
d5159925 2014-03-22 06:20:54 Another revert for the change from 2014-03-18. Problem reported by Nikolaus Waxweiler <madigens@gmail.com>. * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol gets always exported.
87628724 2014-03-18 08:39:35 Fix clang warnings. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize some variables. * src/base/ftcalc.c (FT_MulFix): Only use code if `FT_MULFIX_INLINED' is not defined. * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c (ftc_basic_image_family_class, ftc_basic_image_cache_class, ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class), src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make function static. * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant code.
7be2a94a 2014-02-08 13:55:38 Fix clang static analyzer and compiler warnings. * src/autofit/afhints.c (af_glyph_hints_align_weak_points), src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>, src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style), src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load), src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next, tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead code. * src/autofit/afmodule.c (af_property_get_face_globals, af_property_set, af_property_get), src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Make functions static. * src/base/ftobjs.c (ft_remove_renderer): Protect against library == NULL. (ft_property_do): Make function static. * src/base/ftrfork.c: Include `ftbase.h'. * src/sfnt/ttsbit.c (tt_face_load_sbix_image) [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c (T1_Compute_Max_Advance): Avoid compiler warning. * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of variable.
bcd8c0b0 2013-08-27 21:36:03 Remove `FT_SqrtFixed' function. It's no longer used. * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it.
ba9cf52d 2013-08-05 07:00:59 Comment typo.
fb09a51f 2013-08-04 18:24:02 Add comments to `ft_corner_is_flat'.
b112fa41 2013-05-12 07:29:04 Fix Savannah bug #38967. * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast.
f6aa089f 2013-05-10 07:58:47 */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code.
d135e27c 2013-05-05 10:44:21 Fix 64bit compilation issues. * include/freetype/config/ftconfig.h [FT_LONG64]: Typedef `FT_Int64' here. * src/base/ftcalc.c: Remove typedef of `FT_Int64'. (FT_DivFix): Fix cast. * src/base/fttrigon.c: Remove typedef of `FT_Int64'.
94152819 2013-05-04 16:40:12 More fixes for clang's `sanitize' feature. * src/base/ftcalc.c (FT_DivFix): Use unsigned values for computations which use the left shift operator and convert to signed as the last step. * src/base/fttrigon.c (ft_trig_prenorm, FT_Vector_Rotate, FT_Vector_Length, FT_Vector_Polarize): Ditto. * src/cff/cffgload.c (cff_decoder_parse_charstrings): Simplify. * src/cff/cffload.c (cff_subfont_load): Fix constant. * src/cff/cffparse.c (cff_parse_integer, cff_parse_real, do_fixed, cff_parse_fixed_dynamic): Use unsigned values for computations which use the left shift operator and convert to signed as the last step. * src/cid/cidload.c (cid_get_offset): Ditto. * src/psaux/psconv.c (PS_Conv_ToFixed): Ditto. * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto. * src/truetype/ttinterp.c (TT_MulFix14, TT_DotFix14): Ditto.
059bc335 2013-03-14 10:27:35 */*: Use `FT_THROW'. This is essentially a mechanical conversion, adding inclusion of `FT_INTERNAL_DEBUG_H' where necessary, and providing the macros for stand-alone compiling modes of the rasterizer modules. To convert the remaining occurrences of FT_Err_XXX and friends it is necessary to rewrite the code. Note, however, that it doesn't harm if some cases are not handled since FT_THROW is a no-op.
30f1e6ca 2013-02-01 14:50:08 Fix Savannah bug #38221. This complements commit 83c0ebab. * src/base/ftcalc.c (FT_MulDiv_No_Round): Don't enclose with `TT_USE_BYTECODE_INTERPRETER'.
e9f330ad 2013-01-24 09:12:56 [base] Make `FT_Hypot' really internal. * include/freetype/fttrigon.h (FT_Hypot): Move to... * include/freetype/internal/ftcalc.h: This file. * src/base/fttrigon.c (FT_Hypot): Move to... * src/base/ftcalc.c: This file. Include FT_TRIGONOMETRY_H. * src/truetype/ttgload.c: Don't include FT_TRIGONOMETRY_H.
869fb8c4 2013-01-23 19:43:28 [base] Split out MSB function. * src/base/fttrigon.c (ft_trig_prenorm): Borrow from here. * include/freetype/internal/ftcalc.h (FT_MSB): Declare here. * src/base/ftcalc.c (FT_MSB): Define here.
ba67957d 2012-03-03 12:27:18 Fix Savannah bug #35660. For some divisions, we use casts to 32bit entities. Always guard against division by zero with these casts also. * src/base/ftcalc.c (ft_div64by32): Remove redundant cast. (FT_MulDiv, FT_MulDiv_No_Round): Add 32bit cast. (FT_DivFix): Add 32bit cast (this omission triggered the bug).
1749d8bc 2012-01-17 02:00:24 Remove trailing spaces.
e866cf3f 2009-08-01 00:32:06 Improve bitmap size or pixel variables for 16-bit systems.
0d226c31 2009-08-01 00:30:24 base: Prevent some overflows on LP64 systems.
b211651a 2008-09-12 16:27:48 * autogen.sh, builds/unix/configure.raw, include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor beautifying. * include/freetype/ftadvanc.h, include/freetype/ftgasp.h, include/freetype/ftlcdfil.h: Protect against FreeType 1. Some other minor fixes. * devel/ftoption.h: Synchronize with include/freetype/config/ftoption.h. Formatting, documentation improvements.
f47d263f 2008-09-02 02:21:58 * include/freetype/ftoption.h, include/freetype/ftconfig.h, builds/unix/ftconfig.in, include/freetype/freetype.h, src/base/ftcalc.c: Make FT_MulFix an inlined function. Also provide an assembler implementation for ARM architectures. this is done to speedup FreeType a little (on x86 3% when loading+hinting, 10% when rendering, ARM savings are more important though). Disable this by undefining FT_CONFIG_OPTION_INLINE_MULFIX in ftconfig.h
50997cd7 2008-07-16 21:03:40 * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error. * src/base/ftcalc.c (FT_MulFix): Fix portability issue. * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]: Fix compiler warning.
4e7d984d 2008-06-27 22:26:11 * src/ftlyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to... * src/ftcalc.c: Here. This fixes Savannah bug #23729.
ad83e05b 2008-06-15 11:06:12 * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly from clobbering. Patch from Savannah bug report #23556. * docs/CHANGES: Document it.
e6e6eade 2008-05-14 23:05:38 Finish fix of scaling bug of CID-keyed CFF subfonts. * include/freetype/internal/ftcalc.h, src/base/ftcalc.c (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New functions. * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to provide global hinting data for both the top-font and all subfonts (with proper scaling). * src/cff/cffobjs.c (cff_make_private_dict): New function, using code from `cff_size_init'. (cff_size_init, cff_size_done, cff_size_select, cff_size_request): Use CFF_Internal and handle subfonts. (cff_face_init): Handle top-dict and subfont matrices correctly; apply some heuristic in case of unlikely matrix concatenation results. This has been discussed with people from Adobe (thanks goes mainly to David Lemon) who confirm that the CFF specs are fuzzy and not correct. * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument. * src/cff/cffgload.c (cff_builder_init): Updated. (cff_decoder_prepare): Handle hints globals for subfonts. Update all callers. (cff_slot_load): Handling scaling of subfonts properly. * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function. (cff_parse_font_matrix): Use it. * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em' FT_ULong. * docs/CHANGES: Document it.
8271e5e4 2008-04-13 21:59:29 whitespace
b792017f 2007-06-11 05:37:35 experimental changes for the Latin auto-hinter. note that the new code is disabled by default.
913a3650 2006-11-19 09:19:17 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the test for a valid glyph index must be deferred to the font drivers. This patch fixes Savannah bug #18301. * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'. * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph), src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c (FNT_Load_Glyph): Check validity of `glyph_index'.
111b5aef 2006-11-03 09:40:12 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'. Formatting