[user-data] Move methods to header file
No idea why they were in hb-static.
This commit is contained in:
parent
02f79f60f2
commit
548bad221c
|
@ -175,14 +175,34 @@ struct hb_user_data_array_t
|
||||||
|
|
||||||
void init () { lock.init (); items.init (); }
|
void init () { lock.init (); items.init (); }
|
||||||
|
|
||||||
HB_INTERNAL bool set (hb_user_data_key_t *key,
|
void fini () { items.fini (lock); lock.fini (); }
|
||||||
|
|
||||||
|
bool set (hb_user_data_key_t *key,
|
||||||
void * data,
|
void * data,
|
||||||
hb_destroy_func_t destroy,
|
hb_destroy_func_t destroy,
|
||||||
hb_bool_t replace);
|
hb_bool_t replace)
|
||||||
|
{
|
||||||
|
if (!key)
|
||||||
|
return false;
|
||||||
|
|
||||||
HB_INTERNAL void *get (hb_user_data_key_t *key);
|
if (replace) {
|
||||||
|
if (!data && !destroy) {
|
||||||
|
items.remove (key, lock);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
hb_user_data_item_t item = {key, data, destroy};
|
||||||
|
bool ret = !!items.replace_or_insert (item, lock, (bool) replace);
|
||||||
|
|
||||||
void fini () { items.fini (lock); lock.fini (); }
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *get (hb_user_data_key_t *key)
|
||||||
|
{
|
||||||
|
hb_user_data_item_t item = {nullptr, nullptr, nullptr};
|
||||||
|
|
||||||
|
return items.find (key, &item, lock) ? item.data : nullptr;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -108,36 +108,4 @@ hb_face_t::load_upem () const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* hb_user_data_array_t */
|
|
||||||
|
|
||||||
bool
|
|
||||||
hb_user_data_array_t::set (hb_user_data_key_t *key,
|
|
||||||
void * data,
|
|
||||||
hb_destroy_func_t destroy,
|
|
||||||
hb_bool_t replace)
|
|
||||||
{
|
|
||||||
if (!key)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (replace) {
|
|
||||||
if (!data && !destroy) {
|
|
||||||
items.remove (key, lock);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
hb_user_data_item_t item = {key, data, destroy};
|
|
||||||
bool ret = !!items.replace_or_insert (item, lock, (bool) replace);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
void *
|
|
||||||
hb_user_data_array_t::get (hb_user_data_key_t *key)
|
|
||||||
{
|
|
||||||
hb_user_data_item_t item = {nullptr, nullptr, nullptr};
|
|
||||||
|
|
||||||
return items.find (key, &item, lock) ? item.data : nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue