[serializer] Add serialize_copy()
diff --git a/src/hb-open-type.hh b/src/hb-open-type.hh
index bde0596..17e8d2a 100644
--- a/src/hb-open-type.hh
+++ b/src/hb-open-type.hh
@@ -305,6 +305,20 @@
return ret;
}
+ template <typename T>
+ bool serialize_copy (hb_serialize_context_t *c, const T &src, const void *base)
+ {
+ *this = 0;
+ if (has_null && &src == &Null (T))
+ return false;
+
+ c->push ();
+
+ c->copy (src);
+
+ c->add_link (*this, c->pop_pack (), base);
+ }
+
bool sanitize_shallow (hb_sanitize_context_t *c, const void *base) const
{
TRACE_SANITIZE (this);