Commit Graph

11950 Commits

Author SHA1 Message Date
Khaled Hosny 13187d29ef [ci] Drop macOS job using deprecated XCode image 2021-07-12 14:05:40 -07:00
Behdad Esfahbod 69310f14a6 [buffer] Change nil buffer have_output to false
Seems like a historical artefact that it was true.
2021-07-09 16:45:55 -07:00
Behdad Esfahbod 40884af17e [ot-layout] Narrow down random feature logic vs safe-to-break 2021-07-09 16:34:08 -07:00
Behdad Esfahbod 33b579d0ad [ot-layout] Clear random flag for subsequent flags
Ouch!
2021-07-09 16:34:08 -07:00
Behdad Esfahbod 29c9833e57 Remove Offset::serialize()
Finishing https://github.com/harfbuzz/harfbuzz/pull/2355
2021-07-09 11:58:36 -06:00
Khaled Hosny 63e15eac4f 2.8.2 2021-07-08 23:02:49 +02:00
Caleb Maclennan eee36bbea3 [releasing] Format notes as Markdown checklist for pasting in GH PR/Issue 2021-07-08 11:32:24 -07:00
Caleb Maclennan eda5dcdb3e [releasing] Drop obsolete release process items 2021-07-08 11:32:24 -07:00
Behdad Esfahbod 2337f0d047 Internally use hb_malloc/.../hb_free instead of malloc/.../free
Redefining those stock names as macros was conflicting with gcc 10
headers.

Fixes https://github.com/harfbuzz/harfbuzz/issues/3044
2021-07-08 10:54:09 -07:00
Behdad Esfahbod bb48bf52a4 Rename misc uses of "free"
In preparation for fixing https://github.com/harfbuzz/harfbuzz/issues/3044
2021-07-08 10:54:09 -07:00
Qunxin Liu 7416faceeb [subset] fuzzer fix: https://oss-fuzz.com/testcase-detail/5715464591376384 2021-07-08 09:09:30 -07:00
Khaled Hosny 895acdf7c7 [ci] Don’t build Cairo subproject with FontConfig on win32 cross-build
We don’t need it and it breaks the build because FontConfig renamed its
master branch and the released version of Cairo wants to build
FontConfig from master branch.
2021-07-06 14:13:37 +02:00
Garret Rieger 0da9158f62 [subset] Remove OffsetTo::serialize().
Convert remaining uses of it to serialize_serialize() which correctly uses the object packer.
2021-06-30 14:05:48 -07:00
Behdad Esfahbod 0969614865 [ot-shape] Rewrite loop without foreach_grapheme()
We were not using the graphemes, and that's costlier than just for().
2021-06-26 08:52:53 -06:00
Qunxin Liu eee7b459ee [subset] add option --no-prune-unicode-ranges 2021-06-24 11:44:20 -07:00
Khaled Hosny c3be28ea26 [ot-shape] Numeric runs native direction is LTR
See inline comments. Slightly modified version of the code from Jonathan
Kew on the linked issue.

Fixes https://github.com/harfbuzz/harfbuzz/issues/501
2021-06-23 13:11:27 -07:00
Khaled Hosny 71a6296620 [tests] Make record-test.sh work with .otf files
It hard-codes the file extension, but fonttools sunset will use .otf for
CFF fonts, so hard-code the output file from subset as well.
2021-06-23 13:11:27 -07:00
Behdad Esfahbod cc9bb29491 [blob] Fix-up recent mistake in hb_blob_create() destroy(user_data)
https://github.com/harfbuzz/harfbuzz/pull/3026#discussion_r653437491
2021-06-20 18:47:03 -06:00
Garret Rieger bc06af977f [subset] speed up feature collection when tags are specified.
Precompute a feature index filter to avoid needing to iterate the feature tag list for each encountered feature index. For this particular fuzzer case speeds up feature collection from 50s to 2s.
2021-06-20 17:45:19 -07:00
Khaled Hosny 14f220b761 [directwrite] Support feature ranges
Code copied from hb-uniscribe.cc and adapted to use DirectWrite types.
May be there is a better way to de-duplicate the code, though I'm not
exactly sure how or if it is worth it.
2021-06-20 17:22:27 -07:00
Garret Rieger d2397d91f3 [subset] Add additional colrv1 subsetting tests that has a glyph with components. 2021-06-18 22:34:00 -07:00
Garret Rieger 26c80adb61 [subset] do colrv1 glyph closure before glyf composite closure. 2021-06-18 22:34:00 -07:00
Qunxin Liu d07f789ae3 [subset] support option "--notdef-outline" 2021-06-18 15:35:02 -07:00
Garret Rieger 10ad185932 [subset] add comment to copy_bytes(). 2021-06-16 17:35:39 -06:00
Garret Rieger 675ebbeb3a [subset] don't alloc zero bytes.
It will be leaked later since hb_blob_create() won't set up the blob to cleanup since it has length zero.
2021-06-16 17:35:39 -06:00
Behdad Esfahbod 93e6a9bc4e Revert "Remove unneeded buffer clear_output / remove_output calls"
This reverts commit 06175b7143.

One of the sanitizers is failing. Pushing again as PR to debug.
I have suspicions.
2021-06-15 15:38:49 -06:00
Behdad Esfahbod 06175b7143 Remove unneeded buffer clear_output / remove_output calls
Made sure clear_output is always paired with swap_buffers.
Trying to see if we can move towards RAII-like buffer iterators
instead of the buffer keeping an iterator internally.
2021-06-15 14:33:27 -06:00
Behdad Esfahbod bdfed8f113 [blob] Add failing versions of create API
Fixes https://github.com/harfbuzz/harfbuzz/issues/2567

New API:
+hb_blob_create_or_fail()
+hb_blob_create_from_file_or_fail()

Use these in util/ to distinguish empty file from not-found file.
Only err on the latter.
2021-06-15 13:56:30 -06:00
Behdad Esfahbod 2fc8d0e6f0
Merge pull request #3020 from googlefonts/serialize_serialize
[subset] Always serialize objects point to by OffsetTo to a new serializer object.
2021-06-15 12:56:17 -07:00
Garret Rieger 085aa65e09 [subset] Convert offset serialization in gsubgpos and gdef to serialize_serialize(). 2021-06-14 16:47:45 -07:00
Garret Rieger cc96c4e87e [shaping] Update shaping substituion lookup serialization to use serializer pop()/pack(). 2021-06-14 16:43:23 -07:00
Behdad Esfahbod d3dd936309 [coretext] Round position info
Test:

Before:
$ ./hb-shape /System/Library/Fonts/ヒラギノ丸ゴ\ ProN\ W4.ttc 1 --features="+palt" --shaper=coretext
[gid781=0@-78,0+841]
$ ./hb-shape /System/Library/Fonts/ヒラギノ丸ゴ\ ProN\ W4.ttc 1 --features="+palt" --shaper=ot
[gid781=0@-78,0+842]

After:
$ ./hb-shape /System/Library/Fonts/ヒラギノ丸ゴ\ ProN\ W4.ttc 1 --features="+palt" --shaper=coretext
[gid781=0@-78,0+842]
$ ./hb-shape /System/Library/Fonts/ヒラギノ丸ゴ\ ProN\ W4.ttc 1 --features="+palt" --shaper=ot
[gid781=0@-78,0+842]

I've verified in the font that 842 is correct.
2021-06-14 13:24:23 -07:00
Garret Rieger 8443cc85cb [subset] Correct OffsetTo serialization in GPOS to use serialize_serialize (). 2021-06-14 12:18:06 -07:00
Garret Rieger 5ba46ed067 [subset] Correct OffsetTo serialization in GSUB to use serialize_serialize (). 2021-06-14 12:18:06 -07:00
Garret Rieger 35458b6b66 [subset] Add serialize_serialize to OffsetTo.
Similar to serialize_subset() this will serialize the new object and then link it to the offset.
2021-06-14 12:18:06 -07:00
Behdad Esfahbod 2b0ced28b6 Cluster Regional_Indicator pairs (aka emoji flags)
Fixes https://github.com/harfbuzz/harfbuzz/issues/2265
2021-06-14 06:34:58 -07:00
Behdad Esfahbod 4e72d5e35d [src/check-static-init] Ignore objdump "file format not recognized" error
Fixes https://github.com/harfbuzz/harfbuzz/issues/3019
2021-06-13 05:46:17 -06:00
Behdad Esfahbod 5bc05ba155 Prefer GPOS over kerx, if GSUB was applied
Fixes https://github.com/harfbuzz/harfbuzz/issues/3008
2021-06-13 05:28:20 -06:00
Behdad Esfahbod 13c6ad980f [src/check-*] Pickup $(NM), $(OBJDUMP), $(LDD), $(OTOOL)
Fixes https://github.com/harfbuzz/harfbuzz/issues/3019
2021-06-12 10:13:49 -07:00
Behdad Esfahbod c61ce962cf [buffer] In hb_buffer_get_positions(), return NULL if inside message callback
As discussed in https://github.com/harfbuzz/harfbuzz/issues/2468#issuecomment-645666066

Part of fixing https://github.com/harfbuzz/harfbuzz/issues/2468
2021-06-10 17:36:38 -06:00
Behdad Esfahbod 855a3f478e [emoji] Fix emoji table generation
Previously, the last of each range having Extended_Pictograph property
was not processed as so. Ouch!

Test:

$ echo x > null; hb-shape null -u U+1f43b,U+200d,U+2744,U+fe0f

Before:
[gid0=0+1000|gid0=2+1000]

After:
[gid0=0+1000|gid0=0+1000]

Caught by https://github.com/harfbuzz/harfbuzz/issues/3017
2021-06-09 15:10:52 -06:00
Behdad Esfahbod bd5502f09f [set] Oops. Fix compile 2021-06-09 14:03:25 -06:00
Behdad Esfahbod 3962225a72 [set] Add hb_set_copy()
Fixes https://github.com/harfbuzz/harfbuzz/issues/3016
2021-06-09 14:02:31 -06:00
Behdad Esfahbod bc33b87f5e [set] Use references, not pointers, in internal C++ API 2021-06-09 11:54:12 -06:00
Behdad Esfahbod 9cfac093aa [set] Add copy constructor/assignment 2021-06-09 11:43:35 -06:00
Behdad Esfahbod a83b9b0fec
Merge pull request #3011 from harfbuzz/directwrite-cleanup
Some directwrite cleanups
2021-06-07 16:41:27 -07:00
Khaled Hosny 4811e8f5d7 Trigger doc rebuild 2021-06-07 10:54:36 +02:00
Khaled Hosny 09a2eb65d7 Revert "Temporarily always push the docs commit"
This reverts commit 6612fd39ae.
2021-06-07 10:52:27 +02:00
Khaled Hosny 6612fd39ae Temporarily always push the docs commit 2021-06-07 10:36:29 +02:00
Khaled Hosny b39b047505 Try to fix doc deployment
https://github.com/harfbuzz/harfbuzz.github.io/issues/4

From CI logs at https://github.com/harfbuzz/harfbuzz/runs/2758234200:

+ git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>

We want the branch too be main not master.
2021-06-07 10:29:04 +02:00