提交 f1f6bc0a 编写于 作者: B Behdad Esfahbod

[set] Fix init/fini of set on the stack to call object init/fini

Part of https://github.com/harfbuzz/harfbuzz/issues/1017
上级 37b95612
......@@ -193,18 +193,28 @@ struct hb_set_t
hb_vector_t<page_map_t, 8> page_map;
hb_vector_t<page_t, 1> pages;
inline void init (void)
inline void init_shallow (void)
{
in_error = false;
population = 0;
page_map.init ();
pages.init ();
}
inline void fini (void)
inline void init (void)
{
hb_object_init (this);
init_shallow ();
}
inline void fini_shallow (void)
{
page_map.fini ();
pages.fini ();
}
inline void fini (void)
{
hb_object_fini (this);
fini_shallow ();
}
inline bool resize (unsigned int count)
{
......
......@@ -45,7 +45,7 @@ hb_set_create (void)
if (!(set = hb_object_create<hb_set_t> ()))
return hb_set_get_empty ();
set->init ();
set->init_shallow ();
return set;
}
......@@ -96,7 +96,7 @@ hb_set_destroy (hb_set_t *set)
{
if (!hb_object_destroy (set)) return;
set->fini ();
set->fini_shallow ();
free (set);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册