Commit Graph

8512 Commits

Author SHA1 Message Date
Ebrahim Byagowi 8f6d0f8401
[os2] minor, fix font_page_t enum naming
As https://github.com/harfbuzz/harfbuzz/pull/986#pullrequestreview-395052800
2020-04-17 11:30:27 +04:30
Ebrahim Byagowi 818f109bde Use float in avar calculation instead ints and checking their overflows 2020-04-17 00:53:39 +04:30
Ebrahim Byagowi 9ffa50fe5d Add an appropriate fallback to hb_int_mul_overflows 2020-04-17 00:38:38 +04:30
Jonathan Kew 573b6bf826 Handle non-exclusive features when mapping OpenType tags to AAT feature type/selector pairs.
Fixes #2290.
2020-04-16 01:33:01 +04:30
Qunxin Liu 0d5695983e [subset] fixes dangling object_t issue in FeatureVariationRecord
Fixes https://crbug.com/oss-fuzz/21560
revert () does not clean up useless object_t. Adjust the order of
subsetting substitutions and conditions to avoid dangling object_t.
2020-04-06 13:41:33 +04:30
Ebrahim Byagowi 57b7de032f [subset] Fail ClassDefFormat1 serialization if no space available
Fixes https://crbug.com/oss-fuzz/21580
2020-04-05 17:38:04 +04:30
Qunxin Liu c8cc1e378d fix issues in ClassDefFormat1 serialize:
glyph ids in Iterator may be non-consecutive,
so the number in classValue might be larger than length of the Iterator
2020-04-03 12:31:48 -07:00
Ebrahim Byagowi 75cae46dc2
[aat] minor spacing 2020-04-03 20:04:16 +04:30
Ebrahim Byagowi 3737776384
[aat] add the bug link, minor 2020-04-03 20:03:20 +04:30
Jonathan Kew 1faf0caae1 Special-case 'smcp' when checking for exposed AAT features.
This may be implemented by selectors under either LETTER_CASE or LOWER_CASE feature types
in AAT, so we need to check for the presence of either one.

Fixes #2307.
2020-04-03 19:57:43 +04:30
Jonathan Kew b87cf6e8d4 Fix sense of comparsion in hb_aat_map_builder_t::feature_info_t.
This makes bsearch actually work for the features array.

Fixes #2305.
2020-04-03 19:20:48 +04:30
Jonathan Kew b027cb518d Set sequence number when adding feature to aat map builder, to support stable sort.
Fixes #2288.
2020-04-03 03:22:06 +04:30
Ebrahim Byagowi 89fa70f511 [aat] minor over previous feat related changes 2020-04-03 01:08:01 +04:30
Jonathan Kew b1c0b9da2f [AAT] Don't map OT tags to AAT feature types that are not exposed.
If an AAT feature type is not exposed in the 'feat' table, we assume it is not intended
to be user-controllable and so we should not map any OT feature tag requests to it.

Fixes #2285.
2020-04-02 23:58:32 +04:30
Qunxin Liu e0c3979af1 typo fix 2020-04-02 12:05:57 +04:30
ariza 65f4136303 minor; fixes #2292 2020-04-01 19:49:18 -07:00
Garret Rieger 014e038b2c [subset] Bail out of context lookup expansion once the lookup limit is encountered. 2020-04-01 11:14:41 +04:30
Garret Rieger 5d345d0cd1 [subset] Limit the number of lookup indices processed subsetting Feature.
> Also, remove two unnessecary full iterations of the lookup index iterator during serialization of the index array. Fixes fuzzer found timeout.
2020-04-01 11:13:05 +04:30
Khaled Hosny 1b64b73080 Revert "Add messages for GPOS/GSUB phases"
This reverts commit b07714d6b5.
2020-03-30 16:49:23 +02:00
Ebrahim Byagowi 2e1bf61dd5 [gsubgpos] Use FeatureVariations::NOT_FOUND_INDEX instead Index::
As noted by https://github.com/harfbuzz/harfbuzz/issues/2280#issuecomment-604386389

Added on b143e34, fixed on 2571891

Closes #2280
2020-03-26 22:59:28 +04:30
Ebrahim Byagowi 96d792ae80 [avar] Prevent mul overflow
Fixes https://crbug.com/oss-fuzz/21350
2020-03-26 15:01:14 +00:00
Ebrahim Byagowi 18fc9197e2 [meson] Run check-symbols.sh and check-static-inits.sh correctly
* Search src/ build directory for objects in check-static-inits.sh
* Find .def files in src/ build directory in src/check-symbols.sh
* Pass builddir also in autotools also, we may just remove libs passing after autotools removal
* Move harfbuzz_subset_def target so can be referenced as a check-static-inits.sh dependency
2020-03-26 09:40:14 +00:00
Ebrahim Byagowi 9c2c9553eb [test] Check -subset also doesn't link to lib[std]c++ 2020-03-26 09:40:14 +00:00
Ebrahim Byagowi 25718913d4 [gsubgpos] minor build fix 2020-03-26 14:04:37 +04:30
Ebrahim Byagowi b143e34ee1 [gsubgpos] Initialize variation index on HB_NO_VAR
hb_shape_plan_key_t::equal expects hb_ot_shape_plan_key_t be initialized by
hb_ot_layout_table_find_feature_variations calls but it won't get initialized
when HB_NO_VAR build config is used.

Related to https://github.com/harfbuzz/harfbuzz/issues/2280
2020-03-26 12:06:12 +04:30
Ebrahim Byagowi 071e2e345f minor 2020-03-26 12:03:07 +04:30
Ebrahim Byagowi cc977b6e5c [gsubgpos] Minor simplification
Just changed the order, no functional change
2020-03-26 11:19:43 +04:30
Ebrahim Byagowi 1a48278511 [gsubgpos] Minor style improve 2020-03-26 11:15:09 +04:30
Garret Rieger 4ad686b9c0
[subset] fix fuzzer timeout in layout closure
Bail out of chain context lookup expansion once the lookup limit is encountered.
2020-03-26 06:32:28 +00:00
Ebrahim Byagowi f0ce56bbd0 [meson] Don't compile test-bimap on msvc either
MSVC doens't like its NullPool,

test-bimap.cc.obj : error LNK2019: unresolved external symbol "unsigned __int64 const * const _hb_NullPool" (?_hb_NullPool@@3QB_KB) referenced in function
2020-03-24 19:06:09 +00:00
Ebrahim Byagowi 22f311e100 [meson] Don't compile noinst_programs in msvc for now 2020-03-24 19:06:09 +00:00
Ebrahim Byagowi 7054b12206 [meson] Mark rest of non-install executables explicitly 2020-03-24 19:06:09 +00:00
Ebrahim Byagowi e8808c1c20 [meson] Minor, replace tabs with spaces 2020-03-24 19:06:09 +00:00
Ebrahim Byagowi 2db8279162 [meson] Don't compile test-{algs,iter,meta} on msvc 2020-03-24 19:06:09 +00:00
Ebrahim Byagowi 3385afacd3 [meson] Don't run check-includes if is amalgam build 2020-03-24 19:06:09 +00:00
Ebrahim Byagowi 6a8a1dc5bb [meson] Port src/ binary artifacts to meson 2020-03-24 19:06:09 +00:00
Ebrahim Byagowi 4738dff18e [make] minor move on Makefile.am 2020-03-24 19:06:09 +00:00
Simon Cozens b07714d6b5 Add messages for GPOS/GSUB phases 2020-03-23 22:02:44 +02:00
Ebrahim Byagowi 748e1cf898 [subset] Avoid linking to libstdc++ in libharfbuzz-subset.so
Just like other targets (except harfbuzz-icu) avoid linking to libstdc++
2020-03-23 18:06:02 +00:00
Ebrahim Byagowi a0c58be371 [tools] Remove py2 remains 2020-03-18 23:41:20 +03:30
Tim-Philipp Müller 93b3e30215 [meson] fix icu-related linking errors in test with amalgam build
test-unicode.c:960: undefined reference to `hb_icu_get_unicode_funcs'
test-unicode.c:961: undefined reference to `hb_icu_get_unicode_funcs'

For now add the icu sources to libharfbuzz also for the amalgam
build, later we need to have a separate harfbuzz-icu module and
link against that, and/or generate harfbuzz.cc.
2020-03-14 15:16:00 +03:30
Garret Rieger 2f556c38c0 [subset] Fix crash when serializer runs out of room during gpos subsetting. 2020-03-14 00:55:47 +03:30
Chun-wei Fan 838346c54a meson: Support GDI integration
...and supersede the configuration option uniscribe with gdi, as Uniscribe is
tightly tied to GDI.  This means that enabling GDI would also mean enabling
Uniscribe.
2020-03-13 14:30:17 +03:30
Chun-wei Fan 4b4d5c295d src/meson.build: Some cleanups for Visual Studio builds
We don't actually need the .def files (vs_module_defs) entry when we are
building DLLs with Visual Studio as long as we have HB_DLL_EXPORT defined.

Plus, to maintain compatibility with the CMake builds, for Visual Studio builds
we do not prefix the libraries with 'lib', nor have a '-0' suffix for the DLL
file name.
2020-03-13 14:30:17 +03:30
Chun-wei Fan 91ca17e1fd src/hb-gobject-enums.cc.tmpl: Replace © with (C)
This was, we also avoid Visual Studio compiler warnings C4828 as that sign is
not favored when /utf-8 is enabled, which is the norm nowadays as Visual Studio
2015 or later is required to build harfbuzz nowadays.
2020-03-13 14:30:17 +03:30
Chun-wei Fan 62fb6738d5 Fix gen-def for harefbuzz-gobject
The © sign is causing issues for the script, so replace those with (C)
2020-03-13 14:30:17 +03:30
Chun-wei Fan 8d425ed446 meson: Fix harfbuzz-gobject builds without introspection
Make the `sources:` field reflect the items depending on whether introspection
is being built
2020-03-13 14:30:17 +03:30
Chun-wei Fan 3341d5346e meson: Don't apply -DHB_DLL_EXPORT to all targets
Only have it apply to the libraries when they are not built statically on
Visual Studio
2020-03-13 14:30:17 +03:30
Ebrahim Byagowi a224f4179f
Turn more of simple dagger chains to foreach
Less noise, as was agreed before and applied 385741d also
2020-03-13 08:33:34 +03:30
Ebrahim Byagowi 755a77d660 Move outline draw API behind HB_EXPERIMENTAL_API directive 2020-03-13 08:25:53 +03:30