Werner Lemberg
a2d225e322
[truetype] Protect against code range underflow.
...
* src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Don't allow
negative IP values.
2010-07-01 11:37:09 +02:00
Werner Lemberg
462ddb4072
[truetype] Add rudimentary tracing for bytecode instructions.
...
* src/truetype/ttinterp.c (opcode_name) [FT_DEBUG_LEVEL_TRACE]: New
array.
(TT_RunIns): Trace opcodes.
2010-07-01 11:28:43 +02:00
Werner Lemberg
370aea802c
Formatting.
2010-06-08 08:37:11 +02:00
Werner Lemberg
6da023d1ff
TrueType: Make FreeType ignore maxSizeOfInstructions in `maxp'.
...
Acroread does the same.
* src/truetype/ttgload.c (TT_Process_Composite_Glyph): Call
`Update_Max' to adjust size of instructions array if necessary and
add a rough safety check.
(load_truetype_glyph): Save `loader->byte_len' before recursive
call.
* src/truetype/ttinterp.h, src/truetype/ttinterp.c (Update_Max):
Declare it as FT_LOCAL.
2010-05-20 15:38:00 +02:00
suzuki toshiya
a115142057
truetype: Check invalid function number in IDEF instruction.
2009-08-01 00:32:18 +09:00
suzuki toshiya
d1c23082b6
truetype: Check invalid function number in FDEF instruction.
2009-08-01 00:32:17 +09:00
suzuki toshiya
6dc27526a9
truetype: Cast the numerical operands to 32-bit for LP64 systems.
2009-08-01 00:32:15 +09:00
suzuki toshiya
3b56c4d390
truetype: Cast the project vector to 32-bit for LP64 system.
2009-08-01 00:32:15 +09:00
Werner Lemberg
c6788a389d
Fix some potential out-of-memory crashes.
...
* src/base/ftobjs.c (ft_glyphslot_done): Check `slot->internal'.
* src/base/ftstream.c (FT_Stream_ReleaseFrame): Check `stream'.
* src/truetype/ttinterp.c (TT_New_Context): Avoid double-free of
`exec' in case of failure.
2009-06-07 13:09:21 +02:00
Werner Lemberg
1e5e7aa073
Fix SCANCTRL handling in TTFs.
...
Problem reported by Alexey Kryukov <anagnost@yandex.ru>.
* src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling.
2009-01-25 16:27:04 +00:00
Werner Lemberg
1a5d561dce
* src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c,
...
src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c,
src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c,
src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c,
src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings
(Atari PureC).
2008-11-29 22:50:24 +00:00
Werner Lemberg
105721a5a6
* src/truetype/ttinterp.c (tt_default_graphics_state): The default
...
value for `scan_type' is zero, as confirmed by Greg Hitchcock from
Microsoft. Problem reported by Michal Nowakowski
<miszka@limes.com.pl>.
2008-11-15 10:35:51 +00:00
Werner Lemberg
ce8853af81
* src/truetype/ttinterp. (Ins_SCANTYPE): Don't check rendering mode.
...
* src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
Draw_Sweep): No-dropout mode is value 2, not value 0.
(Draw_Sweep): Really skip dropout handling for no-dropout mode.
2008-06-24 11:19:03 +00:00
Werner Lemberg
5df5dbb722
Enable access to the various dropout rules of the B&W rasterizer.
...
Pass dropout rules from the TT bytecode interpreter to the
rasterizer; temporarily this is enabled only if
`USE_SCAN_CONVERSION_RULES' is defined.
* include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
FT_OUTLINE_EXCLUDE_STUBS): New flags for for FT_Outline.
* src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
OpenType specification.
Fix mode 4 computation.
(Render_Glyph, Render_Gray_Glyph): Handle new outline flags.
* src/truetype/ttgload.c (TT_Load_Glyph)
[USE_SCAN_CONVERSION_RULES]: Convert scan conversion mode to
FT_OUTLINE_XXX flags.
* src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
2008-06-22 13:40:08 +00:00
Werner Lemberg
7cb9ec0f1c
* src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
...
`private_len' unsigned.
* src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
it as such.
(T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
* src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
* src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
for sane value.
Fix typo.
* src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
* src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
`last_point'.
* src/sfnt/ttload.c (tt_face_load_max_profile): Limit
`maxTwilightPoints'.
2008-06-09 20:49:29 +00:00
Werner Lemberg
d77e72295e
* src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
...
correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
2008-06-05 22:07:19 +00:00
Werner Lemberg
2b0b4221ab
Cosmetic code changes.
2008-05-28 22:17:28 +00:00
Werner Lemberg
c94fa6699c
* src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
...
original, unscaled input values. Confirmed by Greg Hitchcock from
Microsoft.
2008-05-27 23:24:07 +00:00
Werner Lemberg
28464c48a1
* src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix
...
from Savannah bug #22356 .
2008-02-18 20:34:42 +00:00
David Turner
74cc0e9ee4
* src/truetype/ttinterp.c: add missing variable initialization,
...
gets rid of Valgrind fixes.
* src/autofit/aflatin.c: get rid of an infinite loop in the case
of degenerate fonts.
2007-06-30 22:54:12 +00:00
Werner Lemberg
e12ed563d6
* src/tools/ftrandom.c (font_size): New global variable.
...
(TestFace): Use it.
(main): Handle new option `--size' to set `font_size'.
(Usage): Updated.
Formatting.
2007-06-17 05:31:23 +00:00
David Turner
815911ae2a
* src/truetype/ttgload.c (TT_Load_Simple_Glyph): check the well-formedness
...
of the contours array when loading a glyph
* src/truetype/ttinterp.c (Ins_IP): check argument ranges to reject
bogus operations properly
2007-06-16 17:07:20 +00:00
Werner Lemberg
c793d90fca
* src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
...
unused.
2007-06-01 20:51:11 +00:00
Werner Lemberg
94be20ea82
* src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
...
(af_latin_metrics_scale_dim): Fix compiler warnings.
2007-05-09 20:02:55 +00:00
David Turner
3b242d3619
last (tiny) fix to the bytecode interpreter and code cleanup
2007-03-26 12:03:04 +00:00
Werner Lemberg
c9f6c66f95
formatting
2007-03-21 13:30:14 +00:00
David Turner
64a9ef20d5
another bytecode regression fix. Hopefully, this should be the latest
2007-03-18 07:35:08 +00:00
David Turner
74c34eba39
another bytecode interpreter regression fix
2007-03-18 07:19:31 +00:00
David Turner
89020d9749
fixing TrueType bytecode interpreter regression for HLB_____.TTF, needs more testing with other fonts
2007-03-17 17:48:57 +00:00
Werner Lemberg
a091517a04
* src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
...
* src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
2007-02-16 08:12:50 +00:00
Werner Lemberg
3cd6cc24f2
formatting
2007-02-16 08:10:17 +00:00
David Turner
2c4500e981
improving TrueType bytecode interpreter to better match Windows behaviour
...
on tricky cases... FIX_BYTECODE is now the default to allow large testing
2007-02-14 15:08:47 +00:00
Werner Lemberg
c6a14086d2
* src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
...
warnings.
* src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
(bdf_interpret_style): Ditto.
2007-02-12 22:08:15 +00:00
Werner Lemberg
406d25f379
more formatting and copyright years
2007-02-12 22:01:18 +00:00
David Turner
72a0dd247d
some simplifications of the TrueType interpreter projection code
...
(preliminaries to various interpreter fixes)
2007-02-12 15:24:51 +00:00
Werner Lemberg
6e87ed9f04
Spelling fixes from Alexei.
2007-01-26 22:18:56 +00:00
Werner Lemberg
555258fffe
* docs/CHANGES: Document SHZ fix.
...
* src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
points.
2007-01-21 09:46:37 +00:00
Werner Lemberg
b4142d5126
Whitespace and spelling fixes from Alexei.
...
Formatting, copyright years.
2007-01-17 12:45:26 +00:00
David Turner
2212272992
* src/autofit/aflatin.c, src/cff/cffdriver.c, src/truetype/ttobjs.c,
...
src/truetype/ttinterp.c: fixing compiler warnings
2007-01-16 20:06:44 +00:00
Werner Lemberg
8c4120d0a3
Fix various compiler warnings.
...
* src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
s/index/strike_index/.
* src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
* src/gxvalid/gxvmorx5.c
(gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
* src/truetype/ttinterp.c (Compute_Point_Displacement),
src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
uninitialized variables.
2007-01-15 06:42:40 +00:00
Werner Lemberg
27cf9de104
formatting, copyright years
2007-01-13 07:34:23 +00:00
David Turner
e3654532ea
* src/base/ftbitmap.c: fixing memory stomping bug in the
...
bitmap embolderner when the pitch of the source bitmap is
*much* larger than its width
* src/truetype/ttinterp.c: fixing aliasing-related compilation
warning
2007-01-13 00:19:18 +00:00
Werner Lemberg
2bad8ffbdf
cosmetics
2006-11-22 09:37:03 +00:00
Werner Lemberg
82ee38e585
formatting
2006-11-20 09:19:26 +00:00
David Turner
7bab6ae3e9
* src/truetype/ttinterp.c: undefined the FIX_BYTECODE macro,
...
since the interpreter "enhancements" are still too buggy for
general use
2006-11-13 11:25:06 +00:00
David Turner
6aa260ce61
support for "automatic unpatented hinting" added
...
we still need to determine the list of "trick" CJK fonts
that are going to toggle the bytecode interpreter instead
of the auto-hinter
2006-08-25 22:45:13 +00:00
Werner Lemberg
1234299620
formatting
2006-08-19 11:18:09 +00:00
David Turner
33f5f24957
* include/freetype/internal/ftgloadr.h,
...
include/freetype/internal/tttypes.h, src/base/ftgloadr.c,
src/base/ftobjs.c, src/truetype/ttgload.c, src/truetype/ttinterp.c,
src/truetype/ttobjs.c: improvements to native TrueType hinting,
this is a first try, controlled by the FIX_BYTECODE macro in
src/truetype/ttinterp.c
2006-08-16 16:50:55 +00:00
Werner Lemberg
a2da05c2c5
Fix two hinting bugs as reported in
...
http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html .
* include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
`first_point' member.
* src/truetype/ttgload.c (tt_prepare_zone): Initialize
`first_point'.
(TT_Process_Composite_Glyph): Always untouch points.
* src/truetype/ttinterp.c (Ins_SHC): Fix computation of
`first_point' and `last_point' in case of composite glyphs.
(Ins_IUP): Fix computation of `end_point'.
2006-06-25 06:27:27 +00:00
Werner Lemberg
8e6f8c4d79
Formatting, copyright years, documentation improvements.
2006-02-17 08:07:09 +00:00