src/hb-serialize.hh


Log

Author Commit Date CI Message
Qunxin Liu a35757c6 2022-02-02T10:30:34 [repacker] expose hb_subset_repack() API, hb_object_t and hb_link_t structs
luz paz e2e30506 2022-01-16T07:00:53 Fix various typos Found via `codespell -q 3 -S ./perf/texts -L actualy,ba,beng,fo,gir,inout,nd,ot,pres,ro,te,teh,timne`
Behdad Esfahbod 8a69e006 2022-01-13T16:17:34 [meta] Use std::addressof() instead of hb_addressof()
Garret Rieger 39e76af1 2021-11-30T15:25:40 [subset] add all_links () to object_t. Helper to provide easy access to concatenated real and virtual links iterator.
Garret Rieger 9121ed0c 2021-11-30T13:45:22 [subset] Improve sharing of Ligature subtables. Ligature subtables use virtual links to enforce an ordering constraint between the subtables and the coverage table. Unfortunately this has the sideeffect of prevent the subtables from being shared by another Ligature with a different coverage table since object equality compares all links real and virtual. This change makes virtual links stored separately from real links and updates the equality check to only check real links. If an object is de-duped any virtual links it has are merged into the object that replaces it.
Behdad Esfahbod 394f7729 2021-11-19T11:49:23 [map] Allow storing classes in the hashmap Fixes https://github.com/harfbuzz/harfbuzz/issues/3293 The trick was to change the type of the invalid key/value to be non-class.
Garret Rieger 9643d770 2021-09-24T11:39:59 [repacker] add more detailed comment about virtual links.
Garret Rieger 5bfc7d10 2021-09-23T14:45:20 [repacker] remove VirtualOffset struct. Make and add_virtual_link () specialization of add_link() instead.
Garret Rieger bc4c5341 2021-09-23T14:41:42 [repacker] Add test for virtual links in the repacker.
Garret Rieger 7615b94e 2021-09-23T14:14:06 [repacker] add 'virtual links' to the serializer. These aren't associated with an offset field, but instead exist solely to add an ordering constraint to the object graph.
Behdad Esfahbod 943921cf 2021-11-02T00:26:46 [meta] Use more std type_traits
Behdad Esfahbod 6d555ce8 2021-11-02T00:18:22 [meta] Use std::forward instead of hb_forward()
Garret Rieger 2bd911b8 2021-08-26T14:32:17 [subset] handle cmap4 overflows. If a cmap4 subtable overflows during serialization drop it and the corresponding EncodingRecord. Don't drop the corresponding cmap12 table if it would have otherwise been removed.
Behdad Esfahbod 087e2705 2021-07-28T11:42:31 Fix signed-ness error in 0ded6a70c829284a8220ce30a405b0a974061df4
Behdad Esfahbod 0ded6a70 2021-07-28T11:28:38 [subset] Fix another fuzzer issue Addition could overflow on 32bit arch. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36636 Fixes https://oss-fuzz.com/testcase-detail/5072358514753536
Behdad Esfahbod 7b8464b6 2021-07-27T13:15:07 [serialize] Check for overflow in allocate_size() If size was > INT_MAX, then the out-of-room check was failing to perform as intended. Part of fixing https://oss-fuzz.com/testcase-detail/5362189182566400
Behdad Esfahbod 2337f0d0 2021-07-08T10:58:50 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
Behdad Esfahbod bb48bf52 2021-07-08T10:53:45 Rename misc uses of "free" In preparation for fixing https://github.com/harfbuzz/harfbuzz/issues/3044
Garret Rieger 10ad1859 2021-06-16T16:34:46 [subset] add comment to copy_bytes().
Garret Rieger 675ebbeb 2021-06-16T10:40:46 [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.
Qunxin Liu b23f29bf 2021-04-17T09:59:45 [subset] Add subset () method for COLRv1 Paint tables, BaseGlyphV1List and LayerV1List Also add support for Offset24 in serializer and repacker
Garret Rieger 9a3537e5 2021-03-29T14:34:24 [subset] invert err() return value. Undo previous change to check_success.
Garret Rieger cdba5d44 2021-03-29T14:23:59 [subset] fix incorrect handling of return value in check_success in the error case.
Garret Rieger 46bf03d6 2021-03-18T14:35:36 [subset] add NODISCARD to error checking methods on serializer.
Garret Rieger 3827a3eb 2021-03-18T11:20:03 [subset] rename serializer::set_error() to err().
Garret Rieger b14475d2 2021-03-18T10:51:26 [subset] further changes to serializer error handling. - Rename enum type and enum members. - in_errors() now returns true for any error having been set. hb-subset now looks for offset overflow only errors to divert to repacker. - Added INT_OVERFLOW and ARRAY_OVERFLOW enum values.
Garret Rieger 73ed59f7 2021-03-17T15:53:10 [subset] store errors in the serializer as a flag set. Make check_assign/check_equal specify the type of error to set.
Garret Rieger b9ecc742 2021-02-16T13:39:10 [subset] init offset_overflow in hb_serialize_context_t.
Garret Rieger 832f2b59 2020-11-10T16:15:37 [subset] Refactor _subset () to reduce nesting and eliminate the use of 'goto'.
Garret Rieger 6b1ea4cb 2020-10-30T12:16:26 [subset] hook up the repacker to run if offset overflows are encountered during subsetting.
Garret Rieger 1584d3cb 2020-10-28T17:49:09 [subset] Start a proof of concept implementation of the GSUB/GPOS offset overflow resolver.
Behdad Esfahbod e5b7bc42 2020-06-29T01:24:02 m Add default value to BEInt<> Size template parameter
Behdad Esfahbod dfa9d7ac 2021-02-11T11:08:52 [minor] Use serializer->propagate_error() to simplify code
Garret Rieger 6f754852 2020-08-11T15:40:47 [ENOMEM] skip asserts in to_bias if serializer is in an error state.
Garret Rieger 040ed094 2020-07-30T15:14:02 [ENOMEM] popragate packed/packed_map errors to the serializer. Will disable further modifications based on a bad state.
Garret Rieger 4cbc7d61 2020-07-30T12:20:31 [ENOMEM] check for unset current in serializer->length().
Garret Rieger 15644ee6 2020-07-29T16:37:39 [ENOMEM] fix memory leak if allocation fails during pop_pack().
Garret Rieger 42237adf 2020-07-29T15:18:25 [ENOMEM] make serializer modification operations no-ops if it's in an error state.
Behdad Esfahbod 2cc85281 2020-04-18T16:29:32 [serializer] Make snapshot()/revert() revert current object links Fixes https://github.com/harfbuzz/harfbuzz/issues/2325
ariza 65f41363 2020-04-01T19:49:18 minor; fixes #2292
ariza 188a0a47 2020-03-07T11:02:36 removed default base; replaced w/ bias if required
blueshade7 4c3af7d4 2020-03-05T15:40:44 add "add_link()" with bias arg issue #2227
ariza 6120f50c 2020-02-19T13:55:39 fix Head with link.bias
ariza e65bff09 2020-02-19T13:38:04 workaround whence_t as bit-field
ariza 1aed6d22 2020-02-19T13:20:29 fix whence=Head; position as 28 bits
ariza 4ca8e0d9 2020-02-19T12:52:18 re-implement Tail; rewrote name table with it
ariza c1313e4b 2020-02-17T17:33:18 minor: undid unintended change
ariza 9c65680b 2020-02-17T16:59:45 rename enums to avoid conflict on win
ariza 555f6f1d 2020-02-17T16:29:40 merge add_link_abs() into add_link()
ariza 017cd945 2020-02-06T16:11:58 added add_link_abs()
ariza 65858463 2020-02-16T17:16:29 pop_pack(share=false) in end_serialize() issue #2177
Michiharu Ariza 39fb57c0 2020-02-16T08:38:41 add share option to pop_pack() (#2176) as a solution for #2164
Behdad Esfahbod d663e28a 2020-02-12T15:41:21 [serialize] Catch signedness overflows in check_assign() Should address https://github.com/harfbuzz/harfbuzz/pull/2163#pullrequestreview-355137936
Ebrahim Byagowi 486754a8 2019-09-23T23:48:08 [serialize] Extract iterable copy, copy_all
Ebrahim Byagowi 22b6c6a5 2019-09-24T12:06:28 [serialize] use for each as #resolve_links, format
Qunxin Liu 512551f2 2019-09-23T17:28:16 memory leak fix in serializer (#1988)
Behdad Esfahbod 1c56b5d1 2019-06-17T14:23:04 [serialize] Fix copy() calling operator= https://github.com/googlefonts/harfbuzz/commit/9f610ae239a11e86f94621e26bc15849b65ce41b#commitcomment-33944686
Behdad Esfahbod e8b45c19 2019-05-08T16:37:38 [array] Add .copy()
Behdad Esfahbod 83e3eabd 2019-05-07T20:58:43 Whitespace
Behdad Esfahbod 5c0f62ad 2019-05-07T17:23:46 [serializer] Accept pointer & reference in more methods
Behdad Esfahbod 839618de 2019-05-07T17:21:27 [serializer] Minor
Behdad Esfahbod fa8c4ba8 2019-05-07T14:26:03 Minor
Behdad Esfahbod 52f6c04c 2019-05-07T13:45:48 Minor
Behdad Esfahbod 2eb7e0e0 2019-05-07T12:45:38 [serialize] Minor
Behdad Esfahbod 1c81cff2 2019-05-07T11:51:10 Fix signed-comparison error on 32bit
Behdad Esfahbod e6a622b5 2019-05-07T11:06:43 [serialize] Enable bias assertion
Behdad Esfahbod 530ddbbc 2019-05-07T11:05:51 [serialize] Use range-based loop
Behdad Esfahbod 240f57e5 2019-05-06T23:17:39 Rename hb_deref_pointer() to hb_deref()
Behdad Esfahbod 431b6e1c 2019-05-02T16:22:32 [serialize] Disable assertion for now
Behdad Esfahbod 8a32c9ee 2019-05-02T16:20:18 [serialize] Misc getting copy() to work
Behdad Esfahbod 91176d5b 2019-05-02T15:12:07 [serialize] Check offset base is within (possibly end of) object
Behdad Esfahbod 998b0b68 2019-05-02T14:39:52 [serializer] Add copy() to (Unsized)ArrayOf
Behdad Esfahbod 88fdeeec 2019-05-02T14:14:33 [serialize] Take arguments in copy()
Behdad Esfahbod 6cc9707c 2019-04-24T10:22:06 [serialize] Rename
Behdad Esfahbod 915b9ea5 2019-04-24T10:07:19 [serialize] Add c->check_assign() To check for assignment overflows.
Behdad Esfahbod 441cca23 2019-04-23T23:49:21 Use hb_forward() when forwarding parameter pack
Behdad Esfahbod 9c724e48 2019-04-22T15:37:10 [serializer] Add err_propagaged_error()
Behdad Esfahbod 24da1d08 2019-04-22T15:20:25 Use variadic template args for propagate_error() Let's see if bots happy. Not sure where else we can use these. Mm. Maybe in hb_invoke().
Behdad Esfahbod 9bab3984 2019-04-22T15:16:35 Simplify propagate_error()
Behdad Esfahbod 693d91cd 2019-04-17T17:59:39 [serialize] Fix offset calculation
Behdad Esfahbod db0c9a14 2019-04-17T17:58:13 [subset] Assert offsets are zero during relocation If they're not, it's a bug in our subsetting logic somewhere. So check.
Behdad Esfahbod efbba7ad 2019-04-17T11:00:08 [serializer] Add copy() Calls obj.copy() or obj.operator=() in that order.
Behdad Esfahbod 7b863142 2019-04-03T15:48:27 [serialize] Make putting breakpoint on out-of-memory easier
Behdad Esfahbod 6215fb8e 2019-04-02T23:10:03 [serialize] Actually reclaim storage from duplicate objects
Behdad Esfahbod 3305a2ca 2019-04-02T22:42:22 [serialize] Port to use object pool Tested, but feels fragile :(.
Behdad Esfahbod 8e4df1a1 2019-04-02T20:20:53 [serialize] Disable packed_map again Ugh. Need to think of something else.
Behdad Esfahbod 5b66b033 2019-04-02T19:27:02 [serialize] Fix hb_hashmap_t<> for pointers and use in packed_map
Behdad Esfahbod fc24bb90 2019-04-02T17:49:52 [serialize] Towards maintaining packed_map
Behdad Esfahbod e04518ba 2019-04-02T17:20:04 [serialize] Movce empty-object handling earlier
Behdad Esfahbod 5a3de4f4 2019-04-02T16:53:05 [serialize] Allow offset links that have base offset from the object base Rarely used, but used, in name table or similar constructs.
Behdad Esfahbod f0ea3ac1 2019-04-01T21:36:03 [serialize] Fix linking
Behdad Esfahbod 7c0e2054 2019-04-01T21:32:29 [serialize] Minor
Behdad Esfahbod abe33c61 2019-04-01T16:45:40 [serialize] Assert stack
Behdad Esfahbod 72e9b2c1 2019-04-01T16:17:30 [serialize] Add add_link() to add link
Behdad Esfahbod 74addbec 2019-04-01T14:17:09 [serialize] Add default template type to push()
Behdad Esfahbod f3aca6aa 2019-03-31T21:37:14 [serialize] Implement linking Untested!
Behdad Esfahbod d6005b49 2019-03-30T19:49:56 [serialize] Start implementing linking
Behdad Esfahbod 313b3057 2019-03-30T19:46:35 [serializer] Implement dedup!
Behdad Esfahbod b189bbc4 2019-03-30T19:41:48 Implement hashing of objects Should be improved for hb_bytes_t.
Behdad Esfahbod d74dc3ef 2019-03-30T19:26:37 [serialize] Don't insert empty object into tree