From ac274331c285e1b42632870e150e1d66a9e21933 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 9 Jan 2017 22:20:38 -0800 Subject: [PATCH] In lazy-loading, remember allocation failure --- src/hb-ot-font.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/hb-ot-font.cc b/src/hb-ot-font.cc index 5be055d3..c2431364 100644 --- a/src/hb-ot-font.cc +++ b/src/hb-ot-font.cc @@ -447,11 +447,13 @@ struct hb_lazy_loader_t { p = (T *) calloc (1, sizeof (T)); if (unlikely (!p)) - return &OT::Null(T); - p->init (face); + p = const_cast (&OT::Null(T)); + else + p->init (face); if (unlikely (!hb_atomic_ptr_cmpexch (const_cast(&instance), NULL, p))) { - p->fini (); + if (p != &OT::Null(T)) + p->fini (); goto retry; } } -- GitLab