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
bc12d9e9ac
Fix Savannah bug #43153 .
...
* src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against
overflow in `divider'.
2014-09-08 21:27:43 -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
Alexei Podtelezhnikov
125c3ca8f0
[truetype] Shortcut ppem calculations for square pixels.
...
* src/truetype/ttinterp.h (TT_ExecContextRec): New field
`cur_ppem_func' with a function pointer.
* src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func'
depending on the pixel geometry to either...
(Current_Ppem_Stretched): ... this for stretched pixels.
(Current_Ppem): ... or this for square pixels.
(DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'.
2014-09-02 22:38:59 -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
Alexei Podtelezhnikov
a8bc49e141
[truetype] Optimize DELTAP and DELTAC.
...
* src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
calculations outside of the loop.
2014-08-24 22:14:01 -04:00
Alexei Podtelezhnikov
5bb5750f98
Minor.
2014-08-21 23:44:44 -04:00
Alexei Podtelezhnikov
986885965a
Fix Savannah bug #43033 .
...
* include/config/ftconfig.h, builds/unix/ftconfig.in,
builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
64-bit type is `long'.
2014-08-21 23:28:52 -04: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
87e56b043a
Fix comment and whitespace.
2014-08-14 22:41:06 -04:00
Alexei Podtelezhnikov
f8efbcfb8e
[base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
...
* src/base/ftbbox.c (BBox_Cubic_Check): Update.
(update_cubic_max): Repalce with...
(cubic_peak): ... this, which now handles upscaling.
2014-08-12 23:22:17 -04:00
Alexei Podtelezhnikov
d2935e2969
* src/base/fttrigon.c (ft_trig_prenorm): Comment on undefined behavior.
2014-08-12 00:41:04 -04:00
Alexei Podtelezhnikov
28018d42a8
[base] Handle collapsed outlines to avoid undefined FT_MSB.
...
* src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
2014-08-12 00:26:16 -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
Alexei Podtelezhnikov
90be4b6377
* src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor.
2014-08-08 22:27:10 -04:00
Werner Lemberg
e1394d5675
Minor documentation improvement.
2014-08-04 07:35:13 +02:00
Werner Lemberg
d17cabf57d
[cff] Fix typo.
...
* src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct
offsets in third quadrant.
Reported by maks <maksqwe1@ukr.net>.
2014-07-26 09:53:50 +09:00
Werner Lemberg
4e75413334
Fix Savannah bug #42788 .
...
* src/pfr/pfrobjs.c: Include `ftcalc.h'.
2014-07-17 17:34:49 +09:00
Werner Lemberg
cbbf26b705
Whitespace.
2014-07-17 17:27:12 +09:00
Werner Lemberg
3939c200f3
Minor.
2014-07-17 17:24:22 +09:00
Alexei Podtelezhnikov
c0a6f20a4b
Replace `ft_highpow2' function.
...
* src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of
`ft_highpow2'.
* src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove
it.
2014-07-16 22:05:56 -04: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
1183cd4e17
[base] Further clean up color bitmap conversion.
...
* src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop
using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
2014-07-14 22:30:55 -04:00
Werner Lemberg
441b3f3898
[truetype] Improve handling of buggy `prep' tables.
...
In case of an error in the `prep' table, no longer try to execute it
again and again. This makes FreeType handle endless loops in buggy
fonts much faster.
* src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready'
and `cvt_ready' are now negative if not initialized yet, otherwise
they indicate the error code of the last run.
* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
tt_size_done_bytecode, tt_size_init_bytecode,
tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset):
Updated.
* src/truetype/ttgload.c (tt_loader_init): Updated.
* src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm'
and `prep' only if we are in the `glyf' table.
2014-07-13 02:28:14 +09:00
Werner Lemberg
e98e2bc1aa
* builds/vms/ftconfig.h: Synchronize.
...
Problem reported by Alexei.
2014-07-12 16:37:39 +09:00
Alexei Podtelezhnikov
35576bf067
[base] Clean up bitmap conversion.
...
* src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
appropriate FT_DivFix and remove superfluous upscaling.
2014-07-11 22:40:34 -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
3897556a13
Fix Apple standard glyph names.
...
* src/sfnt/ttpost.c (tt_post_default_names): Synchronize with
`tools/glnames.py'
Problem reported by Adam Twardoch <adam@fontlab.com>.
2014-06-27 06:55:56 +02:00
Werner Lemberg
ccf60ad445
Formatting.
2014-06-25 08:58:14 +02:00
Werner Lemberg
231171fc3a
Partially revert commit from 2014-06-13.
...
* src/autofit/aflatin.c (af_latin_metrics_init_blues): Move
declaration of `p_first' and `p_last' out of the loop.
2014-06-17 09:14:32 +02:00
Werner Lemberg
cf2347c962
* builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/.
...
This simplifies cross-compiling.
2014-06-17 09:01:04 +02:00
Werner Lemberg
d708658c4a
And another warning from Wojciech.
2014-06-13 15:56:11 +02:00
Werner Lemberg
e5c0fff5af
Fix more compiler warnings.
...
Reported by Wojciech Mamrak <wmamrak@gmail.com>.
* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
Make integer constant unsigned.
* src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
<TT_SBIT_TABLE_TYPE_SBIX>: Fix types.
(tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper
casts.
2014-06-13 14:01:20 +02:00
Werner Lemberg
6497b9c5a5
Fix compiler warnings.
...
Reported by Wojciech Mamrak <wmamrak@gmail.com>.
* src/autofit/afglobal.c (af_face_globals_compute_style_coverage),
src/autofit/afmodule.c (af_property_set): Fix `signed' vs.
`unsigned' issues.
* src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler
happy.
* src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements
for `fir'.
Fix `signed' vs. `unsigned' issues.
* src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused.
(WRITE_USHORT, WRITE_ULONG): Add proper casts.
* src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts.
* src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1'
and `B2'.
2014-06-13 09:28:00 +02:00
Werner Lemberg
099489feff
Update CHANGES file.
2014-06-10 06:51:52 +02:00
Alexey Petruchik
02f2170432
[cmake] Add option to build OS X framework.
...
* CMakeLists.txt: Update accordingly.
* builds/mac/freetype-Info.plist: New file.
2014-05-16 08:09:43 +02:00
Werner Lemberg
d7f4594317
[autofit] Fix comment.
2014-05-13 15:33:11 +02:00
Pavel Koshevoy
15da66a630
* CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'.
2014-05-13 07:33:48 +02:00
Werner Lemberg
faa21472b7
[autofit] Fix variable initializations.
...
* src/autofit/afhints.c (af_glyph_hints_reload): Assign default
values to `in_dir' and `out_dir' for all points.
2014-05-11 12:44:00 +02:00
Werner Lemberg
07e7b8affe
[autofit] Fix crash with font `CabinSketch-Bold.ttf'.
...
Problem reported by Ralf S. Engelschall <rse@engelschall.com>.
* src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for
finding first non-near point.
Properly initialize non-near point deltas.
2014-05-11 08:00:25 +02:00
Werner Lemberg
5f18a0c35d
Formatting.
2014-05-01 17:26:52 +02:00