Add hb_auto_t

Part of https://github.com/harfbuzz/harfbuzz/issues/1017
This commit is contained in:
Behdad Esfahbod 2018-05-01 19:05:58 -04:00
parent a60ba7964e
commit 4a01eb1234
1 changed files with 8 additions and 3 deletions

View File

@ -701,11 +701,16 @@ struct hb_prealloced_array_t
};
template <typename Type>
struct hb_auto_array_t : hb_prealloced_array_t <Type>
struct hb_auto_t : Type
{
hb_auto_array_t (void) { hb_prealloced_array_t<Type>::init (); }
~hb_auto_array_t (void) { hb_prealloced_array_t<Type>::fini (); }
hb_auto_t (void) { Type::init (); }
~hb_auto_t (void) { Type::fini (); }
private: /* Hide */
void init (void) {}
void fini (void) {}
};
template <typename Type>
struct hb_auto_array_t : hb_auto_t <hb_prealloced_array_t <Type> > {};
#define HB_LOCKABLE_SET_INIT {HB_PREALLOCED_ARRAY_INIT}