suzuki toshiya
18a8f0d994
Fix Savannah bug #43540 .
...
* src/base/ftmac.c (parse_fond): Prevent a buffer overrun
caused by a font including too many (> 63) strings to store
names[] table.
2014-11-26 17:56:30 +09:00
suzuki toshiya
453316792f
* src/base/ftobjs.c (Mac_Read_POST_Resource): Use unsigned long
...
variables to read the lengths in POST fragments. Suggested by
Mateusz Jurczyk <mjurczyk@google.com>.
2014-11-26 17:56:09 +09:00
suzuki toshiya
35252ae9aa
Fix Savannah bug #43539 .
...
* src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
by a broken POST table in resource-fork.
2014-11-26 17:55:55 +09:00
suzuki toshiya
240c94a185
Fix Savannah bug #43538 .
...
* src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
by a broken POST table in resource-fork.
2014-11-26 17:55:41 +09:00
suzuki toshiya
5aff85301b
* src/base/ftobjs.c (Mac_Read_POST_Resource): Avoid memory leak
...
by a broken POST table in resource-fork. Return after freeing
the buffered POST table when it is found to be broken.
2014-11-26 17:55:30 +09:00
Werner Lemberg
02b8e7e8d7
*/*: s/Invalid_Argument/Invalid_Size_Handle/ where appropriate.
2014-11-25 11:31:51 +01:00
Werner Lemberg
0d4aa23e7c
*/*: s/Invalid_Argument/Invalid_Stream_Handle/ where appropriate.
2014-11-25 11:26:14 +01:00
Werner Lemberg
f4f9e68800
*/*: s/Invalid_Argument/Invalid_Library_Handle/ where appropriate.
2014-11-25 11:11:55 +01:00
Werner Lemberg
04c2aa18bf
*/*: s/Invalid_Argument/Invalid_Outline/ where appropriate.
2014-11-25 10:22:12 +01:00
Werner Lemberg
04edbbda3c
*/*: s/Invalid_Argument/Invalid_Face_Handle/ where appropriate.
2014-11-25 10:21:13 +01:00
Werner Lemberg
6689a009ce
[Savannah bug #43682 ] Properly handle missing return errors.
...
The functions in this patch *do* return non-trivial errors that must
be taken care of.
* src/autofit/afloader.c (af_loader_load_g), src/base/ftobjs.c
(FT_Render_Glyph_Internal), src/base/ftoutln.c (FT_Outline_Render),
src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_endchar>,
src/psaux/psobjs.c (ps_parser_load_field_table), src/psaux/t1decode
(t1_decoder_parse_charstrings) <op_endchar>, src/truetype/ttgload.c
(load_truetype_glyph <subglyph loop>, tt_loader_init,
TT_Load_Glyph), src/truetype/ttgxvar.c (TT_Set_MM_Blend),
src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Do it.
2014-11-25 08:53:09 +01:00
Werner Lemberg
b24e8ba28a
[Savannah bug #43682 ] Add/remove `void' casts to some functions.
...
We use a cast to indicate that we intentionally ignore a function's
return value. However, this doesn't apply to API functions where
errors can only happen for trivially invalid input.
* src/base/ftstroke.c (FT_Glyph_Stroke, FT_Glyph_StrokeBorder),
src/base/ftsynth.c (FT_GlyphSlot_Embolden), src/cff/cffgload.c
(cff_slot_load), src/pfr/pfrdrivr.c (pfr_get_kerning),
src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
(t42_parse_encoding): Do it.
2014-11-25 08:30:49 +01:00
Werner Lemberg
6889f7b72d
Remove all code related to FT_MAX_CHARMAP_CACHEABLE.
...
This is no longer used.
* src/base/ftobjs.c, src/cache/ftccmap.c, src/cff/cffobjs.c,
src/sfnt/ttcmap.c: Do it.
2014-11-24 17:16:08 +01:00
Werner Lemberg
23c093fc38
Minor.
2014-11-21 08:41:39 +01:00
Werner Lemberg
9154dab815
[ftlcdfil] Obey flow direction.
...
* src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy):
Handle `up' flow.
2014-11-21 08:03:51 +01:00
Werner Lemberg
644d6fab7e
* src/base/ftbitmap.c (FT_Bitmap_Convert): Improve.
...
This commit completes argument checks and adds support for different
flow directions.
2014-11-21 07:28:50 +01:00
Werner Lemberg
6de761744c
* src/base/ftbitmap.c (FT_Bitmap_Copy): Improve.
...
This commit adds argument checks and support for different flow
directions.
2014-11-21 06:38:46 +01:00
Werner Lemberg
1e6e1b8390
* src/base/ftbitmap.c (FT_Bitmap_New): Check argument.
2014-11-21 06:38:46 +01:00
Werner Lemberg
b3500af717
Change some fields in `FT_Bitmap' to unsigned type.
...
This doesn't break ABI.
* include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays',
`pixel_mode', and `palette_mode' unsigned types.
* src/base/ftbitmap.c: Updated.
(FT_Bitmap_Copy): Fix casts.
* src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c:
Updated.
2014-11-21 06:38:46 +01:00
Werner Lemberg
df485774fb
Make FT_Bitmap_Convert' correctly handle negative pitch' values.
...
* src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value
for the pitch while copying data.
Correctly set pitch sign in target bitmap.
2014-11-21 06:38:46 +01:00
Werner Lemberg
d6061212c3
Minor code improvement in `FT_Bitmap_Embolden'.
...
* src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>:
Fix thinko.
2014-11-21 06:38:01 +01:00
Werner Lemberg
8d05486eab
Minor documentation improvements and whitespace.
2014-11-21 06:10:25 +01:00
Alexei Podtelezhnikov
237c0abfdc
Trailing space.
2014-11-19 22:10:29 -05:00
Alexei Podtelezhnikov
f841ad3ec2
* src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table.
2014-11-19 21:19:06 -05:00
Alexei Podtelezhnikov
2e73a1b4fd
[base] CORDIC improvements.
...
The scaling between the hypotenuse and its CORDIC approximation is
based on regression analysis. The smaller padding for `theta' is
justifed by its maximum error of less than 6.
* src/base/fttrigon.c (ft_trig_downscale): Borrow code from
./ftcalc.c (ft_multo64), change linear intercept.
(ft_trig_pseudo_polarize): Decrease `theta' padding.
2014-11-09 23:22:43 -05:00
Werner Lemberg
0e73d218bc
* src/base/ftstroke.c (ft_stroker_inside): Fix border intersections.
...
One more place to check whether `radius' is zero.
Problem reported by Marco Wertz <marco.wertz@gmx.de>.
2014-11-09 01:27:38 +01: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
673a28ef93
[base] Small bbox correction.
...
* src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox
instead of initial point that could be `off' in conic outlines.
2014-10-11 14:40:51 -04:00
Alexei Podtelezhnikov
40dac11360
[base] Fix Savannah bug #43356 .
...
* src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case
of implicit `to'.
(BBox_Line_To): New emitter that does not update bbox.
2014-10-09 00:58:14 -04:00
Alexei Podtelezhnikov
2ffcf17e15
[base] Introduce and use new macro `FT_UPDATE_BBOX'
...
* src/base/ftbbox.c (FT_UPDATE_BBOX): New macro.
(FT_Outline_Get_BBox): Use it here.
2014-10-08 22:01:08 -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
87e56b043a
Fix comment and whitespace.
2014-08-14 22:41:06 -04:00