diff --git a/src/hb-machinery-private.hh b/src/hb-machinery-private.hh index 9b5823619cf982ab5304925f5a7ae5b123722902..beb61fa992619d63b7e69e65e48fd9d0dc6ab9a6 100644 --- a/src/hb-machinery-private.hh +++ b/src/hb-machinery-private.hh @@ -590,13 +590,14 @@ struct BEInt * Lazy loaders. */ -template struct hb_lazy_loader_t { - static_assert (WheresFace > 0, ""); + static_assert (WheresData > 0, ""); /* https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern */ inline const Subclass* thiz (void) const { return static_cast (this); } @@ -623,9 +624,9 @@ struct hb_lazy_loader_t Stored *p = this->instance.get (); if (unlikely (!p)) { - hb_face_t *face = *(((hb_face_t **) this) - WheresFace); + Data *data= *(((Data **) this) - WheresData); if (likely (!p)) - p = thiz ()->create (face); + p = thiz ()->create (data); if (unlikely (!p)) p = thiz ()->create (nullptr); /* Produce nil object. */ assert (p); @@ -670,7 +671,9 @@ struct hb_lazy_loader_t /* Specializations. */ template -struct hb_object_lazy_loader_t : hb_lazy_loader_t, T> +struct hb_object_lazy_loader_t : hb_lazy_loader_t, + hb_face_t, WheresFace, + T> { static inline T *create (hb_face_t *face) { @@ -694,7 +697,9 @@ struct hb_object_lazy_loader_t : hb_lazy_loader_t -struct hb_table_lazy_loader_t : hb_lazy_loader_t, T, hb_blob_t> +struct hb_table_lazy_loader_t : hb_lazy_loader_t, + hb_face_t, WheresFace, + T, hb_blob_t> { static inline hb_blob_t *create (hb_face_t *face) {