Coverage Report

Created: 2026-11-10 07:41

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/harfbuzz/src/OT/Layout/GSUB/SingleSubstFormat1.hh
Line
Count
Source
1
#ifndef OT_LAYOUT_GSUB_SINGLESUBSTFORMAT1_HH
2
#define OT_LAYOUT_GSUB_SINGLESUBSTFORMAT1_HH
3
4
#include "Common.hh"
5
6
namespace OT {
7
namespace Layout {
8
namespace GSUB_impl {
9
10
static inline bool
11
subset_single_subst (hb_subset_context_t *c,
12
                     const Coverage &coverage,
13
                     hb_codepoint_t d,
14
                     hb_codepoint_t mask)
15
0
{
16
0
  const hb_set_t &glyphset = *c->plan->glyphset_gsub ();
17
0
  const hb_map_t &glyph_map = *c->plan->glyph_map;
18
19
0
  hb_set_t intersection;
20
0
  coverage.intersect_set (glyphset, intersection);
21
22
0
  auto it =
23
0
  + hb_iter (intersection)
24
0
  | hb_map_retains_sorting ([d, mask] (hb_codepoint_t g) {
25
0
                              return hb_codepoint_pair_t (g,
26
0
                                                          (g + d) & mask); })
27
0
  | hb_filter (glyphset, hb_second)
28
0
  | hb_map_retains_sorting ([&] (hb_codepoint_pair_t p) -> hb_codepoint_pair_t
29
0
                            { return hb_pair (glyph_map[p.first], glyph_map[p.second]); })
30
0
  ;
31
32
0
  bool ret = bool (it);
33
0
  SingleSubst_serialize (c->serializer, it);
34
0
  return ret;
35
0
}
Unexecuted instantiation: hb-subset.cc:OT::Layout::GSUB_impl::subset_single_subst(hb_subset_context_t*, OT::Layout::Common::Coverage const&, unsigned int, unsigned int)
Unexecuted instantiation: hb-subset-plan-layout.cc:OT::Layout::GSUB_impl::subset_single_subst(hb_subset_context_t*, OT::Layout::Common::Coverage const&, unsigned int, unsigned int)
Unexecuted instantiation: hb-subset-table-layout.cc:OT::Layout::GSUB_impl::subset_single_subst(hb_subset_context_t*, OT::Layout::Common::Coverage const&, unsigned int, unsigned int)
Unexecuted instantiation: hb-subset-table-var.cc:OT::Layout::GSUB_impl::subset_single_subst(hb_subset_context_t*, OT::Layout::Common::Coverage const&, unsigned int, unsigned int)
Unexecuted instantiation: hb-subset-table-cff.cc:OT::Layout::GSUB_impl::subset_single_subst(hb_subset_context_t*, OT::Layout::Common::Coverage const&, unsigned int, unsigned int)
Unexecuted instantiation: hb-subset-table-color.cc:OT::Layout::GSUB_impl::subset_single_subst(hb_subset_context_t*, OT::Layout::Common::Coverage const&, unsigned int, unsigned int)
Unexecuted instantiation: hb-subset-table-other.cc:OT::Layout::GSUB_impl::subset_single_subst(hb_subset_context_t*, OT::Layout::Common::Coverage const&, unsigned int, unsigned int)
Unexecuted instantiation: gsubgpos-context.cc:OT::Layout::GSUB_impl::subset_single_subst(hb_subset_context_t*, OT::Layout::Common::Coverage const&, unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-face.cc:OT::Layout::GSUB_impl::subset_single_subst(hb_subset_context_t*, OT::Layout::Common::Coverage const&, unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-layout.cc:OT::Layout::GSUB_impl::subset_single_subst(hb_subset_context_t*, OT::Layout::Common::Coverage const&, unsigned int, unsigned int)
Unexecuted instantiation: hb-aat-layout.cc:OT::Layout::GSUB_impl::subset_single_subst(hb_subset_context_t*, OT::Layout::Common::Coverage const&, unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-arabic.cc:OT::Layout::GSUB_impl::subset_single_subst(hb_subset_context_t*, OT::Layout::Common::Coverage const&, unsigned int, unsigned int)
36
37
HB_INTERNAL inline
38
void single_subst_depend (hb_depend_context_t *c,
39
                          const Coverage &coverage,
40
                          hb_codepoint_t d, hb_codepoint_t mask)
41
0
{
42
0
  unsigned num_glyphs = c->face->get_num_glyphs ();
43
0
44
0
  // Filter coverage by active glyphs (like closure does)
45
0
  hb_set_t intersection;
46
0
  coverage.intersect_set (c->parent_active_glyphs (), intersection);
47
0
48
0
  + hb_iter (intersection)
49
0
  | hb_map ([&] (hb_codepoint_t _) { return hb_codepoint_pair_t (_, (_ + d) & mask); })
50
0
  | hb_filter ([num_glyphs] (const hb_codepoint_pair_t &_) { return _.second < num_glyphs; })
51
0
  | hb_apply ([&] (const hb_codepoint_pair_t &_) { c->depend_data->add_gsub_lookup(_.first, c->lookup_index, _.second); })
52
0
  ;
53
0
}
54
55
HB_INTERNAL inline
56
void single_subst_closure (hb_closure_context_t *c,
57
                           const Coverage &coverage,
58
                           hb_codepoint_t d, hb_codepoint_t mask)
59
0
{
60
  /* Help fuzzer avoid this function as much. */
61
0
  unsigned pop = coverage.get_population ();
62
0
  if (pop >= mask)
63
0
    return;
64
65
0
  hb_set_t intersection;
66
0
  coverage.intersect_set (c->parent_active_glyphs (), intersection);
67
68
  /* In degenerate fuzzer-found fonts, but not real fonts,
69
   * this table can keep adding new glyphs in each round of closure.
70
   * Refuse to close-over, if it maps glyph range to overlapping range. */
71
0
  hb_codepoint_t min_before = intersection.get_min ();
72
0
  hb_codepoint_t max_before = intersection.get_max ();
73
0
  hb_codepoint_t min_after = (min_before + d) & mask;
74
0
  hb_codepoint_t max_after = (max_before + d) & mask;
75
0
  if (intersection.get_population () == max_before - min_before + 1 &&
76
0
  ((min_before <= min_after && min_after <= max_before) ||
77
0
   (min_before <= max_after && max_after <= max_before)))
78
0
    return;
79
80
0
  + hb_iter (intersection)
81
0
  | hb_map ([d, mask] (hb_codepoint_t g) { return (g + d) & mask; })
82
0
  | hb_sink (c->output)
83
0
  ;
84
0
}
85
86
HB_INTERNAL inline
87
void single_subst_collect_glyphs (hb_collect_glyphs_context_t *c,
88
                                  const Coverage &coverage,
89
                                  hb_codepoint_t d, hb_codepoint_t mask)
90
0
{
91
0
  if (unlikely (!coverage.collect_coverage (c->input))) return;
92
93
0
  + hb_iter (coverage)
94
0
  | hb_map ([d, mask] (hb_codepoint_t g) { return (g + d) & mask; })
95
0
  | hb_sink (c->output)
96
0
  ;
97
0
}
98
99
template <typename Types>
100
struct SingleSubstFormat1_3
101
{
102
  protected:
103
  HBUINT16      format;                 /* Format identifier--format = 1 */
104
  typename Types::template LOffsetTo<Coverage>
105
                coverage;               /* Offset to Coverage table--from
106
                                         * beginning of Substitution table */
107
  typename Types::HBUINT
108
                deltaGlyphID;           /* Add to original GlyphID to get
109
                                         * substitute GlyphID, modulo 0x10000 */
110
111
  public:
112
  DEFINE_SIZE_STATIC (2 + Types::LOffset::static_size + Types::HBUINT::static_size);
113
114
  bool sanitize (hb_sanitize_context_t *c) const
115
0
  {
116
0
    TRACE_SANITIZE (this);
117
0
    return_trace (c->check_struct (this) &&
118
0
                  coverage.sanitize (c, this) &&
119
                  /* The coverage  table may use a range to represent a set
120
                   * of glyphs, which means a small number of bytes can
121
                   * generate a large glyph set. Manually modify the
122
                   * sanitizer max ops to take this into account.
123
                   *
124
                   * Note: This check *must* be right after coverage sanitize. */
125
0
                  c->check_ops ((this + coverage).get_population () >> 1));
126
0
  }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::sanitize(hb_sanitize_context_t*) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::sanitize(hb_sanitize_context_t*) const
127
128
  hb_codepoint_t get_mask () const
129
0
  { return (1 << (8 * Types::size)) - 1; }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::get_mask() const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::get_mask() const
130
131
  bool intersects (const hb_set_t *glyphs) const
132
0
  { return (this+coverage).intersects (glyphs); }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::intersects(hb_set_t const*) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::intersects(hb_set_t const*) const
133
134
  bool may_have_non_1to1 () const
135
0
  { return false; }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::may_have_non_1to1() const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::may_have_non_1to1() const
136
137
  void depend (hb_depend_context_t *c) const
138
0
  {
139
0
    single_subst_depend (c, this+coverage, deltaGlyphID, get_mask ());
140
0
  }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::depend(OT::hb_depend_context_t*) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::depend(OT::hb_depend_context_t*) const
141
142
  void closure (hb_closure_context_t *c) const
143
0
  {
144
0
    single_subst_closure (c, this+coverage, deltaGlyphID, get_mask ());
145
0
  }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::closure(OT::hb_closure_context_t*) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::closure(OT::hb_closure_context_t*) const
146
147
0
  void closure_lookups (hb_closure_lookups_context_t *c) const {}
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::closure_lookups(OT::hb_closure_lookups_context_t*) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::closure_lookups(OT::hb_closure_lookups_context_t*) const
148
149
  void collect_glyphs (hb_collect_glyphs_context_t *c) const
150
0
  {
151
0
    single_subst_collect_glyphs (c, this+coverage, deltaGlyphID, get_mask ());
152
0
  }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::collect_glyphs(OT::hb_collect_glyphs_context_t*) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::collect_glyphs(OT::hb_collect_glyphs_context_t*) const
153
154
0
  const Coverage &get_coverage () const { return this+coverage; }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::get_coverage() const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::get_coverage() const
155
156
  bool would_apply (hb_would_apply_context_t *c) const
157
0
  { return c->len == 1 && (this+coverage).get_coverage (c->glyphs[0]) != NOT_COVERED; }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::would_apply(OT::hb_would_apply_context_t*) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::would_apply(OT::hb_would_apply_context_t*) const
158
159
  unsigned
160
  get_glyph_alternates (hb_codepoint_t  glyph_id,
161
                        unsigned        start_offset,
162
                        unsigned       *alternate_count  /* IN/OUT.  May be NULL. */,
163
                        hb_codepoint_t *alternate_glyphs /* OUT.     May be NULL. */) const
164
0
  {
165
0
    unsigned int index = (this+coverage).get_coverage (glyph_id);
166
0
    if (likely (index == NOT_COVERED))
167
0
    {
168
0
      if (alternate_count)
169
0
        *alternate_count = 0;
170
0
      return 0;
171
0
    }
172
173
0
    if (alternate_count && *alternate_count && alternate_glyphs)
174
0
    {
175
0
      hb_codepoint_t d = deltaGlyphID;
176
0
      hb_codepoint_t mask = get_mask ();
177
178
0
      glyph_id = (glyph_id + d) & mask;
179
180
0
      *alternate_glyphs = glyph_id;
181
0
      *alternate_count = 1;
182
0
    }
183
184
0
    return 1;
185
0
  }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::get_glyph_alternates(unsigned int, unsigned int, unsigned int*, unsigned int*) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::get_glyph_alternates(unsigned int, unsigned int, unsigned int*, unsigned int*) const
186
187
  void
188
  collect_glyph_alternates (hb_map_t  *alternate_count /* IN/OUT */,
189
          hb_map_t  *alternate_glyphs /* IN/OUT */) const
190
0
  {
191
0
    hb_codepoint_t d = deltaGlyphID;
192
0
    hb_codepoint_t mask = get_mask ();
193
194
0
    + hb_iter (this+coverage)
195
0
    | hb_map ([d, mask] (hb_codepoint_t g) { return hb_codepoint_pair_t (g, (g + d) & mask); })
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::collect_glyph_alternates(hb_map_t*, hb_map_t*) const::{lambda(unsigned int)#1}::operator()(unsigned int) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::collect_glyph_alternates(hb_map_t*, hb_map_t*) const::{lambda(unsigned int)#1}::operator()(unsigned int) const
196
0
    | hb_apply ([&] (const hb_pair_t<hb_codepoint_t, hb_codepoint_t> &p) -> void
197
0
    { _hb_collect_glyph_alternates_add (p.first, p.second,
198
0
                alternate_count, alternate_glyphs); })
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::collect_glyph_alternates(hb_map_t*, hb_map_t*) const::{lambda(hb_pair_t<unsigned int, unsigned int> const&)#1}::operator()(hb_pair_t<unsigned int, unsigned int> const&) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::collect_glyph_alternates(hb_map_t*, hb_map_t*) const::{lambda(hb_pair_t<unsigned int, unsigned int> const&)#1}::operator()(hb_pair_t<unsigned int, unsigned int> const&) const
199
0
    ;
200
0
  }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::collect_glyph_alternates(hb_map_t*, hb_map_t*) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::collect_glyph_alternates(hb_map_t*, hb_map_t*) const
201
202
  bool apply (hb_ot_apply_context_t *c) const
203
0
  {
204
0
    TRACE_APPLY (this);
205
0
    hb_codepoint_t glyph_id = c->buffer->cur().codepoint;
206
0
    unsigned int index = (this+coverage).get_coverage (glyph_id);
207
0
    if (index == NOT_COVERED) return_trace (false);
208
209
0
    hb_codepoint_t d = deltaGlyphID;
210
0
    hb_codepoint_t mask = get_mask ();
211
212
0
    glyph_id = (glyph_id + d) & mask;
213
214
0
    if (HB_BUFFER_MESSAGE_MORE && c->buffer->messaging ())
215
0
    {
216
0
      c->buffer->sync_so_far ();
217
0
      c->buffer->message (c->font,
218
0
        "replacing glyph at %u (single substitution)",
219
0
        c->buffer->idx);
220
0
    }
221
222
0
    c->replace_glyph (glyph_id);
223
224
0
    if (HB_BUFFER_MESSAGE_MORE && c->buffer->messaging ())
225
0
    {
226
0
      c->buffer->message (c->font,
227
0
        "replaced glyph at %u (single substitution)",
228
0
        c->buffer->idx - 1u);
229
0
    }
230
231
0
    return_trace (true);
232
0
  }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::apply(OT::hb_ot_apply_context_t*) const
233
234
  template<typename Iterator,
235
           hb_requires (hb_is_sorted_source_of (Iterator, hb_codepoint_t))>
236
  bool serialize (hb_serialize_context_t *c,
237
                  Iterator glyphs,
238
                  unsigned delta)
239
0
  {
240
0
    TRACE_SERIALIZE (this);
241
0
    if (unlikely (!c->extend_min (this))) return_trace (false);
242
0
    if (unlikely (!coverage.serialize_serialize (c, glyphs))) return_trace (false);
243
0
    c->check_assign (deltaGlyphID, delta, HB_SERIALIZE_ERROR_INT_OVERFLOW);
244
0
    return_trace (true);
245
0
  }
Unexecuted instantiation: hb-subset.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset-plan-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset-plan-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset-plan-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4IS3_E6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS11_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS16_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS16_j
Unexecuted instantiation: hb-subset-plan-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS12_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS17_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS17_j
Unexecuted instantiation: hb-subset-plan-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID24EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4INS0_11MediumTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS12_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS17_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS17_j
Unexecuted instantiation: hb-subset-plan-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID24EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4IS3_E6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS11_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS16_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS16_j
Unexecuted instantiation: hb-subset-table-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset-table-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset-table-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4IS3_E6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS11_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS16_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS16_j
Unexecuted instantiation: hb-subset-table-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS12_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS17_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS17_j
Unexecuted instantiation: hb-subset-table-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID24EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4INS0_11MediumTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS12_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS17_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS17_j
Unexecuted instantiation: hb-subset-table-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID24EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4IS3_E6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS11_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS16_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS16_j
Unexecuted instantiation: hb-subset-table-var.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset-table-var.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset-table-cff.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset-table-cff.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset-table-color.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset-table-color.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset-table-other.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-subset-table-other.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: gsubgpos-context.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: gsubgpos-context.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-ot-face.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-ot-face.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-ot-face.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4IS3_E6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS11_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS16_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS16_j
Unexecuted instantiation: hb-ot-face.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS12_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS17_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS17_j
Unexecuted instantiation: hb-ot-face.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID24EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4INS0_11MediumTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS12_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS17_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS17_j
Unexecuted instantiation: hb-ot-face.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID24EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4IS3_E6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS11_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS16_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS16_j
Unexecuted instantiation: hb-ot-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-ot-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-ot-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4IS3_E6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS11_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS16_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS16_j
Unexecuted instantiation: hb-ot-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS12_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS17_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS17_j
Unexecuted instantiation: hb-ot-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID24EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4INS0_11MediumTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS12_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS17_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS17_j
Unexecuted instantiation: hb-ot-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID24EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4IS3_E6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS11_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS16_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS16_j
Unexecuted instantiation: hb-aat-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-aat-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-aat-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4IS3_E6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS11_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS16_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS16_j
Unexecuted instantiation: hb-aat-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS12_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS17_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS17_j
Unexecuted instantiation: hb-aat-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID24EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4INS0_11MediumTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS12_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS17_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS17_j
Unexecuted instantiation: hb-aat-layout.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID24EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4IS3_E6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS11_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS16_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS16_j
Unexecuted instantiation: hb-ot-shaper-arabic.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tI13hb_zip_iter_tI17hb_sorted_array_tINS_11HBGlyphID16EE10hb_array_tIS9_EERK3$_7L24hb_function_sortedness_t1ELPv0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrSM_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tSM_j
Unexecuted instantiation: hb-ot-shaper-arabic.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tI13hb_zip_iter_tI17hb_sorted_array_tINS_11HBGlyphID16EE10hb_array_tIS9_EERK3$_7L24hb_function_sortedness_t1ELPv0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrSM_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tSM_j
Unexecuted instantiation: hb-ot-shaper-arabic.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-ot-shaper-arabic.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS6_IN23hb_bit_set_invertible_t6iter_tEZNS1_L19subset_single_substEP19hb_subset_context_tRKNS0_6Common8CoverageEjjEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_6LSI_0EEZNS1_L19subset_single_substESB_SF_jjEUl9hb_pair_tIjjEE_LSH_1ELSI_0EERK3$_7LSH_1ELSI_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS11_18is_sorted_iteratorEvE4typeELSI_0EEEbP22hb_serialize_context_tS11_j
Unexecuted instantiation: hb-ot-shaper-arabic.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4IS3_E6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS11_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS16_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS16_j
Unexecuted instantiation: hb-ot-shaper-arabic.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS12_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS17_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS17_j
Unexecuted instantiation: hb-ot-shaper-arabic.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_10SmallTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID24EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4INS0_11MediumTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS12_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS17_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS17_j
Unexecuted instantiation: hb-ot-shaper-arabic.cc:_ZN2OT6Layout9GSUB_impl20SingleSubstFormat1_3INS0_11MediumTypesEE9serializeI13hb_map_iter_tIS6_I16hb_filter_iter_tIS7_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID24EEERK8hb_set_tRK3$_7LPv0EESJ_RK3$_6LSN_0EEZNKS1_20SingleSubstFormat2_4IS3_E6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSE_EE_L24hb_function_sortedness_t1ELSN_0EESM_LS11_1ELSN_0EETnPNSt3__19enable_ifIXaasr15hb_is_source_ofIT_jEE5valuesrS16_18is_sorted_iteratorEvE4typeELSN_0EEEbP22hb_serialize_context_tS16_j
246
247
  bool subset (hb_subset_context_t *c) const
248
0
  {
249
0
    TRACE_SUBSET (this);
250
0
    return_trace (subset_single_subst (c, this+coverage, deltaGlyphID, get_mask ()));
251
0
  }
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const
Unexecuted instantiation: OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::MediumTypes>::subset(hb_subset_context_t*) const
252
};
253
254
}
255
}
256
}
257
258
259
#endif /* OT_LAYOUT_GSUB_SINGLESUBSTFORMAT1_HH */