[serialize] Support zerocopy while sharing

This commit is contained in:
Behdad Esfahbod 2022-12-03 13:03:38 -07:00
parent 44a5de3a97
commit 071a2bb4f7
1 changed files with 3 additions and 6 deletions

View File

@ -348,8 +348,8 @@ struct hb_serialize_context_t
assert (obj->head <= obj->tail);
unsigned len = obj->tail - obj->head;
head = zerocopy ? zerocopy : obj->head; /* Rewind head. */
if (zerocopy)
assert (!share);
bool was_zerocopy = zerocopy;
zerocopy = nullptr;
if (!len)
{
@ -373,11 +373,8 @@ struct hb_serialize_context_t
}
tail -= len;
if (zerocopy)
{
zerocopy = nullptr;
if (was_zerocopy)
assert (tail == obj->head);
}
else
memmove (tail, obj->head, len);