Michiharu Ariza [Wed, 12 Sep 2018 20:22:19 +0000 (13:22 -0700)]
fixed bugs in Charset serialization
also some code cleanup
Michiharu Ariza [Wed, 12 Sep 2018 05:41:50 +0000 (22:41 -0700)]
fixed name mixup in Remap::reset
it was causing inconsistent Strings Index subset results
Michiharu Ariza [Tue, 11 Sep 2018 23:47:55 +0000 (16:47 -0700)]
misc bug fixes
Added OpCode_FontMatrix to TopDictOpSet (yet to parse values)
fixed a wrong assert in encode_int
Michiharu Ariza [Tue, 11 Sep 2018 23:20:39 +0000 (16:20 -0700)]
fixed off-by-one error with offSize
Michiharu Ariza [Tue, 11 Sep 2018 20:56:52 +0000 (13:56 -0700)]
fixed a bug
Michiharu Ariza [Tue, 11 Sep 2018 20:24:27 +0000 (13:24 -0700)]
make parse_bcd locale free
Michiharu Ariza [Tue, 11 Sep 2018 17:43:15 +0000 (10:43 -0700)]
Implement parse_bcd
Michiharu Ariza [Tue, 11 Sep 2018 16:46:37 +0000 (09:46 -0700)]
Merge branch 'master' into cff-subset
Behdad Esfahbod [Tue, 11 Sep 2018 15:18:21 +0000 (17:18 +0200)]
[dfont] Fix test expecatation and minor touch up
I have no way to authoritatively know, but looks like test font only has one
face. So, adjust test expectation instead.
Ebrahim Byagowi [Mon, 2 Jul 2018 12:56:43 +0000 (17:26 +0430)]
[dfont] Add test
Behdad Esfahbod [Tue, 11 Sep 2018 14:41:26 +0000 (16:41 +0200)]
[dfont] Re-enable and fix offset handling
Fixes https://github.com/harfbuzz/harfbuzz/pull/1085
Behdad Esfahbod [Tue, 11 Sep 2018 12:45:23 +0000 (14:45 +0200)]
Whitespace
Behdad Esfahbod [Tue, 11 Sep 2018 12:41:19 +0000 (14:41 +0200)]
[ft] Invalidate advance cache if font size changed
Behdad Esfahbod [Tue, 11 Sep 2018 12:35:26 +0000 (14:35 +0200)]
[ft] Cache advances
I decided to always use the cache, instead of my previous sketch direction
that was to only allocate and use cache if fast advances are not available.
The cache is a mere 1kb, so just use it...
TODO: Invalidate cache on font size change.
Fixes https://github.com/harfbuzz/harfbuzz/issues/651
Fixes https://github.com/harfbuzz/harfbuzz/pull/1082
Behdad Esfahbod [Tue, 11 Sep 2018 12:21:15 +0000 (14:21 +0200)]
[util] Add --ft-load-flags
Useful for performance testing.
Not hooked to cairo yet. Just changes shaping, not rasterization.
Behdad Esfahbod [Tue, 11 Sep 2018 12:11:10 +0000 (14:11 +0200)]
[util] Add -n shorthand for --num-iterations
Meh.
Behdad Esfahbod [Tue, 11 Sep 2018 12:05:16 +0000 (14:05 +0200)]
[ft] Towards caching slow get_h_advance results
Related to https://github.com/harfbuzz/harfbuzz/pull/1082
Behdad Esfahbod [Tue, 11 Sep 2018 11:05:47 +0000 (13:05 +0200)]
[ft] Add advances() callback
Behdad Esfahbod [Tue, 11 Sep 2018 10:56:17 +0000 (12:56 +0200)]
[ot-font] Rename
Behdad Esfahbod [Tue, 11 Sep 2018 10:55:54 +0000 (12:55 +0200)]
[ot-font] Add advances() callbacks
Behdad Esfahbod [Tue, 11 Sep 2018 10:22:42 +0000 (12:22 +0200)]
[cache] Minor
Behdad Esfahbod [Tue, 11 Sep 2018 10:02:34 +0000 (12:02 +0200)]
Revert "Remove unused hb_cache_t"
This reverts commit
473b17af4d421f4ce7ac18c769731bb2aa4088f8.
Updates to recent changes.
Behdad Esfahbod [Tue, 11 Sep 2018 08:57:48 +0000 (10:57 +0200)]
[random] Switch to 32bit RNG
Behdad Esfahbod [Tue, 11 Sep 2018 08:51:19 +0000 (10:51 +0200)]
[random] Shuffle
Behdad Esfahbod [Mon, 10 Sep 2018 20:37:19 +0000 (22:37 +0200)]
Make --features rand=1 available to the user
Use rand=255 to mean "randomize".
Part of https://github.com/harfbuzz/harfbuzz/pull/803
Behdad Esfahbod [Mon, 10 Sep 2018 14:36:05 +0000 (16:36 +0200)]
Respect user's wish if they set rand feature manually
Except if the set it to 1, which would mean "randomize"... Ugly.
Behdad Esfahbod [Mon, 10 Sep 2018 14:24:52 +0000 (16:24 +0200)]
Minor clean up of 'rand' patchset
David Corbett [Fri, 23 Feb 2018 17:22:32 +0000 (12:22 -0500)]
Don't seed the RNG from the contents of the buffer
David Corbett [Sun, 28 Jan 2018 00:48:38 +0000 (19:48 -0500)]
Test 'rand'
David Corbett [Sat, 27 Jan 2018 02:36:15 +0000 (21:36 -0500)]
Allow requesting a specific glyph for 'rand'
Randomization only happens by default. If the user specifies a value for
'rand', that value is respected.
David Corbett [Thu, 25 Jan 2018 19:22:03 +0000 (14:22 -0500)]
Implement 'rand'
Michiharu Ariza [Tue, 11 Sep 2018 00:02:31 +0000 (17:02 -0700)]
fix build attempt
Behdad Esfahbod [Mon, 10 Sep 2018 23:39:23 +0000 (01:39 +0200)]
[uniscribe] Fix build
Michiharu Ariza [Mon, 10 Sep 2018 23:27:49 +0000 (16:27 -0700)]
Removed unused subr subset code
Behdad Esfahbod [Mon, 10 Sep 2018 23:26:18 +0000 (01:26 +0200)]
Add HB_FEATURE_GLOBAL_START/END
Fixes https://github.com/harfbuzz/harfbuzz/issues/1141
New API:
HB_FEATURE_GLOBAL_START
HB_FEATURE_GLOBAL_END
Behdad Esfahbod [Mon, 10 Sep 2018 23:07:06 +0000 (01:07 +0200)]
Add (unused) hb_array_t<>
Behdad Esfahbod [Mon, 10 Sep 2018 23:04:50 +0000 (01:04 +0200)]
Minor
Behdad Esfahbod [Mon, 10 Sep 2018 21:29:26 +0000 (23:29 +0200)]
Port rest from VAR to UnsizedArrayOf<>
Michiharu Ariza [Mon, 10 Sep 2018 23:00:20 +0000 (16:00 -0700)]
subset CFF1 String Index
Repurposed FDMap as Remap then subclassed for remapping SIDs
misc code cleanup
Behdad Esfahbod [Mon, 10 Sep 2018 21:18:07 +0000 (23:18 +0200)]
Simplify sanitize->check_array()
Fix a bug in CBDT sanitize, and redundant check in avar.
Behdad Esfahbod [Mon, 10 Sep 2018 21:02:24 +0000 (23:02 +0200)]
Port some VAR arrays to UnsizedArrayOf<>
Fix avar sanitize().
Behdad Esfahbod [Mon, 10 Sep 2018 20:51:26 +0000 (22:51 +0200)]
[indic] Cache hb_options().uniscribe_bug_compatible on indic_plan
Behdad Esfahbod [Mon, 10 Sep 2018 16:19:37 +0000 (18:19 +0200)]
Unbreak HB_OPTIONS
Fixes https://github.com/harfbuzz/harfbuzz/issues/1154
Behdad Esfahbod [Mon, 10 Sep 2018 15:38:19 +0000 (17:38 +0200)]
[indic] Do NOT allow matra after Halant,ZWJ
Fixes https://github.com/harfbuzz/harfbuzz/issues/556
Devanagari regresses 12 tests, and Gujarati 2. See:
https://github.com/harfbuzz/harfbuzz/issues/556#issuecomment-
419957472
New numbers:
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707299 out of 707394 tests passed. 95 failed (0.0134296%)
GUJARATI: 366353 out of 366457 tests passed. 104 failed (0.0283799%)
GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%)
KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%)
MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42327 out of 42329 tests passed. 2 failed (0.
00472489%)
SINHALA: 271596 out of 271847 tests passed. 251 failed (0.0923313%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.
00185457%)
Behdad Esfahbod [Mon, 10 Sep 2018 13:45:32 +0000 (15:45 +0200)]
Fix sanitize or Context Rule
Fixes https://github.com/harfbuzz/harfbuzz/issues/1110
Behdad Esfahbod [Mon, 10 Sep 2018 11:56:28 +0000 (13:56 +0200)]
Revert "[subset] Disable GSUB/GPOS subsetting for now"
This reverts commit
616fd34a69bb69bc35c7e4ea939e71c3ea2e92cb.
Behdad Esfahbod [Mon, 10 Sep 2018 09:37:24 +0000 (11:37 +0200)]
1.9.0
Behdad Esfahbod [Mon, 10 Sep 2018 09:19:49 +0000 (11:19 +0200)]
[subset] Disable GSUB/GPOS subsetting for now
So I can get a release out. I haven't debugged those yet, and they
are producing bad tables.
Behdad Esfahbod [Mon, 10 Sep 2018 09:05:33 +0000 (11:05 +0200)]
[atomic] Fix pointer type passed to InterlockedExchangeAdd()
John Emmas reported on mailing list that build with MSVC is failing.
Not sure why bots don't catch it, but this should fix.
Behdad Esfahbod [Fri, 7 Sep 2018 19:02:57 +0000 (15:02 -0400)]
Use enum instead of "static const" in class scope
Technically, static const needs an out-of-class definition. Eg:
CXXLD libharfbuzz-subset.la
Undefined symbols for architecture x86_64:
"OT::FeatureVariationRecord::min_size", referenced from:
bool OT::GSUBGPOS::subset<OT::PosLookup>(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
bool OT::GSUBGPOS::subset<OT::SubstLookup>(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
"OT::Record<OT::LangSys>::min_size", referenced from:
OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
"OT::IntType<unsigned short, 2u>::min_size", referenced from:
OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o
OT::RecordListOf<OT::Feature>::subset(hb_subset_context_t*) const in libharfbuzz_subset_la-hb-subset.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[4]: *** [libharfbuzz-subset.la] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Exited with code 2
Michiharu Ariza [Fri, 7 Sep 2018 17:50:55 +0000 (10:50 -0700)]
Merge branch 'master' into cff-subset
Behdad Esfahbod [Fri, 7 Sep 2018 14:46:13 +0000 (10:46 -0400)]
Try fixing bots
Behdad Esfahbod [Fri, 7 Sep 2018 14:24:22 +0000 (10:24 -0400)]
[subset] Fix div-by-zero
Michiharu Ariza [Fri, 7 Sep 2018 05:27:44 +0000 (22:27 -0700)]
Merge branch 'master' into cff-subset
Michiharu Ariza [Fri, 7 Sep 2018 01:26:13 +0000 (18:26 -0700)]
fix build attempt ^2
Added hb-ot-cff1-table.cc to hb-subset sources
Deleted unused variable (charset)
Michiharu Ariza [Fri, 7 Sep 2018 00:56:05 +0000 (17:56 -0700)]
fix build attempt
Added HB_INTERNAL to static funtion declarations
Michiharu Ariza [Fri, 7 Sep 2018 00:28:15 +0000 (17:28 -0700)]
subset CFF1 Encoding & Charset
fixed misc Charset bugs
added source file hb-ot-cff1.table.cc
renamed things for clarity & consistency
Garret Rieger [Thu, 6 Sep 2018 01:04:52 +0000 (18:04 -0700)]
[subset] Fix hdmx subsetted size calculation.
Behdad Esfahbod [Thu, 6 Sep 2018 02:29:42 +0000 (19:29 -0700)]
Fix older compilers re '>>' at nested template declarations
Behdad Esfahbod [Wed, 5 Sep 2018 23:24:28 +0000 (16:24 -0700)]
[subset] Hook up GSUB/GPOS, but still disabled
They are still in the drop list.
Behdad Esfahbod [Tue, 4 Sep 2018 03:50:11 +0000 (20:50 -0700)]
[subset] Implement subsetting of SingleSubst
Michiharu Ariza [Tue, 4 Sep 2018 18:29:15 +0000 (11:29 -0700)]
fix build by untemplatizing DictOpSet & DictVal
as they aren't instantiated with BlendArg (yet)
Michiharu Ariza [Tue, 4 Sep 2018 17:25:21 +0000 (10:25 -0700)]
Drop hints from CFF2 charstrings
Templatized ArgStack so it may store the default value along with blend deltas as BlendArg while parsing blend operator arguments in CFF2 charstring
Added get_region_count() method to VarRegionList & VariationStore
Behdad Esfahbod [Tue, 4 Sep 2018 01:54:32 +0000 (18:54 -0700)]
[subset] Keep glyph set in plan
Should remove the vector version at some point...
Behdad Esfahbod [Tue, 4 Sep 2018 01:23:23 +0000 (18:23 -0700)]
[subset] Towards subsetting SingleSubstFormat1
Why does subset plan not have a hb_set_t of glyphs?
Behdad Esfahbod [Tue, 4 Sep 2018 00:33:34 +0000 (17:33 -0700)]
[subset] Wire up subset() call down to subtables
Behdad Esfahbod [Tue, 4 Sep 2018 00:16:09 +0000 (17:16 -0700)]
Templatize Lookup::sanitize()
Behdad Esfahbod [Mon, 3 Sep 2018 23:53:03 +0000 (16:53 -0700)]
[subset] More
Behdad Esfahbod [Mon, 3 Sep 2018 23:41:28 +0000 (16:41 -0700)]
Templatize GSUBGPOS::sanitize()
Behdad Esfahbod [Mon, 3 Sep 2018 23:37:17 +0000 (16:37 -0700)]
[subset] Fix serialize_subset() calls
Ouch.
Behdad Esfahbod [Mon, 3 Sep 2018 02:47:50 +0000 (19:47 -0700)]
Add intersects() method to GSUB/GPOS lookups
Behdad Esfahbod [Mon, 3 Sep 2018 00:00:27 +0000 (17:00 -0700)]
[subset] Minor
Remove Lookup::subset().
Behdad Esfahbod [Sun, 2 Sep 2018 01:34:50 +0000 (18:34 -0700)]
[subset] Towards GSUB/GPOS subsetting
Add subset() call for GSUBGPOS struct and its dependencies.
Not hooked up anywhere.
Behdad Esfahbod [Sat, 1 Sep 2018 00:11:08 +0000 (17:11 -0700)]
[serialize] Add reset()
Behdad Esfahbod [Fri, 31 Aug 2018 23:46:35 +0000 (16:46 -0700)]
[subset] De-templatize hb_subset_context_t
We're going to (finally) use virtual methods for hb_serialize_context_t
customization, so don't need to carry a Serializer template variable
around... Simplifies code.
Behdad Esfahbod [Fri, 31 Aug 2018 23:38:04 +0000 (16:38 -0700)]
[serialize] Add a couple small methods
Behdad Esfahbod [Fri, 31 Aug 2018 23:31:00 +0000 (16:31 -0700)]
[subset] Add hb_subset_context_t<>
Michiharu Ariza [Fri, 31 Aug 2018 23:28:47 +0000 (16:28 -0700)]
templatized ArgStack as a prep to store blends
Michiharu Ariza [Fri, 31 Aug 2018 20:28:16 +0000 (13:28 -0700)]
drop hints from CFF1 charstrings
renamed confusing Stack.size to Stack.count
Behdad Esfahbod [Fri, 31 Aug 2018 20:25:19 +0000 (13:25 -0700)]
[subset] Add hb-subset-input.hh and make hb-subset.hh toplevel include
Behdad Esfahbod [Fri, 31 Aug 2018 20:00:57 +0000 (13:00 -0700)]
Minor
Michiharu Ariza [Fri, 31 Aug 2018 00:21:56 +0000 (17:21 -0700)]
Added drop_hints to SubrFlattener
Behdad Esfahbod [Thu, 30 Aug 2018 01:28:39 +0000 (18:28 -0700)]
Shuffle
Behdad Esfahbod [Thu, 30 Aug 2018 01:24:03 +0000 (18:24 -0700)]
[subset] Clean up hb_subset_input_t API
Michiharu Ariza [Thu, 30 Aug 2018 01:18:18 +0000 (18:18 -0700)]
CFF2 subroutine flattner
Factored out CFF1 & CFF2 common subsetting code in hb-subset-cff-common.hh
Behdad Esfahbod [Thu, 30 Aug 2018 01:13:07 +0000 (18:13 -0700)]
[subset] Bail if subsetting a table failed
Behdad Esfahbod [Thu, 30 Aug 2018 01:09:55 +0000 (18:09 -0700)]
[subset] Remove unused hb_subset_profile_t
We might reintroduce it later, but for now remove, as it was unused.
Some things that should have been in this object (drop_hints, etc)
are already in hb_subset_input_t. So, for now, keep everything there.
Behdad Esfahbod [Wed, 29 Aug 2018 23:38:04 +0000 (16:38 -0700)]
[ot-font] Clean up cmap with gid=0
Fixes https://github.com/harfbuzz/harfbuzz/issues/1145
Ross Burton [Wed, 29 Aug 2018 21:37:39 +0000 (22:37 +0100)]
Delete pkg.m4
pkg.m4 is provided by pkg-config, which is a requirement to build, and this copy is ancient. Delete it to avoid it being used instead of the host copy.
Michiharu Ariza [Wed, 29 Aug 2018 21:41:52 +0000 (14:41 -0700)]
fix build attempt ^2
Michiharu Ariza [Wed, 29 Aug 2018 20:36:39 +0000 (13:36 -0700)]
corrected preprocessor guards
Michiharu Ariza [Wed, 29 Aug 2018 20:26:17 +0000 (13:26 -0700)]
Merge branch 'master' into cff-subset
Renamed cff "private" source/headers without the suffix
Michiharu Ariza [Wed, 29 Aug 2018 19:56:48 +0000 (12:56 -0700)]
attempt to fix build failure
Michiharu Ariza [Wed, 29 Aug 2018 19:14:30 +0000 (12:14 -0700)]
Subroutine flattener for CFF1
Subr-flattened charstrings are temporarily re-encoded in ByteStrBuff during "plan" phase, then copied to hb_serialize_context_t during "write" phase
CSOpSet may callback opcode processing "virtual" functions via CRTP
Numer struct may store a value as fixed optionally in addition to int and float
Behdad Esfahbod [Wed, 29 Aug 2018 01:27:41 +0000 (18:27 -0700)]
Don't declare extern symbols as inline
clang -O3 was completely removing _get_gdef(), causing link
failure when needed from another compilation unit. Surprisingly,
"extern inline" didn't fix it.
Behdad Esfahbod [Wed, 29 Aug 2018 01:18:02 +0000 (18:18 -0700)]
Add explicit to hb_auto_t 1param constructors
Behdad Esfahbod [Wed, 29 Aug 2018 00:22:38 +0000 (17:22 -0700)]
Fix distcheck
Behdad Esfahbod [Tue, 28 Aug 2018 18:02:00 +0000 (11:02 -0700)]
Explicitly pass reference in hb_auto_t constructor
Fixes clang bots as well as fuzzer issue.
Behdad Esfahbod [Sun, 26 Aug 2018 22:18:46 +0000 (15:18 -0700)]
[ot-face] Remove tables_t. The face_data_t is what tables_t was
Behdad Esfahbod [Sun, 26 Aug 2018 22:11:24 +0000 (15:11 -0700)]
Free up hb-ot-face.hh from includes
There might be a better way to do this, but I couldn't find...