Werner Lemberg
563ae78022
Update copyright year.
2017-01-04 20:16:34 +01:00
Werner Lemberg
37c72f66a5
Minor formatting.
2016-12-25 22:55:25 +01:00
Werner Lemberg
fc11af1ea2
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'.
2016-01-19 19:15:54 +01:00
Werner Lemberg
9adeab6452
Update copyright year.
2016-01-13 11:54:10 +01:00
Alexei Podtelezhnikov
3ea0d2c65a
* src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Improve.
2015-09-13 23:19:34 -04:00
Alexei Podtelezhnikov
09948e426e
* src/base/ftcalc.c (FT_RoundFix): Improve.
2015-09-09 21:30:15 -04:00
Wojciech Mamrak
822acb0252
* 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.
2015-09-09 07:59:10 +02:00
Alexei Podtelezhnikov
00d899507c
[base] Reoptimize aritmetic.
...
* src/base/ftcalc.c (FT_MulDiv, FT_MulFix) [!FT_LONG64]: Remove
special cases that slow down the general use.
2015-08-16 22:57:34 -04:00
Alexei Podtelezhnikov
7e6c321a58
[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.
2015-08-03 23:26:13 -04:00
Alexei Podtelezhnikov
2b07a5ae3d
* src/base/ftcalc.c (FT_Vector_NormLen): Clarify.
2015-07-28 23:14:30 -04:00
Werner Lemberg
a50a045890
Minor.
2015-07-28 07:37:19 +02:00
Alexei Podtelezhnikov
e8b186eedb
* src/base/ftcalc.c (FT_Vector_NormLen): Explicate type conversions.
2015-07-27 23:22:34 -04:00
Alexei Podtelezhnikov
884e4e67ee
[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.
2015-06-29 22:32:05 -04:00
Werner Lemberg
d3240c56e5
[base] Fix Savannah bug #44284 .
...
* src/base/ftcalc.c (FT_MulFix): Typos.
2015-02-17 20:30:36 +01:00
Werner Lemberg
6d7d636b46
[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.
2015-02-15 12:30:42 +01:00
Werner Lemberg
f57fc59e01
Run `src/tools/update-copyright'.
2015-01-17 20:41:43 +01:00
Alexei Podtelezhnikov
7024155328
[base] Formatting and nanooptimizations.
...
* src/base/ftcalc.c,
* src/base/fttrigon.c: Revise sign restoration.
2014-12-24 12:11:46 -05:00
Werner Lemberg
9870d6dacf
*/*: Decorate hex constants with `U' and `L' where appropriate.
2014-12-07 09:40:47 +01:00
Alexei Podtelezhnikov
237c0abfdc
Trailing space.
2014-11-19 22:10:29 -05:00
Werner Lemberg
d8632a842e
Improve comments, remove dead code.
2014-10-25 06:28:18 +02:00
Alexei Podtelezhnikov
aba0f498c3
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.
2014-10-24 23:50:57 -04:00
Alexei Podtelezhnikov
7abdb8ccea
[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.
2014-10-02 23:13:33 -04:00
Werner Lemberg
c0ce72a6de
Formatting.
2014-10-02 06:44:43 +02:00
Alexei Podtelezhnikov
74d0aad22c
* src/base/ftcalc.c: Remove miscellaneous type casts.
2014-10-01 23:27:15 -04:00
Alexei Podtelezhnikov
418e18f3df
[base] Use more common `FT_MSB' implementation with masks.
...
* src/base/ftcalc.c (FT_MSB): Updated.
2014-10-01 22:36:40 -04:00
Alexei Podtelezhnikov
955aff12c0
[base] Clean up.
...
* src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used code.
2014-09-30 23:09:39 -04:00
Alexei Podtelezhnikov
f78ca0dbb9
Remove commented out code.
2014-09-30 22:53:38 -04:00
Alexei Podtelezhnikov
7f49111f81
[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.
2014-09-25 22:54:38 -04:00
Alexei Podtelezhnikov
5c894842d3
* src/base/ftcalc.c: Harmonize code.
2014-09-19 22:03:15 -04:00
Alexei Podtelezhnikov
ef070d458b
[base] Tighten the overflow check in `FT_MulDiv'.
...
* src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
2014-09-15 22:06:19 -04:00
Alexei Podtelezhnikov
336735d8de
[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.
2014-09-03 22:55:26 -04:00
Alexei Podtelezhnikov
3212852cce
[base] Tighten the overflow check in `FT_MulFix'.
...
* src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
2014-09-03 21:57:42 -04:00
Behdad Esfahbod
1ec98b29ec
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.
2014-08-31 08:47:11 +02:00
Werner Lemberg
70961e5772
Minor.
2014-08-20 16:19:32 +02:00
Alexei Podtelezhnikov
8fd87d4e69
[base] Small optimization of `FT_MulFix'.
...
* src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct
32-bit calculations.
2014-08-20 00:57:22 -04:00
Alexei Podtelezhnikov
f09326a1a6
[base] Use unsigned calculation in `FT_MulDiv'.
...
* src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
2014-08-20 00:08:38 -04:00
Alexei Podtelezhnikov
382f3155f6
[base] Remove truncation in `FT_DivFix'.
...
* src/base/ftcalc.c (FT_DivFix): Updated.
2014-08-18 23:16:15 -04:00
Alexei Podtelezhnikov
5ef2023c45
Minor refactoring.
...
* src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
2014-08-14 23:21:46 -04:00
Alexei Podtelezhnikov
c7022467d2
Turn FT_MSB into a macro when using gcc builtins.
...
* src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
2014-08-14 23:01:01 -04:00
Alexei Podtelezhnikov
4728993fa8
[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.
2014-08-11 23:39:34 -04:00
Werner Lemberg
cbbf26b705
Whitespace.
2014-07-17 17:27:12 +09:00
Alexei Podtelezhnikov
177982e933
* src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
2014-07-15 23:54:34 -04:00
Alexei Podtelezhnikov
71330ceb50
[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.
2014-07-15 23:30:45 -04:00
Alexei Podtelezhnikov
2f52df4a0d
[base] Improve comment.
2014-07-05 22:29:26 -04:00
Alexei Podtelezhnikov
ceab95a649
[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.
2014-07-04 23:01:32 -04:00
Werner Lemberg
d515992587
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.
2014-03-22 06:20:54 +01:00
Sean McBride
87628724a9
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.
2014-03-18 08:39:35 +01:00
Sean McBride
7be2a94a50
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.
2014-02-08 13:55:38 +01:00
Werner Lemberg
bcd8c0b0eb
Remove `FT_SqrtFixed' function.
...
It's no longer used.
* include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it.
2013-08-27 21:36:03 +02:00
Werner Lemberg
ba9cf52d3b
Comment typo.
2013-08-05 07:00:59 +02:00