suzuki toshiya
5edc2f339a
Fix Savannah bug #31040 .
...
* src/truetype/ttinterp.c (free_buffer_in_size): Remove.
(TT_RunIns): Updated.
2010-10-01 08:15:55 +02:00
suzuki toshiya
db053ec9a5
[truetype] Don't duplicate size->twilight structure to be freed.
...
* src/truetype/ttinterp.c (free_buffer_in_size): Don't duplicate
FT_GlyphZoneRec size->twilight to be freed. If duplicated,
FT_FREE() erases the duplicated pointers only and leave original
pointers. They can cause the double-free crash when the burst
errors occur in TrueType interpreter and free_buffer_in_size()
is invoked repeatedly. See Savannah bug #31040 for detail.
2010-09-17 23:20:00 +09:00
Werner Lemberg
afd89d309d
Make bytecode debugging with FontForge work again.
...
* src/truetype/ttinterp.c (TT_RunIns): Don't call
`free_buffer_in_size' in case of error if a debugger is active.
2010-09-15 13:02:35 +02:00
Werner Lemberg
6abb9232b6
Improve tracing messages.
...
* src/truetype/ttinterp.c (TT_RunIns): Improve wording of tracing
message.
* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Add
tracing message.
* src/truetype/ttgload.c (tt_loader_init): Add tracing message.
* src/cache/ftcsbits.c (ftc_snode_load): Emit tracing message if
glyph doesn't fit into a small bitmap container.
2010-09-14 09:02:10 +02:00
Werner Lemberg
5220ef58c5
Fix minor issues reported by <muktha.narayan@wipro.com>.
...
* src/autofit/aflatin.c (af_latin_compute_stem_width): Remove
redundant conditional check.
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Ditto.
* src/cff/cffload.c (cff_encoding_load): Remove conditional check
which always evaluates to `true'.
* src/pshinter/pshalgo.c (ps_glyph_interpolate_strong_points):
Ditto.
* src/truetype/ttinterp.c (Ins_IUP): Ditto.
* src/cid/cidgload.c (cid_slot_load_glyph): Don't check for NULL if
value is already dereferenced.
* src/winfonts/winfnt.c (FNT_Load_Glyph): Fix check of `face'.
2010-09-13 07:32:22 +02:00
suzuki toshiya
0eb657b0aa
[truetype] Decrease the trace level catching the interpreter error.
...
* src/truetype/ttinterp.c (TT_RunIns): Decrease the trace level
showing the error when the interpreter returns with an error,
from FT_TRACE7() to FT_TRACE1().
2010-08-31 13:29:05 +09:00
suzuki toshiya
29e044a4af
[truetype] Prevent bytecode reuse after the interpretation error.
...
* src/truetype/ttinterp.c (free_buffer_in_size): New function to
free the buffer allocated during the interpretation of this glyph.
(TT_RunIns): Unset FT_Face->size->{cvt_ready,bytecode_ready} if
an error occurs in the bytecode interpretation. The interpretation
of invalid bytecode may break the function definitions and referring
them in later interpretation is danger. By unsetting these flags,
`fpgm' and `prep' tables are executed again in next interpretation.
Fix Savannah bug #30798 , reported by Robert Swiecki.
2010-08-31 01:23:30 +09:00
Werner Lemberg
346f1867fd
Fix Savannah bug #30657 .
...
* src/truetype/ttinterp.c (BOUNDSL): New macro.
Change `BOUNDS' to `BOUNDSL' where appropriate.
* src/truetype/ttinterp.h (TT_ExecContextRec): Fix type of
`cvtSize'.
2010-08-06 00:47:57 +02:00
Werner Lemberg
888cd1843e
Fix Savannah bug #30361 .
...
* src/truetype/ttinterp.c (Ins_IUP): Fix bounds check.
2010-07-08 07:29:42 +02:00
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