src


Log

Author Commit Date CI Message
Werner Lemberg 6abce2c2 2019-04-23T06:52:07 * src/sfnt/ttcmap.c (tt_cmap12_next): Remove dead code. Found by clang 8.0's static analyzer and reported by Sender Ghost <lightside@gmx.com>.
Werner Lemberg 4166c453 2019-04-23T06:49:56 [base] Fix thinko in previous commit. * src/base/ftbitmap.c (FT_Bitmap_Blend): Check final width, not target pitch. Problem reported by Sender Ghost <lightside@gmx.com>.
Werner Lemberg 9f6ed105 2019-04-22T08:10:56 * src/base/ftbitmap.c (FT_Bitmap_Blend): Check target pitch. Problem reported by Sender Ghost <lightside@gmx.com>.
Werner Lemberg af400438 2019-04-22T07:41:35 Fix return value of `FT_Set_Named_Instance' (#56186). * src/truetype/ttgxvar.c (TT_Set_Named_Instance): Correctly handle internal return value -1 of `TT_Set_Var_Design'.
Werner Lemberg c149f739 2019-04-17T07:49:17 [pcf] Fix handling of undefined glyph (#56067). This commit fixes the changes from 2018-07-21, which broke charmap iteration. We now add the default character as a new glyph with index 0, thus increasing the number of glyphs by one (as before). * src/pcf/pcfread.c (pcf_get_metrics): Adjust to new artificial glyph with index 0. Limit number of elements to 65534. (pcf_get_bitmaps): Ditto. Unify two loops into one; this avoids allocation of an intermediate array. (pcf_get_encodings): Don't flip indices but copy glyph metrics of default character to index 0. Also handle invalid default character. * docs/CHANGES: Updated.
JDG 8837ac26 2019-04-15T10:10:38 * src/tools/apinames.c (main): Fix error message. Reported as https://savannah.nongnu.org/patch/?9796
Alexei Podtelezhnikov 1f271751 2019-04-11T23:48:21 [smooth] Fix segfault in direct mode (#56092). * src/base/ftoutln.c (FT_Outline_Render): Set missing clip_box for direct mode. * src/smooth/ftgrays.c (gray_raster_render): Use it.
Werner Lemberg f0384d5f 2019-04-09T11:01:24 Minor.
Werner Lemberg 885b4c24 2019-04-06T07:07:37 * src/sfnt/ttcmap.c (tt_get_glyph_name): Pacify compiler (#56061). This is for Visual Studio 2019 on ARM.
Antony Lee 3ad1c93a 2019-04-06T06:37:42 Make `glyph_name' parameter to `FT_Get_Name_Index' a `const'. * include/freetype/freetype.h (FT_Get_Name_Index), include/freetype/internal/ftobjs.h (FT_Face_GetGlyphNameIndexFunc), include/freetype/internal/services/svgldict.h (FT_GlyphDict_NameIndexFunc), src/base/ftobjs.c (FT_Get_Name_Index), src/cff/cffdrivr.c (cff_get_name_index), src/sfnt/sfdriver.c (sfnt_get_name_index), src/type1/t1driver.c (t1_get_name_index), src/type42/t42drivr.c (t42_get_name_index): Add `const' to second argument.
Armin Hasitzka 6986ddac 2019-03-31T11:08:49 [cff] Fix boundary checks. 642bc7590c701c8cd35a9f60fa899cfa518b17ff introduced dynamically allocated memory when parsing CFF files with the "old" engine. Bounds checks have never been updated, however, leading to pointless comparisons of pointers in some cases. This commit presents a solution for bounds checks in the CFF module with an extended logic for the "old" engine while staying as concise as possible for the "new" one. * src/cff/cffparse.h: Introduce the struct `CFF_T2_StringRec' and the additional field `t2_strings' within `CFF_ParserRec'. * src/cff/cffparse.c (cff_parser_within_limits): Move all boundary checks into this new function and update the rest of `cffparse.c' to use it. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12137
Werner Lemberg df266d3e 2019-03-20T07:04:06 [autofit] Fix Mongolian blue zone characters. * src/autofit/afblue.dat: Use U+200D (ZERO-WIDTH JOINER) characters to get medial forms for some Mongolian characters. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
Werner Lemberg dde03eec 2019-03-19T10:50:38 [autofit] Add support for Mongolian script. As a de-facto standard, layouts using this script are constructed horizontally line by line, then the lines are rotated clockwise for vertical display. * src/autofit/afblue.dat: Add blue zone data for Mongolian. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Mongolian standard characters. * src/autofit/afranges.c, src/autofit/afstyles.h: Add Mongolian data.
Werner Lemberg fbbcf503 2019-03-15T07:27:02 * Version 2.10.0 released. ========================== Tag sources with `VER-2-10-0'. * docs/VERSION.TXT: Add entry for version 2.10.0. * docs/CHANGES: Updated. * README, Jamfile (RefDoc), src/base/ftver.rc, builds/windows/vc2010/freetype.vcxproj, builds/windows/vc2010/index.html, builds/windows/visualc/freetype.dsp, builds/windows/visualc/freetype.vcproj, builds/windows/visualc/index.html, builds/windows/visualce/freetype.dsp, builds/windows/visualce/freetype.vcproj, builds/windows/visualce/index.html, builds/wince/vc2005-ce/freetype.vcproj, builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/freetype.vcproj, builds/wince/vc2008-ce/index.html: s/2.9.1/2.10.0/, s/291/2100/. * include/freetype/freetype.h (FREETYPE_MINOR): Set to 10. (FREETYPE_PATCH): Set to 0. * builds/unix/configure.raw (version_info): Set to 23:0:17. * CMakeLists.txt (VERSION_MINOR): Set to 10. (VERSION_PATCH): Set to 0. * builds/toplevel.mk (version, winversion): Since the minor version number has two digits now, never omit the patch number. We would get ambiguous zip file names otherwise. (dist): Remove remnants of `docmaker' tool. (do-dist): Remove unused intermediate files. * src/cff/cffparse.c (destrict_c2s_item): Guard function with CFF_CONFIG_OPTION_OLD_ENGINE macro.
Andrei Alexeyev 2f4b740c 2019-03-07T09:42:25 Fix invalid function pointer casts. This change should allow Freetype to work on WASM/Emscripten without needing `-s EMULATE_FUNCTION_POINTER_CASTS=1'. * src/autofit/afdummy.c (af_dummy_hints_apply): Fix signature. * src/cid/cidload.c (cid_parse_font_matrix, parse_fd_array, parse_expansion_factor, parse_font_name): Return `void', not `FT_Error'. * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIsDefaultFunc): Fix signature.
Werner Lemberg 31757f96 2019-03-05T11:35:03 [base] Handle numeric overflow (#55827). * src/base/ftglyph.c (FT_Glyph_Get_CBox): Use `FT_PIX_CEIL_LONG'.
Sebastian Rasmussen 6a4718a3 2019-03-05T17:25:19 Fix use of uninitialized memory. * src/psaux/psintrp.c (cf2_interpT2CharString): The call to `cf2_arrstack_setCount' may fail because the allocator ran out of memory. When this happens the stack is still written to before the error condition is checked. This means that FreeType writes outside of allocated memory. This commit moves the error check prior to the stack assignment, hence the function now properly returns with an error condition.
Werner Lemberg 4d51f78d 2019-02-23T11:21:48 More documentation updates. In particular, mark the new behaviour of `FT_LOAD_COLOR' as experimental.
Werner Lemberg 6ab36880 2019-02-23T11:18:39 * src/base/ftbitmap.c (FT_Bitmap_Blend): No fractional offsets. The function only provided a framework without an actual implementation, which this commits removes.
Werner Lemberg 75859970 2019-02-23T10:07:09 Update all copyright notices.
Werner Lemberg fd8fc64e 2019-02-23T10:05:37 * src/tools/update-copyright-year: Insert `(C)'.
Armin Hasitzka b77826e1 2019-02-21T10:23:15 Triage 8ea854bfe92443706d55656072f891ec8f2cb3c2.
Armin Hasitzka 8ea854bf 2019-02-21T10:14:57 [truetype] Mask numeric overflows. * src/truetype/ttinterp.c (Move_CVT, Move_CVT_Stretched, Ins_MIRP): Mask numeric overflows. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11681 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11734
Armin Hasitzka 5e3a38b1 2019-02-21T10:04:28 [psaux] Mask numeric overflow. * src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Mask numeric overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13041
Werner Lemberg de8de1ce 2019-02-20T12:48:36 Minor (whitespace, spelling, doc update).
Wink Saville 0ac69211 2019-02-16T07:05:39 * src/autofit/afwarp.h (af_warper_compute): Fix declaration.
Werner Lemberg b66d6a91 2019-02-06T07:38:25 CHANGES: Document recent metrics change from Nikolaus.
Nikolaus Waxweiler a6feefdf 2019-02-02T15:50:57 [truetype] Apply MVAR hasc, hdsc and hlgp metrics to current FT_Face metrics. Instead of setting typo or win metrics as the new FT_Face metrics indiscriminately, apply only typo deltas to the currently active FT_Face metrics. This prevents line height differences when e.g. the default outlines were used as the regular face and instances for everything else. * src/truetype/ttgxvar.c (tt_apply_mvar): Implement.
Nikolaus Waxweiler f72b0074 2019-02-02T15:45:31 [sfnt] Use typo metrics if OS/2 fsSelection USE_TYPO_METRICS bit is set. If the OS/2 table exists and fsSelection bit 7 (USE_TYPO_METRICS) is set, use the sTypo* set of values to compute the FT_Face's ascender, descender and height. Otherwise, fall back to old behavior. * src/sfnt/sfobjs.c (sfnt_load_face): Implement.
Werner Lemberg f686ad46 2019-01-22T20:31:44 Update copyright years.
John Tytgat f61f49fe 2019-01-18T13:25:23 [sfnt] Handle TT fonts having two PostScript font names (#55471). * src/sfnt/sfdriver.c (sfnt_get_name_id): Prefer English over any other language found for PostScript font names.
Alexei Podtelezhnikov 1e7a8f30 2019-01-08T20:54:13 [psaux, type1] Align tracing.
Chris Liddell b75abeb5 2019-01-08T20:51:39 [psaux] Fix closepath (#55414). All of the Type 1 path building is done with code common to the revised CFF engine, with the exception of closepath, which was still calling ps_builder_close_contour(), thus previously cached segments were not always written to the path, and glyph corruption, or even invalid outlines were possible. * src/psauc/psinterp.c (cf2_interpT2CharString) <cf2_cmdCLOSEPATH>: Switch to calling `cf2_glyphpath_closeOpenPath'.
Werner Lemberg b89166cc 2018-12-29T08:55:01 * src/autofit/aflatin2.c: Some fixes from `aflatin.c' (#55310).
Werner Lemberg afa043de 2018-12-25T22:44:05 Fix links (mostly http -> https).
Werner Lemberg 5e029659 2018-12-25T19:24:06 * src/psaux/cffdecode.c (cff_operaor_seac): Fix numeric overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11915
Werner Lemberg ec439711 2018-12-12T19:59:42 [gxvalid] Fix compiler warnings. * src/gxvalid/gxvjust.c (gxv_just_check_max_gid), src/gxvalid/gxvmort.c (gxv_mort_coverage_validate): Use `FT_UNUSED'.
Werner Lemberg 2b4e61e4 2018-12-12T09:36:39 Minor documentation fixes.
Werner Lemberg 3e8a2283 2018-12-11T23:54:17 * src/truetype/ttgload.c (TT_Hint_Glyph): Remove useless test. `control_len' only gets its value from `n_ins' (and vice versa), which is always read as `unsigned short' and thus can't be larger than 0xFFFF.
Werner Lemberg f1b6183f 2018-12-04T11:51:15 [bdf] Ignore data after `ENDFONT'. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10798 * src/bdf/bdflib.c (_bdf_parse_end): New function. (_bdf_parse_glyphs): Switch to `_bdf_parse_end' after `ENDFONT' has been encountered.
Chris Liddell 78a1e695 2018-11-27T22:24:06 [type1,cff] Add FT_{Set,Get}_MM_WeightVector API calls. For multiple master fonts, common usage (in Postscript) is to modify the WeightVector of an existing font instance, this addition supports that use. * include/freetype/ftmm.h, src/base/ftmm.c (FT_Set_MM_WeightVector, FT_Get_MM_WeightVector): New API functions. * include/freetype/internalservices/svmm.h (FT_Set_MM_WeightVector_Func, FT_Get_MM_WeightVector_Func): New function types. (MultiMasters): Add `set_mm_weightvector' and `get_mm_weightvector' members. (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. * src/cffcffdrivr.c (cff_set_mm_weightvector, cff_get_mm_weightvector): New functions. (cff_service_multi_masters): Register them. * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated. This driver doesn't use the new interface. * src/type1/t1load.c (T1_Set_MM_WeightVector, T1_Get_MM_WeightVector): New functions. * src/type1/t1driver.c (t1_service_multi_masters): Register them. * src/type1/t1load.h: Updated.
Ben Wagner 1fc6937f 2018-11-27T18:02:44 [cff] Fix compiler warning (#55105). * src/cff/cffparse.c (cff_parser_run): Guard label only used if CFF_CONFIG_OPTION_OLD_ENGINE is active.
Ben Wagner 74cdd75f 2018-11-27T17:55:40 [truetype] Fix numeric overflow (#55103). * src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
Armin Hasitzka 55b35cd6 2018-11-22T11:43:48 * src/cff/cffparse.c: Please the compiler.
Armin Hasitzka 642bc759 2018-11-22T10:29:35 [cff] Fix memory overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9869 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10869 * src/cff/cffparse.c (destruct_t2s_item, cff_parser_run): Store evaluated T2 charstrings in separately allocated memory.
Alexei Podtelezhnikov 78db9eec 2018-11-10T15:39:19 [smooth] Placeholder only for library-enabled LCD filtering. * src/smooth/ftsmooth.c (ft_smooth_init): Add disabled `FT_Library_SetLcdFilter' call.
Werner Lemberg 58e48e92 2018-11-09T12:14:35 [psaux] Add safety guard (#54985). * src/psaux/psobjs.c (cff_builder_close_contour): Do it.
Alexei Podtelezhnikov 181033d3 2018-11-08T21:04:56 [ftstroke] Fix unpredictable failures (#54986). * src/base/ftstroke.c (ft_sroke_border_lineto): Fix lineto check.
Alexei Podtelezhnikov 81c31f62 2018-11-08T07:54:47 [ftstroke] Fix unpredictable failures (#54976). * src/base/ftstroke.c (ft_sroke_border_close): Set the start tags.
Ben Wagner fb0d66d0 2018-11-07T00:47:44 [truetype] Fix VF check from 2018-09-12 (#54973). * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Use correct offsets for estimates.
Werner Lemberg fbd24523 2018-11-06T11:15:31 [pshinter] Fix numeric overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11242 * src/pshinter/pshrec.c (ps_dimension_add_t1stem): Implement it.
Werner Lemberg 5b86f53d 2018-11-06T11:08:41 [psaux] Fix timeout in old CFF engine. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11260 * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_sqrt> [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix potential endless loop.
Alexei Podtelezhnikov cc288e38 2018-11-04T22:09:16 Minor.
Alexei Podtelezhnikov 1f43affc 2018-11-04T13:11:16 * src/truetype/ttgxvar.c: Use enum definitions.
Alexei Podtelezhnikov d95a12b8 2018-11-03T23:02:58 * src/truetype/ttgxvar.c (ft_var_apply_tuple): Adjust condition.
Alexei Podtelezhnikov 547f82f2 2018-11-03T23:00:36 * src/truetype/ttgxvar.c (ft_var_apply_tuple): Tracing tweaks.
Alexei Podtelezhnikov ce3feb0b 2018-11-03T22:43:21 Revert due to specs: [truetype] Speed up variation IUP. This reverts commit 1e4496c54c010843c1bac56e5d344115d1a49620.
Alexei Podtelezhnikov dfa86d65 2018-11-03T22:36:52 Revert "[truetype] Speed up variation IUP." This reverts commit 1e4496c54c010843c1bac56e5d344115d1a49620.
Alexei Podtelezhnikov 61d50756 2018-11-02T20:42:25 * src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic. Reported and tested by Behdad.
Shailesh Mistry 339c451a 2018-11-02T10:10:10 [autofit] Prevent SEGV. See https://bugs.ghostscript.com/show_bug.cgi?id=697545 for more details on how the bug was found. * src/autofit/afloader.c (af_loader_load_glyph): Propagate error code.
Alexei Podtelezhnikov 1e4496c5 2018-10-31T23:17:33 [truetype] Speed up variation IUP. * src/truetype/ttgxvar.c (tt_delta_interpolate): Separate trivial snapping to the same position from true interpolation.
Alexei Podtelezhnikov ba03310b 2018-10-31T22:01:36 * src/type1/t1load.c (t1_set_mm_blend): Optimized.
Alexei Podtelezhnikov 300da33d 2018-10-31T21:55:40 * src/truetype/ttgxvar.c (ft_var_get_item_delta): Optimized.
Werner Lemberg c13635ee 2018-10-29T21:25:10 [base] Fix numeric overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11080 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use `MUL_LONG'.
Werner Lemberg ba62f9d8 2018-10-29T21:11:36 [cff] Fix numeric overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10988 * src/cff/cffparse.c (cff_parser_run) [CFF_CONFIG_OPTION_OLD_ENGINE]: Use `NEG_LONG'.
Alexei Podtelezhnikov 3e8ec291 2018-10-26T23:23:48 [sfnt] Make `head' timestamps unsigned. It's been more than 2^31 seconds since 1904. * include/freetype/tttables.h (TT_Header): Change field types. * src/sfnt/ttload.c (tt_face_load_generic_header): Updated.
Alexei Podtelezhnikov d71f2bc1 2018-10-26T22:52:25 Revert "Align FreeType with standard C memory management." This reverts commit 877aa1b2cc662978aae61ed4d5c6ea8ba56b2fe7.
Werner Lemberg bfe53294 2018-10-27T00:07:53 [psaux] Fix numeric overflow. Triggered by https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11157 * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_blend> [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix integer overflow.
Werner Lemberg f56830ed 2018-10-20T07:27:47 Avoid endless loop while tracing (#54858). * src/type1/t1load.c (parse_buildchar): Guard tracing stuff with FT_DEBUG_LEVEL_TRACE.
Werner Lemberg 912e174c 2018-10-07T09:28:52 A missing Unicode cmap is not a fatal error. This is a follow-up to the previous commit. * src/cff/cffobjs.c (cff_face_init), src/sfnt/sfobjs.c (sfnt_load_face), src/type1/t1objs.c (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Implement it.
Werner Lemberg 885f5b0b 2018-10-07T09:03:05 Fix handling of FT_CONFIG_OPTION_ADOBE_GLYPH_LIST (#54794). * src/cff/cffcmap.c (cff_cmap_unicode_init), src/psaux/t1cmap.c (t1_cmap_unicode_init), src/sfnt/ttcmap.c (tt_cmap_unicode_init): Check `unicodes_init' field.
Werner Lemberg 0a178144 2018-10-07T08:59:56 Whitespace.
Werner Lemberg f262d15d 2018-10-07T07:40:37 Minor comment improvement.
Werner Lemberg 9817571c 2018-10-03T08:04:55 [ftgrays] Fix typo in stand-alone mode (#54771). * src/smooth/ftgrays.c (FT_THROW) [STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Fix call to `FT_ERR_CAT'.
Werner Lemberg d280ae1e 2018-10-02T20:45:16 [psaux] Fix segfault. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10768 * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_callothersubr> [CFF_CONFIG_OPTION_OLD_ENGINE]: Check argument.
Werner Lemberg 6b660f12 2018-10-02T16:48:59 [psaux] Fix numeric overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10768 * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_roll> [CFF_CONFIG_OPTION_OLD_ENGINE]: Use NEG_INT.
Werner Lemberg 83fc524d 2018-10-02T16:36:49 [pshinter] Handle numeric overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10550 * src/pshinter/pshglob.c (psh_blues_snap_stem): Mask numeric overflow.
Alexei Podtelezhnikov 877aa1b2 2018-09-27T21:17:36 Align FreeType with standard C memory management. * include/freetype/ftsystem.h: Include FT_TYPES_H. (*FT_Alloc_Func, *FT_Realloc_Func): Use size_t for the size arguments. * src/raster/ftmisc.h: Ditto. * builds/amiga/src/base/ftsystem.c, builds/unix/ftsystem.c, * builds/vms/ftsystem.c, src/base/ftsystem.c (ft_alloc, ft_realloc): Use size_t for the size arguments. * src/base/ftdbgmem.c (ft_mem_debug_alloc, ft_mem_debug_realloc): Use FT_Offset, aka size_t, for the size arguments.
Alexei Podtelezhnikov 4500c701 2018-09-26T22:04:50 Typo.
Werner Lemberg a9af6914 2018-09-25T09:10:09 Fix handing of `FT_Bool'. Before this commit we had code like (FT_Bool)( globals->glyph_styles[gindex] & 0x8000) Since `FT_Bool' is defined to be an `unsigned char', the code evaluated to something like (unsigned char)( 0x8532 & 0x8000) which in turn expanded to (unsigned char)( 0x8000) and finally yielded 0x00 – i.e., false – not as expected. Problem reported and analyzed by Tony Smith <tony.smith@macro4.com>. * include/freetype/fttypes.h (FT_BOOL): Add a comparison against zero so that we always have a Boolean expression. */*: Replace castings to `FT_Bool' with calls to `FT_BOOL' where possible.
Alexei Podtelezhnikov 0f122fef 2018-09-23T21:46:26 [bdf] Speed up charmap access. This makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times faster. * src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Help binary search with continuous prediction.
Alexei Podtelezhnikov 793a9ff9 2018-09-22T14:38:00 * src/base/ftobjs.c (ft_glyphslot_reset_bimap): Another tweak. This one should be clearer. When the rounded monochrome bbox collapses we add a pixel that covers most if not all original cbox.
Alexei Podtelezhnikov f26d5775 2018-09-21T20:34:58 * src/base/ftobjs.c (ft_glyphslot_reset_bimap): Further tweak.
Ben Wagner 335528e1 2018-09-21T11:26:37 Improve auto-hinter handling of bitmap fonts (#54681). For bitmap fonts, `FT_Load_Glyph' should either return an error or not set the format to `FT_GLYPH_FORMAT_OUTLINE'. However, in this case `FT_Load_Glyph' calls into the auto-hinter which calls back into `FT_Load_Glyph' with `FT_LOAD_NO_SCALE' in the flags, which marks the glyph as `FT_GLYPH_FORMAT_OUTLINE' with an empty path (even though it doesn't have any path). It appears that the auto-hinter should not be called when the face doesn't have outlines. The current test for using the auto-hinter in `FT_Load_Glyph' checks if the driver supports scalable outlines, but not if the face supports scalable outlines. * src/base/ftobjs.c (FT_Load_Glyph): Directly check whether we have scalable outlines.
Werner Lemberg c168cc3b 2018-09-21T11:09:27 [raster] Fix disappearing vertical lines (#54589). * src/raster/ftraster.c (Vertical_Sweep_Span): Handle special case where both left and right outline exactly pass pixel centers.
Werner Lemberg 493aa68f 2018-09-21T08:32:22 [base] Some comments.
Alexei Podtelezhnikov 2a9850c4 2018-09-20T22:40:32 * src/base/ftobjs.c (ft_glyphslot_reset_bimap): Tiny rounding tweak. This adds pixels in case a contour goes through the center and they need to be turned on in the b/w rasterizer.
Alexei Podtelezhnikov c1b21f47 2018-09-20T22:14:46 [pcf] Replace charmap implementation. PCF comes with charmap lookup table, aka PCF encodings. Using it directly makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times faster than the original BDF-like binary searches. * src/pcf/pcf.h (PCF_EncodingRec): Removed. (PCF_FaceRec): Remove `nencodings' and `encodings'. * src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Replaced. * src/pcf/pcfread.c (pcf_get_encodings): Store data differently.
Werner Lemberg 8e950680 2018-09-20T06:26:34 [base] Remove unused function `FT_GlyphLoader_CopyPoints'. * include/freetype/internal/ftgloadr.h, src/base/ftgloadr.c (FT_GlyphLoader_CopyPoints): Do it.
Alexei Podtelezhnikov 7f93c977 2018-09-19T22:45:45 [pcf] Prepare to replace charmap implementation. * src/pcf/pcf.h (PCF_Face): Updated to include... (PCF_EncRec): ... this new structure to store charmap geometry. * src/pcf/pcfread.c (pcf_get_encodings): Store charmap geometry.
Alexei Podtelezhnikov d629c2ba 2018-09-18T17:11:48 Remove unused fields. * src/pcf.h (PCF_FaceRec): Remove `charmap' and `charmap_handle'. * src/bdfdrvr.h (BDF_FaceRec): Ditto. * src/winfonts/winfnt.h (FNT_FaceRec): Ditto.
Werner Lemberg dfddc2d9 2018-09-17T08:03:57 [pshinter] Handle numeric overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10396 * src/pshinter/pshglob.c: Include FT_INTERNAL_CALC_H. (psh_blues_snap_stems): Mask numeric overflow.
Werner Lemberg de0aabcd 2018-09-15T06:14:18 [sfnt] Comment fix.
Werner Lemberg 10e54d04 2018-09-13T21:47:35 [truetype] Some fixes for VF checks. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10317 * src/truetype/ttgxvar.c (ft_var_load_gvar): Properly exit memory frame if we have invalid glyph variation data offsets. (tt_face_vary_cvt): Protect against missing `tuplecoords' array. Fix typo.
Werner Lemberg 7665914c 2018-09-13T08:58:49 * src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Fix last commit.
Werner Lemberg a5818ed1 2018-09-13T08:46:44 * src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Check `result'. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10316
John Tytgat 6b53300b 2018-09-12T08:08:09 [sfnt] Better PS name handling (#54629). * src/sfnt/sfdriver (IS_WIN, IS_APPLE): Omit language ID checks. (get_win_string, get_apple_string): Return NULL when the PostScript font name characters is not according to specification. (get_win_string): Make trace output work if the high byte if non-zero. (sfnt_get_var_ps_name, sfnt_get_ps_name): Previously we preferred Win PS name (when there is also an Apple PS name); change this into a fallback to Apple PS name in case the Win PS name is invalid.
Werner Lemberg 65681e6d 2018-09-12T07:40:49 [truetype] Improve VF check. Triggered by https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10255 * src/truetype/ttgxvar.c (ft_var_load_gvar): Use better limit check for `tupleCount'.
Werner Lemberg 53c5e4bd 2018-09-12T07:27:30 * src/truetype/ttgxvar.c (ft_var_load_gvar): Check `glyphoffsets'.
Armin Hasitzka 7b855ed9 2018-09-10T23:41:04 * src/pshinter/pshrec.c (t2_hints_stems): Mask numeric overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10215