summaryrefslogtreecommitdiff
path: root/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-serialize.hh
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2019-09-30 22:08:36 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2019-09-30 22:08:36 +0000
commit883a87cde515fcdd076708f212ebb66ed32b145f (patch)
treeac0fce4c70597596bb267f760197a09232b219b1 /Build/source/libs/harfbuzz/harfbuzz-src/src/hb-serialize.hh
parent6c0fed440c27ba0d6856feeb1000320320cf8a96 (diff)
harfbuzz 2.6.2
git-svn-id: svn://tug.org/texlive/trunk@52233 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-src/src/hb-serialize.hh')
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-serialize.hh23
1 files changed, 8 insertions, 15 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-serialize.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-serialize.hh
index 5764a90f6eb..4c674b1b1a4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-serialize.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-serialize.hh
@@ -91,9 +91,7 @@ struct hb_serialize_context_t
void fini ()
{
- ++ hb_iter (packed)
- | hb_apply ([] (object_t *_) { _->fini (); })
- ;
+ for (object_t *_ : ++hb_iter (packed)) _->fini ();
packed.fini ();
this->packed_map.fini ();
@@ -194,6 +192,7 @@ struct hb_serialize_context_t
if (unlikely (!obj)) return;
current = current->next;
revert (*obj);
+ obj->fini ();
object_pool.free (obj);
}
objidx_t pop_pack ()
@@ -291,7 +290,6 @@ struct hb_serialize_context_t
assert (packed.length > 1);
for (const object_t* parent : ++hb_iter (packed))
- {
for (const object_t::link_t &link : parent->links)
{
const object_t* child = packed[link.objidx];
@@ -311,7 +309,6 @@ struct hb_serialize_context_t
check_assign (off, offset);
}
}
- }
}
unsigned int length () const { return this->head - current->head; }
@@ -353,9 +350,7 @@ struct hb_serialize_context_t
template <typename Type>
Type *allocate_min ()
- {
- return this->allocate_size<Type> (Type::min_size);
- }
+ { return this->allocate_size<Type> (Type::min_size); }
template <typename Type>
Type *embed (const Type *obj)
@@ -427,14 +422,12 @@ struct hb_serialize_context_t
/* Copy both items from head side and tail side... */
unsigned int len = (this->head - this->start)
+ (this->end - this->tail);
+
char *p = (char *) malloc (len);
- if (p)
- {
- memcpy (p, this->start, this->head - this->start);
- memcpy (p + (this->head - this->start), this->tail, this->end - this->tail);
- }
- else
- return hb_bytes_t ();
+ if (unlikely (!p)) return hb_bytes_t ();
+
+ memcpy (p, this->start, this->head - this->start);
+ memcpy (p + (this->head - this->start), this->tail, this->end - this->tail);
return hb_bytes_t (p, len);
}
template <typename Type>