parent
903856ab50
commit
eecccc919c
|
@ -782,10 +782,6 @@ struct hb_lazy_loader_t : hb_data_wrapper_t<Data, WheresData>
|
||||||
|
|
||||||
inline Stored * do_create (void) const
|
inline Stored * do_create (void) const
|
||||||
{
|
{
|
||||||
Stored *p = this->template call_create<Stored, Funcs> ();
|
|
||||||
if (unlikely (!p))
|
|
||||||
p = const_cast<Stored *> (Funcs::get_null ());
|
|
||||||
return p;
|
|
||||||
}
|
}
|
||||||
static inline void do_destroy (Stored *p)
|
static inline void do_destroy (Stored *p)
|
||||||
{
|
{
|
||||||
|
@ -803,7 +799,10 @@ struct hb_lazy_loader_t : hb_data_wrapper_t<Data, WheresData>
|
||||||
Stored *p = this->instance.get ();
|
Stored *p = this->instance.get ();
|
||||||
if (unlikely (!p))
|
if (unlikely (!p))
|
||||||
{
|
{
|
||||||
p = do_create ();
|
p = this->template call_create<Stored, Funcs> ();
|
||||||
|
if (unlikely (!p))
|
||||||
|
return const_cast<Stored *> (Funcs::get_null ());
|
||||||
|
|
||||||
if (unlikely (!this->instance.cmpexch (nullptr, p)))
|
if (unlikely (!this->instance.cmpexch (nullptr, p)))
|
||||||
{
|
{
|
||||||
do_destroy (p);
|
do_destroy (p);
|
||||||
|
|
Loading…
Reference in New Issue