Commit Graph

5822 Commits

Author SHA1 Message Date
Behdad Esfahbod cf203af8a3 Implement space fallback in vertical direction
Fixes https://github.com/harfbuzz/harfbuzz/issues/1343
2018-10-31 18:27:09 -07:00
Behdad Esfahbod e01250230b [hmtx/vmtx] Fix a crasher 2018-10-31 18:14:00 -07:00
Behdad Esfahbod 36e90ef56e [mort] Massage some more 2018-10-31 15:09:09 -07:00
Behdad Esfahbod cbaff4ef19 [mort] Some more 2018-10-31 15:06:12 -07:00
Behdad Esfahbod 3087046d31 [mort] Refactor offset-to-index mapping 2018-10-31 14:59:14 -07:00
Behdad Esfahbod b9db610add Minor 2018-10-31 14:22:31 -07:00
Behdad Esfahbod 995bf6c6f8 [sbix] Rely on blob->as<> checking size against Type::min_size 2018-10-31 13:21:33 -07:00
Behdad Esfahbod 4d4e526b5c Improve blob->as<>
It's true that blob->as<> should only be called on null or sanitized
data.  But this change is safe, so keep it.
2018-10-31 13:19:42 -07:00
Behdad Esfahbod 5854d3fa25 [set] Warning fix with gcc 8.1
https://github.com/harfbuzz/harfbuzz/pull/1334
2018-10-31 10:42:49 -07:00
Ebrahim Byagowi 850a7af3a4
[ot-color-test] Remove the non-working exact strike size storing (#1339) 2018-10-31 14:20:23 +03:30
Ebrahim Byagowi 2e639c47c9
[aat] Fix older compilers by not referencing enum directly (#1340) 2018-10-31 14:20:14 +03:30
Ebrahim Byagowi 642c9dcf1b
[aat] Minor, remove extra semicolons 2018-10-31 14:02:37 +03:30
Behdad Esfahbod c962d5e714 [mort] Make ligatures work
./hb-shape Apple_Chancery_10_12.ttf  "Th th ll te to tr fr fu fj"
[T_h=0+2308|space=2+569|t_h=3+1687|space=5+569|l_l=6+1108|space=8+569|t_e=9+1408|space=11+569|t_o=12+1531|space=14+569|t_r=15+1385|space=17+569|f_r=18+1432|space=20+569|f_u=21+1733|space=23+569|f_j=24+1098]

Part of https://github.com/harfbuzz/harfbuzz/issues/1331
2018-10-31 01:18:21 -07:00
Behdad Esfahbod c077989600 [mort] More Ligature work 2018-10-31 00:36:03 -07:00
Behdad Esfahbod 431c6e496b [mort] Some Ligature work 2018-10-31 00:15:00 -07:00
Behdad Esfahbod 28b68cffe4 [mort] Implement / adjust Contextual substitution 2018-10-30 23:54:29 -07:00
Behdad Esfahbod 11dbf0f129 [mort] More fixes] 2018-10-30 21:49:59 -07:00
Behdad Esfahbod e1552af95b [maxp] Minor 2018-10-30 21:09:05 -07:00
Behdad Esfahbod 0cf282a32e [mort] Grind some more 2018-10-30 20:52:12 -07:00
Behdad Esfahbod 90667b31bc [mort] Hook up more 2018-10-30 20:15:28 -07:00
Behdad Esfahbod 9346b1f158 [morx] Remove stale comment 2018-10-30 20:04:13 -07:00
Behdad Esfahbod f864ef215e [mort] More massaging towards mort 2018-10-30 19:42:21 -07:00
Behdad Esfahbod 2d9467340b [mort] Fix version check in sanitize 2018-10-30 19:33:42 -07:00
Behdad Esfahbod c2527a1bc2 [mort] Make it compile / hook it up
Untested.
2018-10-30 19:26:39 -07:00
Behdad Esfahbod 933babdc07 [mort] Fixup on previous commit 2018-10-30 19:22:43 -07:00
Ebrahim Byagowi b053cabacd [mort] Bring back mort generalizations
Started by reverting https://github.com/harfbuzz/harfbuzz/commit/1f1c85a5

Just a starting point, if we agree even mort can come back.
2018-10-30 19:18:06 -07:00
Behdad Esfahbod 5cd544a621 Fix build
Fixes https://github.com/harfbuzz/harfbuzz/issues/1338
2018-10-30 19:16:00 -07:00
Behdad Esfahbod 1019391046 2.1.0 2018-10-30 15:52:26 -07:00
Behdad Esfahbod bfd549daaa Fix everything-bot 2018-10-30 14:47:27 -07:00
Garret Rieger 0e1ad5a075 [subset] Limit the number of scripts and langsys' that should be checked when collecting features. 2018-10-30 14:15:58 -07:00
Behdad Esfahbod a7aba99baa [name] Rename hb_name_id_t to hb_ot_name_id_t
https://github.com/harfbuzz/harfbuzz/pull/1254
2018-10-30 14:04:09 -07:00
Simon Tooke 881e1054bc fix various GCC function pointer warnings 2018-10-30 13:17:54 -07:00
Behdad Esfahbod dc9bd29fea [CBDT] Implement Format18 get_extens
Part of https://github.com/harfbuzz/harfbuzz/issues/1327
2018-10-30 13:16:07 -07:00
Behdad Esfahbod a2a7422aaf [CBDT] Bound checks in reference_png 2018-10-30 13:14:56 -07:00
Khaled Hosny 0af3d176a6 [sbix] Fix memory leak in early return
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11210
2018-10-30 17:05:28 +02:00
Behdad Esfahbod 138f9e0f25 Minor 2018-10-30 01:31:13 -07:00
Ebrahim Byagowi f7a08cd41d
Fix extra semicolon issues and test that on CI (#1330) 2018-10-30 11:29:09 +03:30
Behdad Esfahbod 7e998d193a Fix spurious warning re uninitialized use 2018-10-30 00:52:22 -07:00
Behdad Esfahbod b186274362 [set/map] Fix uninitialized memory
I keep forgetting that primitive types are NOT initialized during construction. :|
2018-10-29 23:21:14 -07:00
Behdad Esfahbod 4ef671f25f [unicode] Fix a long-standing double-declaration warning 2018-10-29 22:46:19 -07:00
Behdad Esfahbod 166ae8b0aa Remove now unused hb_auto_t<> 2018-10-29 22:40:37 -07:00
Behdad Esfahbod 56e0fd345c Remove last use of hb_auto_t<> 2018-10-29 22:35:44 -07:00
Behdad Esfahbod ca5e5a4979 Port Coverage::Iter off hb_auto_t<> 2018-10-29 22:30:21 -07:00
Behdad Esfahbod 3a4e5dd425 Remove a few unnecessary hb_auto_t<>'s
See a85641446c30247c4e948263f0f8c1147ed4efb9
2018-10-29 22:27:20 -07:00
Behdad Esfahbod 67a22f377d [set/map/vector] Make constructable, but not copy or assignable
Disable copy/assign on them, as they shouldn't.

Make constructor / destructor call init_shallow/fini_shallow,
and make those idempotent.  So, these three can be constructed
on stack now and no init/fini call is needed.  As such,
hb_auto_t<> is not needed anymore.  I'll remove that separately.
2018-10-29 22:23:22 -07:00
Behdad Esfahbod ea0e51d1b1 Add HB_NO_CREATE_COPY_ASSIGN 2018-10-29 16:00:23 -07:00
Behdad Esfahbod 5b563640b2 Remove HB_DISALLOW_COPY_AND_ASSIGN from hb_ot_shape_planner_t
It was arbitrary that this struct had it and not dozens of others.
2018-10-29 15:58:44 -07:00
Behdad Esfahbod 14b353c185 One more iteration 2018-10-29 15:29:13 -07:00
Behdad Esfahbod c7c5df9ffd Try fixing older bots
Older C++ doesn't allow struct-with-constructor in union.
2018-10-29 15:16:52 -07:00
Behdad Esfahbod be87959a67 [cmap] Minor 2018-10-29 15:16:38 -07:00
Behdad Esfahbod 35d410f2ba Remove ASSERT_POD
Newer compilers / language allows structs with constructor in union.
So, this was not actually testing anything.  Indeed, the recent
change in DISALLOW_COPY *is* making some of our types non-POD.
That broke some bots.

Just remove this since it wasn't doing much, and I'd rather have
DISALLOW_COPY.
2018-10-29 14:45:44 -07:00
Behdad Esfahbod 6f0454e176 Fix extra-semicolon warnings 2018-10-29 13:51:15 -07:00
Behdad Esfahbod a256a92b3f Make Array types uncopyable-unassignable
Finally!  Catches hard-to-find errors like this:

-    const SortedArrayOf<SVGDocumentIndexEntry> docs = this+svgDocEntries;
+    const SortedArrayOf<SVGDocumentIndexEntry> &docs = this+svgDocEntries;

We implement this for our array types.  This, in turn, trickles down
into all types that embed the arrays.  So, as long as we define all
open-ended structs in terms of Array types (all can be done using
UnsizedArrayOf), this achieves the goal of making uncopyable all
structs that are variable-sized.  Yay!
2018-10-29 11:40:21 -07:00
Behdad Esfahbod 31cc1f74b7 [svg] Minor 2018-10-29 11:14:37 -07:00
Behdad Esfahbod 1366bb9760 Fix g-i warnings 2018-10-29 11:01:25 -07:00
Ebrahim Byagowi ae802c2c6e
[test-ot-color] Minor 2018-10-29 13:42:14 +03:30
Ebrahim Byagowi 7170e35096
Rename deprecated symbols list file name and clean it up (#1328) 2018-10-29 13:11:01 +03:30
Ebrahim Byagowi 9c692e5b8d [test-ot-color] Use public APIs on the tool 2018-10-29 12:22:39 +03:30
Ebrahim Byagowi fb525f8943 Rename dump-emoji to test-ot-color 2018-10-29 11:40:06 +03:30
Ebrahim Byagowi 81bcf47e9e Revive dump-emoji 2018-10-29 11:40:06 +03:30
Ebrahim Byagowi f10252b4b6
[svg] Fix incorrect array referencing 2018-10-29 10:29:58 +03:30
Behdad Esfahbod 5eb251aab0 [cbdt] Implement strike selection logic 2018-10-28 23:16:13 -07:00
Behdad Esfahbod 98bddbc8ef [sbix] Minor 2018-10-28 23:14:15 -07:00
Behdad Esfahbod 8cffee0577 [cbdt] Simplify more 2018-10-28 23:07:59 -07:00
Behdad Esfahbod 574579d376 [color] Rename get_strike() to choose_strike() 2018-10-28 23:04:37 -07:00
Behdad Esfahbod e2ba96da4c [cbdt] Refactor get_strike() 2018-10-28 23:01:57 -07:00
Behdad Esfahbod 6983cca9c8 [cbdt] Minor 2018-10-28 22:46:18 -07:00
Behdad Esfahbod e998fb9fbf [color] Round extents when scaling 2018-10-28 22:45:53 -07:00
Ebrahim Byagowi c929ccfcea [ot-color/png] Consider strike ppem on scaling 2018-10-28 22:40:40 -07:00
Behdad Esfahbod a8c9facf7a [svg] Cosmetic 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 9c1460e568 [svg] Use SortedArrayOf.bsearch 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 18dd6363a5 [svg] Minor 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 4876c938a2 [sbix] Comment 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 519fca1014 [color] Minor 2018-10-28 18:33:10 -07:00
Behdad Esfahbod e8ff27c208 Minor 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 6562172381 [sbix] Use LOffsetLArrayOf<> 2018-10-28 18:33:10 -07:00
Behdad Esfahbod a3ddd8067f [sbix] Add get_strike 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 95524ed9bc [sbix] Remove sbix_len 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 69e9846452 [sbix] Fix get_glyph_blob() on Null object 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 4e0ee2af09 [sbix] Simplify ppem access
If struct members are simple and needed publicly, we make them public.
2018-10-28 18:33:10 -07:00
Behdad Esfahbod 6ac9a4eaa3 [sbix] Simplify glyph_length calc 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 0730d62385 [sbix] Check glyph data end is in range 2018-10-28 18:33:10 -07:00
Behdad Esfahbod b76dc03108 [sbix] Reduce code 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 50fb02a219 [sbix] Check glyph id before looking into unsafe array
That 'Z' at end of imageOffsetsZ is a reminder that you should check...
2018-10-28 18:33:10 -07:00
Behdad Esfahbod a8cb9c73da [sbix] Simplify 'dupe' handling logic 2018-10-28 18:33:10 -07:00
Behdad Esfahbod d7eb534e59 [sbix] Check offsets before proceeding 2018-10-28 18:33:10 -07:00
Behdad Esfahbod c8380bd3e4 [color] Remove more dump-emoji cruft 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 68f2c832c8 Remove dump-emoji 2018-10-28 18:33:10 -07:00
Behdad Esfahbod b46de42b3a [sbix] Fix order of parameters 2018-10-28 18:33:10 -07:00
Behdad Esfahbod a91cda72ab [sbix] Remove redundant parameter 2018-10-28 18:33:10 -07:00
Behdad Esfahbod c712005f55 [sbix] Add get_strike() 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 400bc3f030 [sbix] Remove a couple of extra checks 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 3770282c83 [sbix] Rename sbix_table to table in accelerator 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 7346841807 [cbdt] Rename reference_blob_for_glyph() to reference_png() 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 1f33b8525d [sbix] Rename ugly reference_blob_for_glyph() to reference_png() 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 946b534419 [sbix] Fix uninitialized variables 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 01c7d53fb7 [sbix] Select best strike based on ppem 2018-10-28 18:33:10 -07:00
Behdad Esfahbod f9f26bff4c [sbix] Move code around. Add get_extents() 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 48bc3039cb [sbix] Check blob length against PNG header leangth 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi d3ec31a57c [ot-color] More on PNGHeader fields 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi 35fa3d3260 [ot-color] Apply Behdad comment 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi 307d61867a [ot-color] Make PNGHeader reading actually work 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi 632e9af862 [ot-color] Implement PNGHeader and test it, it doesn't work however 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi 38706a0746 [ot-color] Preparation for setting PNG width/height in extents 2018-10-28 18:33:10 -07:00
Behdad Esfahbod d6d6f3bc22 [docs] Add comment 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi 3d4c1f6a41 [ot-color] Apply Behdad reviews 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi 8ef0d2ef92 [ot-color] Apply Behdad comment 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi dbd419bede [ot-color] Add public API for CBDT/sbix/SVG color Emojis 2018-10-28 18:33:10 -07:00
Behdad Esfahbod 6ce49a921a [name] Change hb_name_id_t back to unsigned int
d941f66c75 (commitcomment-31076011)
2018-10-28 08:26:30 -07:00
Behdad Esfahbod a4f4f5ba5f [docs] Fix titles here as well 2018-10-28 08:23:36 -07:00
Behdad Esfahbod 213b6dd335 [name] Make sure hb_name_id_t is int-sized
d941f66c75 (commitcomment-31068905)
2018-10-27 18:36:24 -07:00
Behdad Esfahbod 1d40d72f29 [docs] Hook up hb-var 2018-10-27 05:01:01 -07:00
Behdad Esfahbod 80d9a427cf [docs] Document remaining sections 2018-10-27 04:58:32 -07:00
Behdad Esfahbod cf5fa57f00 [docs] Change section titles again
I think I like the uniform "hb-*" more.
2018-10-27 04:51:42 -07:00
Behdad Esfahbod 04981ee05d [docs] More 2018-10-27 04:47:41 -07:00
Behdad Esfahbod 5dd86aa33b [docs] Rename section titles to object names
More useful.
2018-10-27 04:47:41 -07:00
Behdad Esfahbod 524fb70216 [docs] More 2018-10-27 04:47:41 -07:00
Behdad Esfahbod 46072b7cb5 [ot] Fold hb-ot-tag.h into hb-ot-layout.h 2018-10-27 04:47:41 -07:00
Behdad Esfahbod 00cf4e5eb6 [docs] Fill in some sections 2018-10-27 04:47:41 -07:00
Behdad Esfahbod 55a19d73b4 Move HB_EXTERN 2018-10-27 04:47:41 -07:00
Ebrahim Byagowi 524e854c15
Merge pull request #1318 from ebraminio/png
Add a non-hooked _png _svg get emoji blob
2018-10-27 15:04:43 +03:30
Ebrahim Byagowi 8180c37df0 [ot-color] Remove _png and _svg public APIs 2018-10-27 14:54:08 +03:30
Ebrahim Byagowi 9aa6279a2d [ot-color/png] Try to get image blob from sbix first options.aat is set 2018-10-27 14:24:58 +03:30
Ebrahim Byagowi b42661ee91 [ot-color] Add some documentation 2018-10-27 14:15:38 +03:30
Behdad Esfahbod 4ee3c8272c [docs] Fix hb_name_id_t
Yep, was not recognized without this patch!
2018-10-27 03:18:45 -07:00
Ebrahim Byagowi 9435fb24da [ot-color/png] Implement CBDT part 2018-10-27 13:47:11 +03:30
Behdad Esfahbod d941f66c75 [name] Make hb_name_id_t be the enum
This is like hb_script_t.

We had this exposed as unsigned int since 2.0.0 release in two APIs,
as well as hb_ot_layout_get_size_params() from earlier.
But since no one uses those (right?!), let's just fix this now.
2018-10-27 03:06:14 -07:00
Behdad Esfahbod 40496a54a0 [name] Move HB_NAME_ID_INVALID into the enum
Don't know how to document anonymous enum members.
2018-10-27 03:06:14 -07:00
Behdad Esfahbod a8a55b9f89 [name] Move around 2018-10-27 03:06:14 -07:00
Behdad Esfahbod 3b7e5f1313 [name] Rename hb_ot_name_get_names() to hb_ot_name_list_names()
And swap return value positions, so can be annotated for gobject-introspectin.
2018-10-27 03:06:14 -07:00
Behdad Esfahbod 4025ad8043 Document new API 2018-10-27 03:06:14 -07:00
Ebrahim Byagowi 5e2a52f71a [sbix] Remove dump method from sbix accelerator 2018-10-27 12:44:33 +03:30
Ebrahim Byagowi 0353ac6cde
Fix test-name-table on older bots 2018-10-27 12:24:53 +03:30
Ebrahim Byagowi dc11a38107
[sbix] Set num_glyphs on accelerator
dump-emoji was broken without it
2018-10-27 12:15:25 +03:30
Ebrahim Byagowi 6a38fd68a8 [ot-color/png] sbix runtime memory check 2018-10-27 11:17:27 +03:30
Behdad Esfahbod ca645accb9 Comment 2018-10-27 00:39:31 -07:00
Ebrahim Byagowi 265ad408ca [ot-color/png] Implement sbix part 2018-10-27 10:43:46 +03:30
Behdad Esfahbod 7f5941e162 Remove stale comment
Ugliness was fixed in 30eab97a00
But yeah, my smell detector was working.  Ugliness was buggy.
2018-10-27 00:06:48 -07:00
Behdad Esfahbod e7400c0275 [docs] Hook up new symbols 2018-10-26 22:24:40 -07:00
Behdad Esfahbod 6aa019c4af [morx] Fix merge_cluster to end at last ligature component
Don't assume current position was a component in the ligature.
2018-10-26 22:02:17 -07:00
Behdad Esfahbod 00ae4be6bf [morx] Fix bailing out ligation at end-of-text
Check was after a move_to, which wouldn't work.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11147
2018-10-26 21:59:20 -07:00
Behdad Esfahbod 30eab97a00 Fix invalid memory read
Buffer might be relocated inside replace_glyphs().

Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=895117
2018-10-26 21:54:40 -07:00
Behdad Esfahbod 79b2fa62ca [indic] Fix infinite loop
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=863044
2018-10-26 21:22:26 -07:00
Behdad Esfahbod 39bd07aed5 Fix bunch of unused parameter warnings
Show up with gcc -O0.

There's a few more but those are functions that need to be filled in.

Maybe this is a lost battle...
2018-10-26 21:22:26 -07:00
Behdad Esfahbod b2e1ec374c [subset] Fix warning 2018-10-26 21:22:26 -07:00
Behdad Esfahbod 337ea0b717 [fuzzing] Remove HB_NDEBUG
Not sure why it ever was added.
2018-10-26 21:22:26 -07:00
Behdad Esfahbod c965eeadbc [name] Default to "en" if language is not specified 2018-10-26 21:22:26 -07:00
Behdad Esfahbod 3fd6e5dbef [name] Add pre-defined nameIDs 2018-10-26 21:22:26 -07:00
Behdad Esfahbod 20d0171d20 [name] Fill out most missing language codes 2018-10-26 21:22:26 -07:00
Behdad Esfahbod 622b014faf [name] Skip enumerating names with unknown language 2018-10-26 21:22:26 -07:00