From b721fdae662673ab706da897aaa1db126f8ca1a5 Mon Sep 17 00:00:00 2001 From: Michiharu Ariza <ariza@adobe.com> Date: Sun, 4 Nov 2018 16:19:15 -0800 Subject: [PATCH] fixed leaks in CFF subr subset --- src/hb-ot-cff-common.hh | 10 +++++++++- src/hb-subset-cff-common.hh | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/hb-ot-cff-common.hh b/src/hb-ot-cff-common.hh index b360e659a..b98119f54 100644 --- a/src/hb-ot-cff-common.hh +++ b/src/hb-ot-cff-common.hh @@ -62,8 +62,13 @@ struct code_pair }; typedef hb_vector_t<char, 1> StrBuff; -struct StrBuffArray : hb_vector_t<StrBuff> +struct StrBuffArray : hb_vector_t<StrBuff> { + inline void fini (void) + { + SUPER::fini_deep (); + } + inline unsigned int total_size (void) const { unsigned int size = 0; @@ -71,6 +76,9 @@ struct StrBuffArray : hb_vector_t<StrBuff> size += (*this)[i].len; return size; } + + private: + typedef hb_vector_t<StrBuff> SUPER; }; /* CFF INDEX */ diff --git a/src/hb-subset-cff-common.hh b/src/hb-subset-cff-common.hh index 91fa5ed74..8631d2b8d 100644 --- a/src/hb-subset-cff-common.hh +++ b/src/hb-subset-cff-common.hh @@ -465,11 +465,19 @@ struct ParsedCStrs : hb_vector_t<ParsedCStr> { inline void init (unsigned int len_ = 0) { - hb_vector_t<ParsedCStr>::init (); + SUPER::init (); resize (len_); for (unsigned int i = 0; i < len; i++) (*this)[i].init (); } + + inline void fini (void) + { + SUPER::fini_deep (); + } + + private: + typedef hb_vector_t<ParsedCStr> SUPER; }; struct SubrSubsetParam