Home | History | Annotate | Download | only in src

Lines Matching refs:layout

31 #include "hb-ot-layout-private.hh"
33 #include "hb-ot-layout-gdef-table.hh"
34 #include "hb-ot-layout-gsub-table.hh"
35 #include "hb-ot-layout-gpos-table.hh"
46 hb_ot_layout_t *layout = (hb_ot_layout_t *) calloc (1, sizeof (hb_ot_layout_t));
47 if (unlikely (!layout))
50 layout->gdef_blob = OT::Sanitizer<OT::GDEF>::sanitize (face->reference_table (HB_OT_TAG_GDEF));
51 layout->gdef = OT::Sanitizer<OT::GDEF>::lock_instance (layout->gdef_blob);
53 layout->gsub_blob = OT::Sanitizer<OT::GSUB>::sanitize (face->reference_table (HB_OT_TAG_GSUB));
54 layout->gsub = OT::Sanitizer<OT::GSUB>::lock_instance (layout->gsub_blob);
56 layout->gpos_blob = OT::Sanitizer<OT::GPOS>::sanitize (face->reference_table (HB_OT_TAG_GPOS));
57 layout->gpos = OT::Sanitizer<OT::GPOS>::lock_instance (layout->gpos_blob);
59 layout->gsub_lookup_count = layout->gsub->get_lookup_count ();
60 layout->gpos_lookup_count = layout->gpos->get_lookup_count ();
62 layout->gsub_digests = (hb_set_digest_t *) calloc (layout->gsub->get_lookup_count (), sizeof (hb_set_digest_t));
63 layout->gpos_digests = (hb_set_digest_t *) calloc (layout->gpos->get_lookup_count (), sizeof (hb_set_digest_t));
65 if (unlikely ((layout->gsub_lookup_count && !layout->gsub_digests) ||
66 (layout->gpos_lookup_count && !layout->gpos_digests)))
68 _hb_ot_layout_destroy (layout);
72 for (unsigned int i = 0; i < layout->gsub_lookup_count; i++)
73 layout->gsub->get_lookup (i).add_coverage (&layout->gsub_digests[i]);
74 for (unsigned int i = 0; i < layout->gpos_lookup_count; i++)
75 layout->gpos->get_lookup (i).add_coverage (&layout->gpos_digests[i]);
77 return layout;
81 _hb_ot_layout_destroy (hb_ot_layout_t *layout)
83 hb_blob_destroy (layout->gdef_blob);
84 hb_blob_destroy (layout->gsub_blob);
85 hb_blob_destroy (layout->gpos_blob);
87 free (layout->gsub_digests);
88 free (layout->gpos_digests);
90 free (layout);