Coverage Report

Created: 2025-07-11 06:34

/src/harfbuzz/src/OT/Layout/GSUB/SingleSubst.hh
Line
Count
Source (jump to first uncovered line)
1
#ifndef OT_LAYOUT_GSUB_SINGLESUBST_HH
2
#define OT_LAYOUT_GSUB_SINGLESUBST_HH
3
4
#include "Common.hh"
5
#include "SingleSubstFormat1.hh"
6
#include "SingleSubstFormat2.hh"
7
8
namespace OT {
9
namespace Layout {
10
namespace GSUB_impl {
11
12
struct SingleSubst
13
{
14
  protected:
15
  union {
16
  HBUINT16        format;         /* Format identifier */
17
  SingleSubstFormat1_3<SmallTypes>  format1;
18
  SingleSubstFormat2_4<SmallTypes>  format2;
19
#ifndef HB_NO_BEYOND_64K
20
  SingleSubstFormat1_3<MediumTypes> format3;
21
  SingleSubstFormat2_4<MediumTypes> format4;
22
#endif
23
  } u;
24
25
  public:
26
27
  template <typename context_t, typename ...Ts>
28
  typename context_t::return_t dispatch (context_t *c, Ts&&... ds) const
29
2.59k
  {
30
2.59k
    if (unlikely (!c->may_dispatch (this, &u.format))) return c->no_dispatch_return_value ();
31
2.59k
    TRACE_DISPATCH (this, u.format);
32
2.59k
    switch (u.format) {
33
117
    case 1: return_trace (c->dispatch (u.format1, std::forward<Ts> (ds)...));
34
2.48k
    case 2: return_trace (c->dispatch (u.format2, std::forward<Ts> (ds)...));
35
#ifndef HB_NO_BEYOND_64K
36
    case 3: return_trace (c->dispatch (u.format3, std::forward<Ts> (ds)...));
37
    case 4: return_trace (c->dispatch (u.format4, std::forward<Ts> (ds)...));
38
#endif
39
0
    default:return_trace (c->default_return_value ());
40
2.59k
    }
41
2.59k
  }
Unexecuted instantiation: OT::hb_intersects_context_t::return_t OT::Layout::GSUB_impl::SingleSubst::dispatch<OT::hb_intersects_context_t>(OT::hb_intersects_context_t*) const
hb_sanitize_context_t::return_t OT::Layout::GSUB_impl::SingleSubst::dispatch<hb_sanitize_context_t>(hb_sanitize_context_t*) const
Line
Count
Source
29
2.58k
  {
30
2.58k
    if (unlikely (!c->may_dispatch (this, &u.format))) return c->no_dispatch_return_value ();
31
2.58k
    TRACE_DISPATCH (this, u.format);
32
2.58k
    switch (u.format) {
33
117
    case 1: return_trace (c->dispatch (u.format1, std::forward<Ts> (ds)...));
34
2.47k
    case 2: return_trace (c->dispatch (u.format2, std::forward<Ts> (ds)...));
35
#ifndef HB_NO_BEYOND_64K
36
    case 3: return_trace (c->dispatch (u.format3, std::forward<Ts> (ds)...));
37
    case 4: return_trace (c->dispatch (u.format4, std::forward<Ts> (ds)...));
38
#endif
39
0
    default:return_trace (c->default_return_value ());
40
2.58k
    }
41
2.58k
  }
Unexecuted instantiation: OT::hb_have_non_1to1_context_t::return_t OT::Layout::GSUB_impl::SingleSubst::dispatch<OT::hb_have_non_1to1_context_t>(OT::hb_have_non_1to1_context_t*) const
Unexecuted instantiation: OT::hb_ot_apply_context_t::return_t OT::Layout::GSUB_impl::SingleSubst::dispatch<OT::hb_ot_apply_context_t>(OT::hb_ot_apply_context_t*) const
Unexecuted instantiation: OT::hb_closure_context_t::return_t OT::Layout::GSUB_impl::SingleSubst::dispatch<OT::hb_closure_context_t>(OT::hb_closure_context_t*) const
Unexecuted instantiation: OT::hb_closure_lookups_context_t::return_t OT::Layout::GSUB_impl::SingleSubst::dispatch<OT::hb_closure_lookups_context_t>(OT::hb_closure_lookups_context_t*) const
Unexecuted instantiation: OT::hb_collect_glyphs_context_t::return_t OT::Layout::GSUB_impl::SingleSubst::dispatch<OT::hb_collect_glyphs_context_t>(OT::hb_collect_glyphs_context_t*) const
Unexecuted instantiation: OT::hb_would_apply_context_t::return_t OT::Layout::GSUB_impl::SingleSubst::dispatch<OT::hb_would_apply_context_t>(OT::hb_would_apply_context_t*) const
Unexecuted instantiation: hb_subset_context_t::return_t OT::Layout::GSUB_impl::SingleSubst::dispatch<hb_subset_context_t>(hb_subset_context_t*) const
OT::hb_accelerate_subtables_context_t::return_t OT::Layout::GSUB_impl::SingleSubst::dispatch<OT::hb_accelerate_subtables_context_t>(OT::hb_accelerate_subtables_context_t*) const
Line
Count
Source
29
9
  {
30
9
    if (unlikely (!c->may_dispatch (this, &u.format))) return c->no_dispatch_return_value ();
31
9
    TRACE_DISPATCH (this, u.format);
32
9
    switch (u.format) {
33
0
    case 1: return_trace (c->dispatch (u.format1, std::forward<Ts> (ds)...));
34
9
    case 2: return_trace (c->dispatch (u.format2, std::forward<Ts> (ds)...));
35
#ifndef HB_NO_BEYOND_64K
36
    case 3: return_trace (c->dispatch (u.format3, std::forward<Ts> (ds)...));
37
    case 4: return_trace (c->dispatch (u.format4, std::forward<Ts> (ds)...));
38
#endif
39
0
    default:return_trace (c->default_return_value ());
40
9
    }
41
9
  }
Unexecuted instantiation: hb_get_glyph_alternates_dispatch_t::return_t OT::Layout::GSUB_impl::SingleSubst::dispatch<hb_get_glyph_alternates_dispatch_t, unsigned int&, unsigned int&, unsigned int*&, unsigned int*&>(hb_get_glyph_alternates_dispatch_t*, unsigned int&, unsigned int&, unsigned int*&, unsigned int*&) const
42
43
  template<typename Iterator,
44
           hb_requires (hb_is_sorted_source_of (Iterator,
45
                                                const hb_codepoint_pair_t))>
46
  bool serialize (hb_serialize_context_t *c,
47
                  Iterator glyphs)
48
0
  {
49
0
    TRACE_SERIALIZE (this);
50
0
    if (unlikely (!c->extend_min (u.format))) return_trace (false);
51
0
    unsigned format = 2;
52
0
    unsigned delta = 0;
53
0
    if (glyphs)
54
0
    {
55
0
      format = 1;
56
0
      hb_codepoint_t mask = 0xFFFFu;
57
58
#ifndef HB_NO_BEYOND_64K
59
       if (+ glyphs
60
     | hb_map_retains_sorting (hb_second)
61
     | hb_filter ([] (hb_codepoint_t gid) { return gid > 0xFFFFu; }))
62
       {
63
   format += 2;
64
   mask = 0xFFFFFFu;
65
       }
66
#endif
67
68
0
      auto get_delta = [=] (hb_codepoint_pair_t _)
69
0
                       { return (unsigned) (_.second - _.first) & mask; };
70
0
      delta = get_delta (*glyphs);
71
0
      if (!hb_all (++(+glyphs), delta, get_delta)) format += 1;
72
0
    }
73
74
0
    u.format = format;
75
0
    switch (u.format) {
76
0
    case 1: return_trace (u.format1.serialize (c,
77
0
                                               + glyphs
78
0
                                               | hb_map_retains_sorting (hb_first),
79
0
                                               delta));
80
0
    case 2: return_trace (u.format2.serialize (c, glyphs));
81
#ifndef HB_NO_BEYOND_64K
82
    case 3: return_trace (u.format3.serialize (c,
83
                                               + glyphs
84
                                               | hb_map_retains_sorting (hb_first),
85
                                               delta));
86
    case 4: return_trace (u.format4.serialize (c, glyphs));
87
#endif
88
0
    default:return_trace (false);
89
0
    }
90
0
  }
Unexecuted instantiation: hb-ot-face.cc:_ZN2OT6Layout9GSUB_impl11SingleSubst9serializeI13hb_map_iter_tI16hb_filter_iter_tIS4_IN23hb_bit_set_invertible_t6iter_tEZNKS1_20SingleSubstFormat1_3INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_7LSF_0EEZNKSA_6subsetESC_EUl9hb_pair_tIjjEE_LSE_1ELSF_0EETnPN12hb_enable_ifIXaasr15hb_is_source_ofIT_KSP_EE5valuesrST_18is_sorted_iteratorEvE4typeELSF_0EEEbP22hb_serialize_context_tST_
Unexecuted instantiation: hb-ot-face.cc:_ZN2OT6Layout9GSUB_impl11SingleSubst9serializeI13hb_map_iter_tI16hb_filter_iter_tIS5_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_6LPv0EESH_RK3$_7LSL_0EEZNKS1_20SingleSubstFormat2_4INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSC_EE_L24hb_function_sortedness_t1ELSL_0EETnPN12hb_enable_ifIXaasr15hb_is_source_ofIT_KSW_IjjEEE5valuesrS13_18is_sorted_iteratorEvE4typeELSL_0EEEbP22hb_serialize_context_tS13_
Unexecuted instantiation: hb-aat-layout.cc:_ZN2OT6Layout9GSUB_impl11SingleSubst9serializeI13hb_map_iter_tI16hb_filter_iter_tIS4_IN23hb_bit_set_invertible_t6iter_tEZNKS1_20SingleSubstFormat1_3INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_7LSF_0EEZNKSA_6subsetESC_EUl9hb_pair_tIjjEE_LSE_1ELSF_0EETnPN12hb_enable_ifIXaasr15hb_is_source_ofIT_KSP_EE5valuesrST_18is_sorted_iteratorEvE4typeELSF_0EEEbP22hb_serialize_context_tST_
Unexecuted instantiation: hb-aat-layout.cc:_ZN2OT6Layout9GSUB_impl11SingleSubst9serializeI13hb_map_iter_tI16hb_filter_iter_tIS5_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_6LPv0EESH_RK3$_7LSL_0EEZNKS1_20SingleSubstFormat2_4INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSC_EE_L24hb_function_sortedness_t1ELSL_0EETnPN12hb_enable_ifIXaasr15hb_is_source_ofIT_KSW_IjjEEE5valuesrS13_18is_sorted_iteratorEvE4typeELSL_0EEEbP22hb_serialize_context_tS13_
Unexecuted instantiation: hb-ot-layout.cc:_ZN2OT6Layout9GSUB_impl11SingleSubst9serializeI13hb_map_iter_tI16hb_filter_iter_tIS4_IN23hb_bit_set_invertible_t6iter_tEZNKS1_20SingleSubstFormat1_3INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_7LSF_0EEZNKSA_6subsetESC_EUl9hb_pair_tIjjEE_LSE_1ELSF_0EETnPN12hb_enable_ifIXaasr15hb_is_source_ofIT_KSP_EE5valuesrST_18is_sorted_iteratorEvE4typeELSF_0EEEbP22hb_serialize_context_tST_
Unexecuted instantiation: hb-ot-layout.cc:_ZN2OT6Layout9GSUB_impl11SingleSubst9serializeI13hb_map_iter_tI16hb_filter_iter_tIS5_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_6LPv0EESH_RK3$_7LSL_0EEZNKS1_20SingleSubstFormat2_4INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSC_EE_L24hb_function_sortedness_t1ELSL_0EETnPN12hb_enable_ifIXaasr15hb_is_source_ofIT_KSW_IjjEEE5valuesrS13_18is_sorted_iteratorEvE4typeELSL_0EEEbP22hb_serialize_context_tS13_
Unexecuted instantiation: _ZN2OT6Layout9GSUB_impl11SingleSubst9serializeI13hb_zip_iter_tI17hb_sorted_array_tINS_11HBGlyphID16EE10hb_array_tIS6_EETnPN12hb_enable_ifIXaasr15hb_is_source_ofIT_K9hb_pair_tIjjEEE5valuesrSC_18is_sorted_iteratorEvE4typeELPv0EEEbP22hb_serialize_context_tSC_
Unexecuted instantiation: hb-ot-shaper-arabic.cc:_ZN2OT6Layout9GSUB_impl11SingleSubst9serializeI13hb_map_iter_tI16hb_filter_iter_tIS4_IN23hb_bit_set_invertible_t6iter_tEZNKS1_20SingleSubstFormat1_3INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUljE_L24hb_function_sortedness_t1ELPv0EERK8hb_set_tRK3$_7LSF_0EEZNKSA_6subsetESC_EUl9hb_pair_tIjjEE_LSE_1ELSF_0EETnPN12hb_enable_ifIXaasr15hb_is_source_ofIT_KSP_EE5valuesrST_18is_sorted_iteratorEvE4typeELSF_0EEEbP22hb_serialize_context_tST_
Unexecuted instantiation: hb-ot-shaper-arabic.cc:_ZN2OT6Layout9GSUB_impl11SingleSubst9serializeI13hb_map_iter_tI16hb_filter_iter_tIS5_I13hb_zip_iter_tINS0_6Common8Coverage6iter_tE10hb_array_tIKNS_11HBGlyphID16EEERK8hb_set_tRK3$_6LPv0EESH_RK3$_7LSL_0EEZNKS1_20SingleSubstFormat2_4INS0_10SmallTypesEE6subsetEP19hb_subset_context_tEUl9hb_pair_tIjRSC_EE_L24hb_function_sortedness_t1ELSL_0EETnPN12hb_enable_ifIXaasr15hb_is_source_ofIT_KSW_IjjEEE5valuesrS13_18is_sorted_iteratorEvE4typeELSL_0EEEbP22hb_serialize_context_tS13_
91
};
92
93
template<typename Iterator>
94
static void
95
SingleSubst_serialize (hb_serialize_context_t *c,
96
                       Iterator it)
97
0
{ c->start_embed<SingleSubst> ()->serialize (c, it); }
Unexecuted instantiation: hb-ot-face.cc:void OT::Layout::GSUB_impl::SingleSubst_serialize<hb_map_iter_t<hb_filter_iter_t<hb_map_iter_t<hb_bit_set_invertible_t::iter_t, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1}, (hb_function_sortedness_t)1, (void*)0>, hb_set_t const&, $_7 const&, (hb_function_sortedness_t)0>, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, unsigned int>)#1}, (OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1})1, (hb_function_sortedness_t)0> >(hb_serialize_context_t*, hb_map_iter_t<hb_filter_iter_t<hb_map_iter_t<hb_bit_set_invertible_t::iter_t, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1}, (hb_function_sortedness_t)1, (void*)0>, hb_set_t const&, $_7 const&, (hb_function_sortedness_t)0>, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, unsigned int>)#1}, (OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1})1, (hb_function_sortedness_t)0>)
Unexecuted instantiation: hb-ot-face.cc:void OT::Layout::GSUB_impl::SingleSubst_serialize<hb_map_iter_t<hb_filter_iter_t<hb_filter_iter_t<hb_zip_iter_t<OT::Layout::Common::Coverage::iter_t, hb_array_t<OT::HBGlyphID16 const> >, hb_set_t const&, $_6 const&, (void*)0>, hb_set_t const&, $_7 const&, (void*)0>, OT::Layout::GSUB_impl::SingleSubstFormat2_4<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, OT::HBGlyphID16 const&>)#1}, (hb_function_sortedness_t)1, (void*)0> >(hb_serialize_context_t*, hb_map_iter_t<hb_filter_iter_t<hb_filter_iter_t<hb_zip_iter_t<OT::Layout::Common::Coverage::iter_t, hb_array_t<OT::HBGlyphID16 const> >, hb_set_t const&, $_6 const&, (void*)0>, hb_set_t const&, $_7 const&, (void*)0>, OT::Layout::GSUB_impl::SingleSubstFormat2_4<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, OT::HBGlyphID16 const&>)#1}, (hb_function_sortedness_t)1, (void*)0>)
Unexecuted instantiation: hb-aat-layout.cc:void OT::Layout::GSUB_impl::SingleSubst_serialize<hb_map_iter_t<hb_filter_iter_t<hb_map_iter_t<hb_bit_set_invertible_t::iter_t, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1}, (hb_function_sortedness_t)1, (void*)0>, hb_set_t const&, $_7 const&, (hb_function_sortedness_t)0>, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, unsigned int>)#1}, (OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1})1, (hb_function_sortedness_t)0> >(hb_serialize_context_t*, hb_map_iter_t<hb_filter_iter_t<hb_map_iter_t<hb_bit_set_invertible_t::iter_t, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1}, (hb_function_sortedness_t)1, (void*)0>, hb_set_t const&, $_7 const&, (hb_function_sortedness_t)0>, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, unsigned int>)#1}, (OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1})1, (hb_function_sortedness_t)0>)
Unexecuted instantiation: hb-aat-layout.cc:void OT::Layout::GSUB_impl::SingleSubst_serialize<hb_map_iter_t<hb_filter_iter_t<hb_filter_iter_t<hb_zip_iter_t<OT::Layout::Common::Coverage::iter_t, hb_array_t<OT::HBGlyphID16 const> >, hb_set_t const&, $_6 const&, (void*)0>, hb_set_t const&, $_7 const&, (void*)0>, OT::Layout::GSUB_impl::SingleSubstFormat2_4<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, OT::HBGlyphID16 const&>)#1}, (hb_function_sortedness_t)1, (void*)0> >(hb_serialize_context_t*, hb_map_iter_t<hb_filter_iter_t<hb_filter_iter_t<hb_zip_iter_t<OT::Layout::Common::Coverage::iter_t, hb_array_t<OT::HBGlyphID16 const> >, hb_set_t const&, $_6 const&, (void*)0>, hb_set_t const&, $_7 const&, (void*)0>, OT::Layout::GSUB_impl::SingleSubstFormat2_4<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, OT::HBGlyphID16 const&>)#1}, (hb_function_sortedness_t)1, (void*)0>)
Unexecuted instantiation: hb-ot-layout.cc:void OT::Layout::GSUB_impl::SingleSubst_serialize<hb_map_iter_t<hb_filter_iter_t<hb_map_iter_t<hb_bit_set_invertible_t::iter_t, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1}, (hb_function_sortedness_t)1, (void*)0>, hb_set_t const&, $_7 const&, (hb_function_sortedness_t)0>, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, unsigned int>)#1}, (OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1})1, (hb_function_sortedness_t)0> >(hb_serialize_context_t*, hb_map_iter_t<hb_filter_iter_t<hb_map_iter_t<hb_bit_set_invertible_t::iter_t, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1}, (hb_function_sortedness_t)1, (void*)0>, hb_set_t const&, $_7 const&, (hb_function_sortedness_t)0>, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, unsigned int>)#1}, (OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1})1, (hb_function_sortedness_t)0>)
Unexecuted instantiation: hb-ot-layout.cc:void OT::Layout::GSUB_impl::SingleSubst_serialize<hb_map_iter_t<hb_filter_iter_t<hb_filter_iter_t<hb_zip_iter_t<OT::Layout::Common::Coverage::iter_t, hb_array_t<OT::HBGlyphID16 const> >, hb_set_t const&, $_6 const&, (void*)0>, hb_set_t const&, $_7 const&, (void*)0>, OT::Layout::GSUB_impl::SingleSubstFormat2_4<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, OT::HBGlyphID16 const&>)#1}, (hb_function_sortedness_t)1, (void*)0> >(hb_serialize_context_t*, hb_map_iter_t<hb_filter_iter_t<hb_filter_iter_t<hb_zip_iter_t<OT::Layout::Common::Coverage::iter_t, hb_array_t<OT::HBGlyphID16 const> >, hb_set_t const&, $_6 const&, (void*)0>, hb_set_t const&, $_7 const&, (void*)0>, OT::Layout::GSUB_impl::SingleSubstFormat2_4<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, OT::HBGlyphID16 const&>)#1}, (hb_function_sortedness_t)1, (void*)0>)
Unexecuted instantiation: hb-ot-shaper-arabic.cc:void OT::Layout::GSUB_impl::SingleSubst_serialize<hb_map_iter_t<hb_filter_iter_t<hb_map_iter_t<hb_bit_set_invertible_t::iter_t, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1}, (hb_function_sortedness_t)1, (void*)0>, hb_set_t const&, $_7 const&, (hb_function_sortedness_t)0>, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, unsigned int>)#1}, (OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1})1, (hb_function_sortedness_t)0> >(hb_serialize_context_t*, hb_map_iter_t<hb_filter_iter_t<hb_map_iter_t<hb_bit_set_invertible_t::iter_t, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1}, (hb_function_sortedness_t)1, (void*)0>, hb_set_t const&, $_7 const&, (hb_function_sortedness_t)0>, OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, unsigned int>)#1}, (OT::Layout::GSUB_impl::SingleSubstFormat1_3<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(unsigned int)#1})1, (hb_function_sortedness_t)0>)
Unexecuted instantiation: hb-ot-shaper-arabic.cc:void OT::Layout::GSUB_impl::SingleSubst_serialize<hb_map_iter_t<hb_filter_iter_t<hb_filter_iter_t<hb_zip_iter_t<OT::Layout::Common::Coverage::iter_t, hb_array_t<OT::HBGlyphID16 const> >, hb_set_t const&, $_6 const&, (void*)0>, hb_set_t const&, $_7 const&, (void*)0>, OT::Layout::GSUB_impl::SingleSubstFormat2_4<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, OT::HBGlyphID16 const&>)#1}, (hb_function_sortedness_t)1, (void*)0> >(hb_serialize_context_t*, hb_map_iter_t<hb_filter_iter_t<hb_filter_iter_t<hb_zip_iter_t<OT::Layout::Common::Coverage::iter_t, hb_array_t<OT::HBGlyphID16 const> >, hb_set_t const&, $_6 const&, (void*)0>, hb_set_t const&, $_7 const&, (void*)0>, OT::Layout::GSUB_impl::SingleSubstFormat2_4<OT::Layout::SmallTypes>::subset(hb_subset_context_t*) const::{lambda(hb_pair_t<unsigned int, OT::HBGlyphID16 const&>)#1}, (hb_function_sortedness_t)1, (void*)0>)
98
99
}
100
}
101
}
102
103
#endif /* OT_LAYOUT_GSUB_SINGLESUBST_HH */