platform/upstream/libHarfBuzzSharp.git
5 years agoMerge branch 'master' of https://github.com/harfbuzz/harfbuzz
Nathan Willis [Sun, 14 Apr 2019 14:42:42 +0000 (15:42 +0100)]
Merge branch 'master' of https://github.com/harfbuzz/harfbuzz

5 years agoAdd HB_NO_SUBSET_LAYOUT
Behdad Esfahbod [Sat, 13 Apr 2019 02:50:22 +0000 (22:50 -0400)]
Add HB_NO_SUBSET_LAYOUT

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years agoRevert "Hide symbols in hb-iter"
Behdad Esfahbod [Sat, 13 Apr 2019 02:42:44 +0000 (22:42 -0400)]
Revert "Hide symbols in hb-iter"

This reverts commit 98f14c4cdb837a962083a6702f401d41b4c1ec5c.

Same as previous commit.

5 years agoRevert "Hide more symbols"
Behdad Esfahbod [Sat, 13 Apr 2019 02:39:38 +0000 (22:39 -0400)]
Revert "Hide more symbols"

This reverts commit 2e86d50915cf1a791da9acb95245aa820a3d70f4.

I think the setup that caused me to do this is faulty and not hiding inlines.

5 years agoHide symbols in hb-iter
Behdad Esfahbod [Fri, 12 Apr 2019 22:11:18 +0000 (18:11 -0400)]
Hide symbols in hb-iter

Painful.  All template methods need to be explicitly hidden :(.

Maybe we should switch to -fvisibility=hidden pragma.

A LOT more to go.

5 years agoHide more symbols
Behdad Esfahbod [Fri, 12 Apr 2019 22:07:42 +0000 (18:07 -0400)]
Hide more symbols

Exposed by:

$ make -j5 CPPFLAGS="-O0" CXXFLAGS=-flto=thin LDFLAGS=-lc++ && ./check-symbols.sh

5 years agoHide a few more symbols
Behdad Esfahbod [Fri, 12 Apr 2019 21:59:18 +0000 (17:59 -0400)]
Hide a few more symbols

Exposed by:

$ make CPPFLAGS=-O0

5 years agoHide a few static methods
Behdad Esfahbod [Fri, 12 Apr 2019 21:50:03 +0000 (17:50 -0400)]
Hide a few static methods

Looks like static methods that do not get inlined end up exported.
We have a lot more.  Need to protect all at some point.  Wish there
was an easier way, like the visibility flag we pass that automatically
hides all inline methods.

Was exposed by check-symbols.sh when compiling on OS X 10.14 with:

$ make CPPFLAGS=-Oz CXXFLAGS=-flto=thin LDFLAGS=-lc++

5 years agoAdd HB_NO_OPTIONS
Behdad Esfahbod [Fri, 12 Apr 2019 20:21:58 +0000 (16:21 -0400)]
Add HB_NO_OPTIONS

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years agoAdd HB_NO_NAME_TABLE_AAT
Behdad Esfahbod [Fri, 12 Apr 2019 19:00:37 +0000 (15:00 -0400)]
Add HB_NO_NAME_TABLE_AAT

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years agoAdd HB_NO_OT_FONT_BITMAP
Behdad Esfahbod [Fri, 12 Apr 2019 18:58:53 +0000 (14:58 -0400)]
Add HB_NO_OT_FONT_BITMAP

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years agoAdd HB_NO_OT_FONT_CFF
Behdad Esfahbod [Fri, 12 Apr 2019 18:57:49 +0000 (14:57 -0400)]
Add HB_NO_OT_FONT_CFF

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years agoAdd HB_NO_OT_SHAPE_COMPLEX_HEBREW_FALLBACK
Behdad Esfahbod [Fri, 12 Apr 2019 14:16:12 +0000 (10:16 -0400)]
Add HB_NO_OT_SHAPE_COMPLEX_HEBREW_FALLBACK

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years agoAdd HB_NO_OT_SHAPE_FALLBACK
Behdad Esfahbod [Fri, 12 Apr 2019 14:12:11 +0000 (10:12 -0400)]
Add HB_NO_OT_SHAPE_FALLBACK

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years agoAdd HB_NO_OT_SHAPE_COMPLEX_THAI_FALLBACK
Behdad Esfahbod [Fri, 12 Apr 2019 13:35:29 +0000 (09:35 -0400)]
Add HB_NO_OT_SHAPE_COMPLEX_THAI_FALLBACK

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years agoAdd HB_NO_OT_LAYOUT_BLACKLIST
Behdad Esfahbod [Fri, 12 Apr 2019 13:33:25 +0000 (09:33 -0400)]
Add HB_NO_OT_LAYOUT_BLACKLIST

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years agoAdd HB_NO_OT_SHAPE_COMPLEX_VOWEL_CONSTRAINTS
Behdad Esfahbod [Thu, 11 Apr 2019 21:54:38 +0000 (17:54 -0400)]
Add HB_NO_OT_SHAPE_COMPLEX_VOWEL_CONSTRAINTS

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years agoUpdate gtk-doc annotations for inout counts on various getter functions.
Nathan Willis [Tue, 2 Apr 2019 17:49:40 +0000 (18:49 +0100)]
Update gtk-doc annotations for inout counts on various getter functions.

5 years ago[Docs] Minor edits to gtk-doc inline comment review.
Nathan Willis [Sun, 24 Mar 2019 15:07:07 +0000 (15:07 +0000)]
[Docs] Minor edits to gtk-doc inline comment review.

5 years ago[Docs] Minor; fix formatting for gtk-doc multiple-annotations.
Nathan Willis [Mon, 18 Mar 2019 14:03:16 +0000 (14:03 +0000)]
[Docs] Minor; fix formatting for gtk-doc multiple-annotations.

5 years ago[Docs] Annotate gtk-doc formatting with some un-annotated (out)s.
Nathan Willis [Sun, 17 Mar 2019 14:50:47 +0000 (14:50 +0000)]
[Docs] Annotate gtk-doc formatting with some un-annotated (out)s.

5 years ago[Docs] Fix gtk-doc formatting for (out) and (inout).
Nathan Willis [Sun, 17 Mar 2019 14:43:06 +0000 (14:43 +0000)]
[Docs] Fix gtk-doc formatting for (out) and (inout).

5 years ago[Docs] Fix gtk-doc references to 'kern' table functions, clarifying that GPOS is...
Nathan Willis [Sun, 17 Mar 2019 14:27:27 +0000 (14:27 +0000)]
[Docs] Fix gtk-doc references to 'kern' table functions, clarifying that GPOS is not examined.

5 years ago[Docs] Add inline gtk-doc documentation of GDEF glyph classes.
Nathan Willis [Sat, 16 Mar 2019 15:38:08 +0000 (15:38 +0000)]
[Docs] Add inline gtk-doc documentation of GDEF glyph classes.

5 years ago[Docs] Add inlind gtk-doc comments for hb-ot-layout functions.
Nathan Willis [Sat, 16 Mar 2019 15:10:21 +0000 (15:10 +0000)]
[Docs] Add inlind gtk-doc comments for hb-ot-layout functions.

5 years agoUse injected class name to simplify macros
Behdad Esfahbod [Thu, 11 Apr 2019 15:20:10 +0000 (11:20 -0400)]
Use injected class name to simplify macros

5 years ago[C++11] Use deleted methods
Behdad Esfahbod [Thu, 11 Apr 2019 15:18:04 +0000 (11:18 -0400)]
[C++11] Use deleted methods

5 years agoRename a few macros
Behdad Esfahbod [Thu, 11 Apr 2019 15:16:01 +0000 (11:16 -0400)]
Rename a few macros

5 years ago[arabic] Disable fallback shaping if HB_NO_OT_SHAPE_COMPLEX_ARABIC_FALLBACK defined
Behdad Esfahbod [Wed, 10 Apr 2019 19:53:48 +0000 (15:53 -0400)]
[arabic] Disable fallback shaping if HB_NO_OT_SHAPE_COMPLEX_ARABIC_FALLBACK defined

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years agoDon't install ot-font funcs on new fonts if HB_NO_OT_FONT defined
Behdad Esfahbod [Wed, 10 Apr 2019 19:40:03 +0000 (15:40 -0400)]
Don't install ot-font funcs on new fonts if HB_NO_OT_FONT defined

Currently linker cannot GC hb-ot-font completely because we install
it on fonts by default.  Don't do that if HB_NO_OT_FONT defined.

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years agoDon't use any default unicode funcs if HB_NO_UNICODE_FUNCS is defined
Behdad Esfahbod [Wed, 10 Apr 2019 19:38:15 +0000 (15:38 -0400)]
Don't use any default unicode funcs if HB_NO_UNICODE_FUNCS is defined

Part of https://github.com/harfbuzz/harfbuzz/issues/1652

5 years ago[coretext] Fix unused-variable error
Behdad Esfahbod [Mon, 8 Apr 2019 18:50:58 +0000 (14:50 -0400)]
[coretext] Fix unused-variable error

Fixes https://github.com/harfbuzz/harfbuzz/issues/1659

5 years agoFix MSVC C4068 warning (#1656)
Maks Naumov [Fri, 5 Apr 2019 18:46:27 +0000 (21:46 +0300)]
Fix MSVC C4068 warning (#1656)

5 years agoreplace test font SourceHanSans with its subet
Michiharu Ariza [Fri, 5 Apr 2019 17:15:08 +0000 (10:15 -0700)]
replace test font SourceHanSans with its subet

5 years agoFix MSVC C4138 warning (#1657)
Maks Naumov [Fri, 5 Apr 2019 09:29:56 +0000 (12:29 +0300)]
Fix MSVC C4138 warning (#1657)

5 years agoMinor
Behdad Esfahbod [Wed, 3 Apr 2019 23:24:12 +0000 (16:24 -0700)]
Minor

5 years ago[GDEF] Don't assume glyphlist is sorted
Behdad Esfahbod [Wed, 3 Apr 2019 23:06:55 +0000 (16:06 -0700)]
[GDEF] Don't assume glyphlist is sorted

As was hit by the fuzzer.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14032

5 years ago[algs] Add hb_min() and hb_max()
Behdad Esfahbod [Wed, 3 Apr 2019 23:06:34 +0000 (16:06 -0700)]
[algs] Add hb_min() and hb_max()

5 years ago[serialize] Make putting breakpoint on out-of-memory easier
Behdad Esfahbod [Wed, 3 Apr 2019 22:48:27 +0000 (15:48 -0700)]
[serialize] Make putting breakpoint on out-of-memory easier

5 years ago[iter] Tweak SFINAE again
Behdad Esfahbod [Wed, 3 Apr 2019 22:31:53 +0000 (15:31 -0700)]
[iter] Tweak SFINAE again

Don't think we need hb_is_same().

5 years ago[array] Add compy assignment operator since copy constructor is explicit
Behdad Esfahbod [Wed, 3 Apr 2019 22:23:06 +0000 (15:23 -0700)]
[array] Add compy assignment operator since copy constructor is explicit

5 years ago[array] Add default copy constructor
Behdad Esfahbod [Wed, 3 Apr 2019 21:32:15 +0000 (14:32 -0700)]
[array] Add default copy constructor

MSVC seems to need it.

5 years ago[iter] Use different SFINAE scheme to make MSVC happy
Behdad Esfahbod [Wed, 3 Apr 2019 21:18:19 +0000 (14:18 -0700)]
[iter] Use different SFINAE scheme to make MSVC happy

From Orvid King: TLDR; MSVC has some issues using sizeof(declval<T>()) for
SFINAE of templated types, so I just used SFINAE in a different context where
MSVC doesn't have the issue.

5 years ago[meta] Add hb_is_same()
Behdad Esfahbod [Wed, 3 Apr 2019 21:15:01 +0000 (14:15 -0700)]
[meta] Add hb_is_same()

5 years ago[serialize] Actually reclaim storage from duplicate objects
Behdad Esfahbod [Wed, 3 Apr 2019 06:10:03 +0000 (23:10 -0700)]
[serialize] Actually reclaim storage from duplicate objects

5 years ago[serialize] Port to use object pool
Behdad Esfahbod [Wed, 3 Apr 2019 05:42:22 +0000 (22:42 -0700)]
[serialize] Port to use object pool

Tested, but feels fragile :(.

5 years ago[pool] Uses memset() instead of assigning Null()
Behdad Esfahbod [Wed, 3 Apr 2019 05:41:06 +0000 (22:41 -0700)]
[pool] Uses memset() instead of assigning Null()

Assignment is invalid on invalid object.

5 years agoAdd hb_pool_t<> for pooled memory allocation
Behdad Esfahbod [Wed, 3 Apr 2019 04:46:40 +0000 (21:46 -0700)]
Add hb_pool_t<> for pooled memory allocation

5 years ago[serialize] Disable packed_map again
Behdad Esfahbod [Wed, 3 Apr 2019 03:20:53 +0000 (20:20 -0700)]
[serialize] Disable packed_map again

Ugh.  Need to think of something else.

5 years ago[map] Protect more against pointer deref
Behdad Esfahbod [Wed, 3 Apr 2019 03:17:27 +0000 (20:17 -0700)]
[map] Protect more against pointer deref

5 years agoMore
Behdad Esfahbod [Wed, 3 Apr 2019 03:13:16 +0000 (20:13 -0700)]
More

5 years ago[serialize] Fix hb_hashmap_t<> for pointers and use in packed_map
Behdad Esfahbod [Wed, 3 Apr 2019 02:27:02 +0000 (19:27 -0700)]
[serialize] Fix hb_hashmap_t<> for pointers and use in packed_map

5 years ago[iter] Remove passing pointer to hb_iter()
Behdad Esfahbod [Wed, 3 Apr 2019 01:41:33 +0000 (18:41 -0700)]
[iter] Remove passing pointer to hb_iter()

While doable with hb_deref_pointer() as well, we also would then
need to do it in a ton of places.  Not worth it / messy.

5 years ago[array] Use dagger for hashing array
Behdad Esfahbod [Wed, 3 Apr 2019 01:22:39 +0000 (18:22 -0700)]
[array] Use dagger for hashing array

Also switch to better mixing.

5 years ago[iter] Accept pointers in hb_iter()
Behdad Esfahbod [Wed, 3 Apr 2019 01:12:01 +0000 (18:12 -0700)]
[iter] Accept pointers in hb_iter()

No idea how to avoid dupicating code.  Was hoping hb_deref_pointer()
would do it, but looks like a pointer can't bind to a universal
reference T&&.  Humm.

5 years ago[serialize] Towards maintaining packed_map
Behdad Esfahbod [Wed, 3 Apr 2019 00:49:52 +0000 (17:49 -0700)]
[serialize] Towards maintaining packed_map

5 years ago[serialize] Minor
Behdad Esfahbod [Wed, 3 Apr 2019 00:42:10 +0000 (17:42 -0700)]
[serialize] Minor

5 years ago[serialize] Handle non-nullable offsets
Behdad Esfahbod [Wed, 3 Apr 2019 00:21:54 +0000 (17:21 -0700)]
[serialize] Handle non-nullable offsets

5 years ago[serialize] Movce empty-object handling earlier
Behdad Esfahbod [Wed, 3 Apr 2019 00:20:04 +0000 (17:20 -0700)]
[serialize] Movce empty-object handling earlier

5 years ago[serialize] Minor
Behdad Esfahbod [Wed, 3 Apr 2019 00:12:24 +0000 (17:12 -0700)]
[serialize] Minor

5 years ago[serialize] Allow offset links that have base offset from the object base
Behdad Esfahbod [Tue, 2 Apr 2019 23:53:05 +0000 (16:53 -0700)]
[serialize] Allow offset links that have base offset from the object base

Rarely used, but used, in name table or similar constructs.

5 years ago[test][iter] minor, fix double promotion warning
Ebrahim Byagowi [Tue, 2 Apr 2019 20:18:59 +0000 (00:48 +0430)]
[test][iter] minor, fix double promotion warning

5 years ago[test] minor, c style comments
Ebrahim Byagowi [Tue, 2 Apr 2019 15:57:00 +0000 (20:27 +0430)]
[test] minor, c style comments

5 years ago[iter][test] Add another test for hb_reduce
Ebrahim Byagowi [Tue, 2 Apr 2019 15:55:06 +0000 (20:25 +0430)]
[iter][test] Add another test for hb_reduce

Different initial and accumulator types

5 years ago[serialize] Switch to tetris-packing
Behdad Esfahbod [Tue, 2 Apr 2019 04:36:13 +0000 (21:36 -0700)]
[serialize] Switch to tetris-packing

5 years ago[serialize] Fix linking
Behdad Esfahbod [Tue, 2 Apr 2019 04:36:03 +0000 (21:36 -0700)]
[serialize] Fix linking

5 years ago[serialize] Minor
Behdad Esfahbod [Tue, 2 Apr 2019 04:32:29 +0000 (21:32 -0700)]
[serialize] Minor

5 years ago[cmap] Minor
Behdad Esfahbod [Mon, 1 Apr 2019 23:50:28 +0000 (16:50 -0700)]
[cmap] Minor

5 years ago[subset] Call serialize start/end around it
Behdad Esfahbod [Mon, 1 Apr 2019 23:45:50 +0000 (16:45 -0700)]
[subset] Call serialize start/end around it

To be cleaned up.

5 years ago[serialize] Assert stack
Behdad Esfahbod [Mon, 1 Apr 2019 23:45:40 +0000 (16:45 -0700)]
[serialize] Assert stack

5 years ago[serialize] Add add_link() to add link
Behdad Esfahbod [Mon, 1 Apr 2019 23:17:30 +0000 (16:17 -0700)]
[serialize] Add add_link() to add link

5 years ago[serialize] Add default template type to push()
Behdad Esfahbod [Mon, 1 Apr 2019 21:17:09 +0000 (14:17 -0700)]
[serialize] Add default template type to push()

5 years ago[iter] hb_reduce, accumulator with a different type
Ebrahim Byagowi [Mon, 1 Apr 2019 20:00:06 +0000 (00:30 +0430)]
[iter] hb_reduce, accumulator with a different type

5 years ago[iter] Implement hb_reduce
Ebrahim Byagowi [Sun, 31 Mar 2019 08:11:58 +0000 (12:41 +0430)]
[iter] Implement hb_reduce

5 years ago[serialize] Implement linking
Behdad Esfahbod [Mon, 1 Apr 2019 04:37:14 +0000 (21:37 -0700)]
[serialize] Implement linking

Untested!

5 years agoMove BEInt to hb.hh
Behdad Esfahbod [Mon, 1 Apr 2019 04:34:19 +0000 (21:34 -0700)]
Move BEInt to hb.hh

I knows...

5 years ago[iter] Fix up build, ouch
Behdad Esfahbod [Mon, 1 Apr 2019 02:17:07 +0000 (19:17 -0700)]
[iter] Fix up build, ouch

Yeah, some things not very clear...

5 years agoDon't skip setting the .end field of the first range
Jonathan Kew [Sun, 31 Mar 2019 18:17:32 +0000 (19:17 +0100)]
Don't skip setting the .end field of the first range

Fixes a bug in CoverageFormat2::serialize whereby the first range
was not serialized correctly if it consists of only a single glyph ID.
This broke shaping of U+0626 in the Arabic fallback shaper, because it
is not found in the coverage table of the 'init' and 'medi' lookups.

Also fix similar bug in ClassDefFormat2::serialize, noted during code
inspection (I haven't observed a case that was actually affected by
this, but it looks broken).

Fixes https://github.com/harfbuzz/harfbuzz/issues/1504

5 years ago[iter] Adjust hb_copy() and use it
Behdad Esfahbod [Mon, 1 Apr 2019 02:00:09 +0000 (19:00 -0700)]
[iter] Adjust hb_copy() and use it

Untested.

5 years agoRemove coretext_aat shaper (#1581)
Ebrahim Byagowi [Sun, 31 Mar 2019 08:32:30 +0000 (01:32 -0700)]
Remove coretext_aat shaper (#1581)

coretext_aat was a temporary shaper to redirect shaping of AAT fonts
to CoreText and leaving the rest for HarfBuzz.  As HarfBuzz now supports
AAT and Chrome now actually ships that on a stable version on macOS,
we no longer care about such use-case.  If a client really wants 100%
metrics compatibility with CoreText better to use it directly or through
our API.  Replicating the same behavior still is possible using
hb_shape_full, something we don't care or like to offer anymore.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1478

5 years ago[serialize] Start implementing linking
Behdad Esfahbod [Sun, 31 Mar 2019 02:49:56 +0000 (19:49 -0700)]
[serialize] Start implementing linking

5 years ago[serializer] Implement dedup!
Behdad Esfahbod [Sun, 31 Mar 2019 02:46:35 +0000 (19:46 -0700)]
[serializer] Implement dedup!

5 years agoImplement hashing of objects
Behdad Esfahbod [Sun, 31 Mar 2019 02:41:48 +0000 (19:41 -0700)]
Implement hashing of objects

Should be improved for hb_bytes_t.

5 years agoFix hb_hash(pointer)
Behdad Esfahbod [Sun, 31 Mar 2019 02:31:51 +0000 (19:31 -0700)]
Fix hb_hash(pointer)

5 years ago[serialize] Don't insert empty object into tree
Behdad Esfahbod [Sun, 31 Mar 2019 02:26:37 +0000 (19:26 -0700)]
[serialize] Don't insert empty object into tree

5 years ago[serialize] Towards maintaining hashmap
Behdad Esfahbod [Sun, 31 Mar 2019 02:16:20 +0000 (19:16 -0700)]
[serialize] Towards maintaining hashmap

5 years ago[serialize] Only pack main object if there are other objects
Behdad Esfahbod [Sun, 31 Mar 2019 02:05:51 +0000 (19:05 -0700)]
[serialize] Only pack main object if there are other objects

Avoids a memmove for tables that don't use the object packing mechanism.

5 years ago[serialize] Copy both sides of the buffer
Behdad Esfahbod [Sun, 31 Mar 2019 02:03:55 +0000 (19:03 -0700)]
[serialize] Copy both sides of the buffer

5 years ago[serialize] Simplify copy
Behdad Esfahbod [Sun, 31 Mar 2019 02:01:23 +0000 (19:01 -0700)]
[serialize] Simplify copy

5 years ago[serializer] Unbreak for now
Behdad Esfahbod [Sun, 31 Mar 2019 01:48:26 +0000 (18:48 -0700)]
[serializer] Unbreak for now

5 years ago[map] Shuffle fini code
Behdad Esfahbod [Sun, 31 Mar 2019 01:44:01 +0000 (18:44 -0700)]
[map] Shuffle fini code

5 years ago[vector] Add move semantics
Behdad Esfahbod [Sun, 31 Mar 2019 01:33:30 +0000 (18:33 -0700)]
[vector] Add move semantics

5 years ago[vector] Add some move and forwarding
Behdad Esfahbod [Sun, 31 Mar 2019 01:30:50 +0000 (18:30 -0700)]
[vector] Add some move and forwarding

5 years ago[meta] Add hb_move and hb_forward ala std::
Behdad Esfahbod [Sun, 31 Mar 2019 01:19:36 +0000 (18:19 -0700)]
[meta] Add hb_move and hb_forward ala std::

5 years ago[serialize] Flesh out packing
Behdad Esfahbod [Sun, 31 Mar 2019 01:14:30 +0000 (18:14 -0700)]
[serialize] Flesh out packing

5 years ago[vector] Add copy constructor and assignment operator
Behdad Esfahbod [Sun, 31 Mar 2019 01:13:57 +0000 (18:13 -0700)]
[vector] Add copy constructor and assignment operator

5 years ago[serialize] Minor
Behdad Esfahbod [Sun, 31 Mar 2019 01:00:03 +0000 (18:00 -0700)]
[serialize] Minor

5 years ago[serialize] Add packed_map
Behdad Esfahbod [Sun, 31 Mar 2019 00:51:26 +0000 (17:51 -0700)]
[serialize] Add packed_map

5 years ago[serialize] Start fleshing out object stack
Behdad Esfahbod [Sun, 31 Mar 2019 00:26:35 +0000 (17:26 -0700)]
[serialize] Start fleshing out object stack

5 years ago[serialize] Simplify propagate_error()
Behdad Esfahbod [Sun, 31 Mar 2019 00:12:40 +0000 (17:12 -0700)]
[serialize] Simplify propagate_error()