Coverage Report

Created: 2023-03-06 09:36

/src/harfbuzz/src/hb-array.hh
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright © 2018  Google, Inc.
3
 *
4
 *  This is part of HarfBuzz, a text shaping library.
5
 *
6
 * Permission is hereby granted, without written agreement and without
7
 * license or royalty fees, to use, copy, modify, and distribute this
8
 * software and its documentation for any purpose, provided that the
9
 * above copyright notice and the following two paragraphs appear in
10
 * all copies of this software.
11
 *
12
 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
13
 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
14
 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
15
 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
16
 * DAMAGE.
17
 *
18
 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
19
 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20
 * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
21
 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
22
 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
23
 *
24
 * Google Author(s): Behdad Esfahbod
25
 */
26
27
#ifndef HB_ARRAY_HH
28
#define HB_ARRAY_HH
29
30
#include "hb.hh"
31
#include "hb-algs.hh"
32
#include "hb-iter.hh"
33
#include "hb-null.hh"
34
35
36
template <typename Type>
37
struct hb_sorted_array_t;
38
39
enum hb_not_found_t
40
{
41
  HB_NOT_FOUND_DONT_STORE,
42
  HB_NOT_FOUND_STORE,
43
  HB_NOT_FOUND_STORE_CLOSEST,
44
};
45
46
47
template <typename Type>
48
struct hb_array_t : hb_iter_with_fallback_t<hb_array_t<Type>, Type&>
49
{
50
  /*
51
   * Constructors.
52
   */
53
4.16M
  hb_array_t () = default;
hb_array_t<char const>::hb_array_t()
Line
Count
Source
53
2.98M
  hb_array_t () = default;
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::hb_array_t()
Line
Count
Source
53
9.12k
  hb_array_t () = default;
hb_array_t<int>::hb_array_t()
Line
Count
Source
53
33.0k
  hb_array_t () = default;
hb_array_t<unsigned char const>::hb_array_t()
Line
Count
Source
53
1.14M
  hb_array_t () = default;
54
  hb_array_t (const hb_array_t&) = default;
55
  ~hb_array_t () = default;
56
  hb_array_t& operator= (const hb_array_t&) = default;
57
  hb_array_t& operator= (hb_array_t&&) = default;
58
59
533M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::IntType<short, 2u> const>::hb_array_t(OT::IntType<short, 2u> const*, unsigned int)
Line
Count
Source
59
1.77k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::hb_array_t(OT::HBFixed<OT::IntType<int, 4u>, 16u> const*, unsigned int)
hb_array_t<AAT::FeatureName const>::hb_array_t(AAT::FeatureName const*, unsigned int)
Line
Count
Source
59
834k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_aat_layout_feature_type_t>::hb_array_t(hb_aat_layout_feature_type_t*, unsigned int)
Line
Count
Source
59
208k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<AAT::SettingName const>::hb_array_t(AAT::SettingName const*, unsigned int)
Line
Count
Source
59
417k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_aat_layout_feature_selector_info_t>::hb_array_t(hb_aat_layout_feature_selector_info_t*, unsigned int)
Line
Count
Source
59
208k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<char const>::hb_array_t(char const*, unsigned int)
Line
Count
Source
59
211M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<hb_aat_feature_mapping_t const>::hb_array_t(hb_aat_feature_mapping_t const*, unsigned int)
hb_array_t<AAT::Feature const>::hb_array_t(AAT::Feature const*, unsigned int)
Line
Count
Source
59
120k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_aat_map_builder_t::feature_info_t>::hb_array_t(hb_aat_map_builder_t::feature_info_t*, unsigned int)
Line
Count
Source
59
337k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_aat_map_t::range_flags_t>::hb_array_t(hb_aat_map_t::range_flags_t*, unsigned int)
Line
Count
Source
59
162k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_glyph_info_t>::hb_array_t(hb_glyph_info_t*, unsigned int)
Line
Count
Source
59
61.7k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_glyph_position_t>::hb_array_t(hb_glyph_position_t*, unsigned int)
Line
Count
Source
59
15.4k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::hb_array_t(OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const*, unsigned int)
Line
Count
Source
59
23.6M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::hb_array_t(OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const*, unsigned int)
Line
Count
Source
59
1.19M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::HBGlyphID16 const>::hb_array_t(OT::HBGlyphID16 const*, unsigned int)
Line
Count
Source
59
45.4M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::HBGlyphID24 const>::hb_array_t(OT::HBGlyphID24 const*, unsigned int)
Line
Count
Source
59
143k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<AAT::KernPair const>::hb_array_t(AAT::KernPair const*, unsigned int)
Line
Count
Source
59
38.1k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_aat_map_builder_t::feature_event_t>::hb_array_t(hb_aat_map_builder_t::feature_event_t*, unsigned int)
Line
Count
Source
59
120k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::hb_array_t(hb_user_data_array_t::hb_user_data_item_t*, unsigned int)
Line
Count
Source
59
616k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::TableRecord const>::hb_array_t(OT::TableRecord const*, unsigned int)
Line
Count
Source
59
7.98M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::ResourceRecord const>::hb_array_t(OT::ResourceRecord const*, unsigned int)
Line
Count
Source
59
4.57k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<unsigned int>::hb_array_t(unsigned int*, unsigned int)
Line
Count
Source
59
1.86M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_bit_set_t::page_map_t>::hb_array_t(hb_bit_set_t::page_map_t*, unsigned int)
Line
Count
Source
59
3.25M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::hb_array_t(hb_hashmap_t<unsigned int, unsigned int, true>::item_t*, unsigned int)
Line
Count
Source
59
204k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::VariationSelectorRecord const>::hb_array_t(OT::VariationSelectorRecord const*, unsigned int)
Line
Count
Source
59
627k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::UVSMapping const>::hb_array_t(OT::UVSMapping const*, unsigned int)
Line
Count
Source
59
418k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::EncodingRecord const>::hb_array_t(OT::EncodingRecord const*, unsigned int)
Line
Count
Source
59
1.48M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::CmapSubtableLongGroup const>::hb_array_t(OT::CmapSubtableLongGroup const*, unsigned int)
Line
Count
Source
59
3.15M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::AxisRecord const>::hb_array_t(OT::AxisRecord const*, unsigned int)
Line
Count
Source
59
53.8k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::Index const>::hb_array_t(OT::Index const*, unsigned int)
Line
Count
Source
59
3.25M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::IntType<unsigned int, 4u> const>::hb_array_t(OT::IntType<unsigned int, 4u> const*, unsigned int)
Line
Count
Source
59
1.63k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::BaseGlyphPaintRecord const>::hb_array_t(OT::BaseGlyphPaintRecord const*, unsigned int)
Line
Count
Source
59
8.97k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::BaseGlyphRecord const>::hb_array_t(OT::BaseGlyphRecord const*, unsigned int)
Line
Count
Source
59
212k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::LayerRecord const>::hb_array_t(OT::LayerRecord const*, unsigned int)
Line
Count
Source
59
417k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<hb_ot_color_layer_t>::hb_array_t(hb_ot_color_layer_t*, unsigned int)
hb_array_t<OT::SVGDocumentIndexEntry const>::hb_array_t(OT::SVGDocumentIndexEntry const*, unsigned int)
Line
Count
Source
59
208k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::UnicodeValueRange const>::hb_array_t(OT::UnicodeValueRange const*, unsigned int)
Line
Count
Source
59
210k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::VertOriginMetric const>::hb_array_t(OT::VertOriginMetric const*, unsigned int)
Line
Count
Source
59
960
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<int>::hb_array_t(int*, unsigned int)
Line
Count
Source
59
219k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::contour_point_t>::hb_array_t(OT::contour_point_t*, unsigned int)
Line
Count
Source
59
987k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::hb_array_t(OT::HBFixed<OT::IntType<short, 2u>, 14u> const*, unsigned int)
Line
Count
Source
59
14.8k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<unsigned char const>::hb_array_t(unsigned char const*, unsigned int)
Line
Count
Source
59
2.63M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::ClipRecord const>::hb_array_t(OT::ClipRecord const*, unsigned int)
Line
Count
Source
59
9.09k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::cff1::accelerator_t::gname_t>::hb_array_t(OT::cff1::accelerator_t::gname_t*, unsigned int)
Line
Count
Source
59
41.0k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::IntType<unsigned char, 1u> const>::hb_array_t(OT::IntType<unsigned char, 1u> const*, unsigned int)
Line
Count
Source
59
5.31k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::IntType<unsigned short, 2u> const>::hb_array_t(OT::IntType<unsigned short, 2u> const*, unsigned int)
Line
Count
Source
59
32.4M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
hb_array_t<OT::Record<OT::Script> const>::hb_array_t(OT::Record<OT::Script> const*, unsigned int)
Line
Count
Source
59
2.02M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::hb_array_t(OT::Record<OT::Feature> const*, unsigned int)
hb_array_t<OT::Record<OT::LangSys> const>::hb_array_t(OT::Record<OT::LangSys> const*, unsigned int)
Line
Count
Source
59
581k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<unsigned long long const>::hb_array_t(unsigned long long const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const>::hb_array_t(OT::FeatureTableSubstitutionRecord const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Line
Count
Source
59
48.3k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Line
Count
Source
59
32.4M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Line
Count
Source
59
973k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::IntType<unsigned int, 3u> const>::hb_array_t(OT::IntType<unsigned int, 3u> const*, unsigned int)
Line
Count
Source
59
417k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Line
Count
Source
59
349
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Line
Count
Source
59
3.79M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Line
Count
Source
59
432
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::unique_ptr<hb_set_t>, false>::item_t>::hb_array_t(hb_hashmap_t<unsigned int, hb::unique_ptr<hb_set_t>, false>::item_t*, unsigned int)
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_set_t, false>::item_t>::hb_array_t(hb_hashmap_t<unsigned int, hb_set_t, false>::item_t*, unsigned int)
hb_array_t<OT::BaseScriptRecord const>::hb_array_t(OT::BaseScriptRecord const*, unsigned int)
Line
Count
Source
59
417k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::Tag const>::hb_array_t(OT::Tag const*, unsigned int)
Line
Count
Source
59
5.08k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t>::hb_array_t(OT::hb_accelerate_subtables_context_t::hb_applicable_t*, unsigned int)
Line
Count
Source
59
70.9M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::hb_array_t(OT::hb_accelerate_subtables_context_t::hb_applicable_t const*, unsigned int)
Line
Count
Source
59
70.9M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::MathGlyphVariantRecord const>::hb_array_t(OT::MathGlyphVariantRecord const*, unsigned int)
Line
Count
Source
59
417k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_ot_math_glyph_variant_t>::hb_array_t(hb_ot_math_glyph_variant_t*, unsigned int)
Line
Count
Source
59
208k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::MathGlyphPartRecord const>::hb_array_t(OT::MathGlyphPartRecord const*, unsigned int)
Line
Count
Source
59
417k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_ot_math_glyph_part_t>::hb_array_t(hb_ot_math_glyph_part_t*, unsigned int)
Line
Count
Source
59
208k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::DataMap const>::hb_array_t(OT::DataMap const*, unsigned int)
Line
Count
Source
59
208k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<hb_ot_meta_tag_t>::hb_array_t(hb_ot_meta_tag_t*, unsigned int)
hb_array_t<OT::NameRecord const>::hb_array_t(OT::NameRecord const*, unsigned int)
Line
Count
Source
59
243k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_ot_name_entry_t>::hb_array_t(hb_ot_name_entry_t*, unsigned int)
Line
Count
Source
59
206k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_ot_map_t::feature_map_t>::hb_array_t(hb_ot_map_t::feature_map_t*, unsigned int)
Line
Count
Source
59
2.85M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
Unexecuted instantiation: hb_array_t<sid_to_gid_t const>::hb_array_t(sid_to_gid_t const*, unsigned int)
hb_array_t<CFF::number_t const>::hb_array_t(CFF::number_t const*, unsigned int)
Line
Count
Source
59
753k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_ot_map_builder_t::feature_info_t>::hb_array_t(hb_ot_map_builder_t::feature_info_t*, unsigned int)
Line
Count
Source
59
288k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_ot_map_t::lookup_map_t>::hb_array_t(hb_ot_map_t::lookup_map_t*, unsigned int)
Line
Count
Source
59
174k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_serialize_context_t::object_t*>::hb_array_t(hb_serialize_context_t::object_t**, unsigned int)
Line
Count
Source
59
11.1k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_serialize_context_t::object_t* const>::hb_array_t(hb_serialize_context_t::object_t* const*, unsigned int)
Line
Count
Source
59
11.1k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_hashmap_t<hb_serialize_context_t::object_t const*, unsigned int, false>::item_t>::hb_array_t(hb_hashmap_t<hb_serialize_context_t::object_t const*, unsigned int, false>::item_t*, unsigned int)
Line
Count
Source
59
4.39k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::HBGlyphID16>::hb_array_t(OT::HBGlyphID16*, unsigned int)
Line
Count
Source
59
10.4k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t*>::hb_array_t(hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t**, unsigned int)
Line
Count
Source
59
3.90k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>::hb_array_t(hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const*, unsigned int)
Line
Count
Source
59
3.90k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<unsigned int const>::hb_array_t(unsigned int const*, unsigned int)
Line
Count
Source
59
20.2k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<hb_ot_map_t::lookup_map_t const>::hb_array_t(hb_ot_map_t::lookup_map_t const*, unsigned int)
Line
Count
Source
59
47.1k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<LangTag const>::hb_array_t(LangTag const*, unsigned int)
Line
Count
Source
59
290k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
60
  template <unsigned int length_>
61
376k
  constexpr hb_array_t (Type (&array_)[length_]) : hb_array_t (array_, length_) {}
Unexecuted instantiation: hb_array_t<hb_aat_feature_mapping_t const>::hb_array_t<78u>(hb_aat_feature_mapping_t const (&) [78u])
Unexecuted instantiation: hb_array_t<unsigned long long const>::hb_array_t<8u>(unsigned long long const (&) [8u])
Unexecuted instantiation: hb_array_t<sid_to_gid_t const>::hb_array_t<165u>(sid_to_gid_t const (&) [165u])
Unexecuted instantiation: hb_array_t<sid_to_gid_t const>::hb_array_t<86u>(sid_to_gid_t const (&) [86u])
hb_array_t<CFF::number_t const>::hb_array_t<513u>(CFF::number_t const (&) [513u])
Line
Count
Source
61
376k
  constexpr hb_array_t (Type (&array_)[length_]) : hb_array_t (array_, length_) {}
62
63
  template <typename U,
64
      hb_enable_if (hb_is_cr_convertible(U, Type))>
65
  constexpr hb_array_t (const hb_array_t<U> &o) :
66
    hb_iter_with_fallback_t<hb_array_t, Type&> (),
67
6.49M
    arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {}
hb_array_t<hb_aat_map_builder_t::feature_info_t const>::hb_array_t<hb_aat_map_builder_t::feature_info_t, (void*)0>(hb_array_t<hb_aat_map_builder_t::feature_info_t> const&)
Line
Count
Source
67
217k
    arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {}
hb_array_t<hb_aat_map_t::range_flags_t const>::hb_array_t<hb_aat_map_t::range_flags_t, (void*)0>(hb_array_t<hb_aat_map_t::range_flags_t> const&)
Line
Count
Source
67
162k
    arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {}
hb_array_t<hb_bit_set_t::page_map_t const>::hb_array_t<hb_bit_set_t::page_map_t, (void*)0>(hb_array_t<hb_bit_set_t::page_map_t> const&)
Line
Count
Source
67
3.25M
    arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {}
hb_array_t<hb_ot_map_t::feature_map_t const>::hb_array_t<hb_ot_map_t::feature_map_t, (void*)0>(hb_array_t<hb_ot_map_t::feature_map_t> const&)
Line
Count
Source
67
2.85M
    arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {}
hb_array_t<OT::HBGlyphID16 const>::hb_array_t<OT::HBGlyphID16, (void*)0>(hb_array_t<OT::HBGlyphID16> const&)
Line
Count
Source
67
2.63k
    arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {}
68
  template <typename U,
69
      hb_enable_if (hb_is_cr_convertible(U, Type))>
70
  hb_array_t& operator = (const hb_array_t<U> &o)
71
  { arrayZ = o.arrayZ; length = o.length; backwards_length = o.backwards_length; return *this; }
72
73
  /*
74
   * Iterator implementation.
75
   */
76
  typedef Type& __item_t__;
77
  static constexpr bool is_random_access_iterator = true;
78
  Type& __item_at__ (unsigned i) const
79
176M
  {
80
176M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
176M
    return arrayZ[i];
82
176M
  }
hb_array_t<OT::IntType<short, 2u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
1.31k
  {
80
1.31k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
1.22k
    return arrayZ[i];
82
1.31k
  }
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::__item_at__(unsigned int) const
hb_array_t<hb_aat_layout_feature_type_t>::__item_at__(unsigned int) const
Line
Count
Source
79
222
  {
80
222
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
222
    return arrayZ[i];
82
222
  }
hb_array_t<AAT::FeatureName const>::__item_at__(unsigned int) const
Line
Count
Source
79
222
  {
80
222
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
222
    return arrayZ[i];
82
222
  }
hb_array_t<AAT::SettingName const>::__item_at__(unsigned int) const
Line
Count
Source
79
300
  {
80
300
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
288
    return arrayZ[i];
82
300
  }
hb_array_t<hb_aat_layout_feature_selector_info_t>::__item_at__(unsigned int) const
Line
Count
Source
79
151
  {
80
151
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
151
    return arrayZ[i];
82
151
  }
hb_array_t<hb_aat_map_t::range_flags_t const>::__item_at__(unsigned int) const
Line
Count
Source
79
160k
  {
80
160k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
160k
    return arrayZ[i];
82
160k
  }
Unexecuted instantiation: hb_array_t<unsigned long long const>::__item_at__(unsigned int) const
hb_array_t<unsigned int>::__item_at__(unsigned int) const
Line
Count
Source
79
5.56M
  {
80
5.56M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
5.56M
    return arrayZ[i];
82
5.56M
  }
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::__item_at__(unsigned int) const
hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>::__item_at__(unsigned int) const
Line
Count
Source
79
5.02k
  {
80
5.02k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
5.02k
    return arrayZ[i];
82
5.02k
  }
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t>::__item_at__(unsigned int) const
hb_array_t<unsigned int const>::__item_at__(unsigned int) const
Line
Count
Source
79
60.9k
  {
80
60.9k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
60.9k
    return arrayZ[i];
82
60.9k
  }
Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::__item_at__(unsigned int) const
hb_array_t<OT::Index const>::__item_at__(unsigned int) const
Line
Count
Source
79
3.87M
  {
80
3.87M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
3.87M
    return arrayZ[i];
82
3.87M
  }
hb_array_t<OT::IntType<unsigned int, 3u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
46
  {
80
46
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
46
    return arrayZ[i];
82
46
  }
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::Record<OT::LangSys> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::Record<OT::Script> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<hb_inc_bimap_t const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
hb_array_t<int>::__item_at__(unsigned int) const
Line
Count
Source
79
44.9M
  {
80
44.9M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
44.9M
    return arrayZ[i];
82
44.9M
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::__item_at__(unsigned int) const
Line
Count
Source
79
68.9M
  {
80
68.9M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
68.9M
    return arrayZ[i];
82
68.9M
  }
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Line
Count
Source
79
32.4M
  {
80
32.4M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
32.4M
    return arrayZ[i];
82
32.4M
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Line
Count
Source
79
3.59M
  {
80
3.59M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
3.59M
    return arrayZ[i];
82
3.59M
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::UVSMapping const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::VariationSelectorRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::EncodingRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::LayerRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<hb_ot_color_layer_t>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::DeltaSetIndexMap const*>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::index_map_subset_plan_t>::__item_at__(unsigned int) const
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
3.35k
  {
80
3.35k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
3.35k
    return arrayZ[i];
82
3.35k
  }
hb_array_t<OT::contour_point_t>::__item_at__(unsigned int) const
Line
Count
Source
79
1.36M
  {
80
1.36M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
1.36M
    return arrayZ[i];
82
1.36M
  }
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> >::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> >::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t>::__item_at__(unsigned int) const
hb_array_t<OT::ResourceRecord const>::__item_at__(unsigned int) const
Line
Count
Source
79
4.57k
  {
80
4.57k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
4.57k
    return arrayZ[i];
82
4.57k
  }
Unexecuted instantiation: hb_array_t<OT::TableRecord const>::__item_at__(unsigned int) const
hb_array_t<OT::AxisRecord const>::__item_at__(unsigned int) const
Line
Count
Source
79
12.0k
  {
80
12.0k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
12.0k
    return arrayZ[i];
82
12.0k
  }
hb_array_t<OT::IntType<unsigned int, 4u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
1.30k
  {
80
1.30k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
65
    return arrayZ[i];
82
1.30k
  }
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::__item_at__(unsigned int) const
hb_array_t<unsigned char const>::__item_at__(unsigned int) const
Line
Count
Source
79
16.8k
  {
80
16.8k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
8.09k
    return arrayZ[i];
82
16.8k
  }
hb_array_t<OT::IntType<unsigned char, 1u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
4.85k
  {
80
4.85k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
3.37k
    return arrayZ[i];
82
4.85k
  }
Unexecuted instantiation: hb_array_t<OT::DataMap const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<hb_ot_meta_tag_t>::__item_at__(unsigned int) const
hb_array_t<OT::NameRecord const>::__item_at__(unsigned int) const
Line
Count
Source
79
12.1M
  {
80
12.1M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
12.1M
    return arrayZ[i];
82
12.1M
  }
hb_array_t<OT::HBGlyphID16 const>::__item_at__(unsigned int) const
Line
Count
Source
79
108k
  {
80
108k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
108k
    return arrayZ[i];
82
108k
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Line
Count
Source
79
273k
  {
80
273k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
273k
    return arrayZ[i];
82
273k
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::VertOriginMetric const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::__item_at__(unsigned int) const
hb_array_t<OT::MathGlyphVariantRecord const>::__item_at__(unsigned int) const
Line
Count
Source
79
29
  {
80
29
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
29
    return arrayZ[i];
82
29
  }
hb_array_t<hb_ot_math_glyph_variant_t>::__item_at__(unsigned int) const
Line
Count
Source
79
29
  {
80
29
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
29
    return arrayZ[i];
82
29
  }
hb_array_t<OT::MathGlyphPartRecord const>::__item_at__(unsigned int) const
Line
Count
Source
79
8
  {
80
8
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
8
    return arrayZ[i];
82
8
  }
hb_array_t<hb_ot_math_glyph_part_t>::__item_at__(unsigned int) const
Line
Count
Source
79
8
  {
80
8
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
8
    return arrayZ[i];
82
8
  }
Unexecuted instantiation: hb_array_t<OT::MathValueRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::MathKernInfoRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
hb_array_t<OT::HBGlyphID16>::__item_at__(unsigned int) const
Line
Count
Source
79
519k
  {
80
519k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
519k
    return arrayZ[i];
82
519k
  }
hb_array_t<hb_glyph_info_t>::__item_at__(unsigned int) const
Line
Count
Source
79
2.66M
  {
80
2.66M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
2.44M
    return arrayZ[i];
82
2.66M
  }
83
  void __forward__ (unsigned n)
84
77.7M
  {
85
77.7M
    if (unlikely (n > length))
86
3.99k
      n = length;
87
77.7M
    length -= n;
88
77.7M
    backwards_length += n;
89
77.7M
    arrayZ += n;
90
77.7M
  }
hb_array_t<hb_aat_layout_feature_type_t>::__forward__(unsigned int)
Line
Count
Source
84
222
  {
85
222
    if (unlikely (n > length))
86
0
      n = length;
87
222
    length -= n;
88
222
    backwards_length += n;
89
222
    arrayZ += n;
90
222
  }
hb_array_t<AAT::FeatureName const>::__forward__(unsigned int)
Line
Count
Source
84
222
  {
85
222
    if (unlikely (n > length))
86
0
      n = length;
87
222
    length -= n;
88
222
    backwards_length += n;
89
222
    arrayZ += n;
90
222
  }
hb_array_t<hb_aat_layout_feature_selector_info_t>::__forward__(unsigned int)
Line
Count
Source
84
151
  {
85
151
    if (unlikely (n > length))
86
0
      n = length;
87
151
    length -= n;
88
151
    backwards_length += n;
89
151
    arrayZ += n;
90
151
  }
hb_array_t<AAT::SettingName const>::__forward__(unsigned int)
Line
Count
Source
84
151
  {
85
151
    if (unlikely (n > length))
86
0
      n = length;
87
151
    length -= n;
88
151
    backwards_length += n;
89
151
    arrayZ += n;
90
151
  }
hb_array_t<hb_aat_map_t::range_flags_t const>::__forward__(unsigned int)
Line
Count
Source
84
2.37k
  {
85
2.37k
    if (unlikely (n > length))
86
0
      n = length;
87
2.37k
    length -= n;
88
2.37k
    backwards_length += n;
89
2.37k
    arrayZ += n;
90
2.37k
  }
Unexecuted instantiation: hb_array_t<unsigned long long const>::__forward__(unsigned int)
hb_array_t<unsigned int>::__forward__(unsigned int)
Line
Count
Source
84
5.56M
  {
85
5.56M
    if (unlikely (n > length))
86
0
      n = length;
87
5.56M
    length -= n;
88
5.56M
    backwards_length += n;
89
5.56M
    arrayZ += n;
90
5.56M
  }
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::__forward__(unsigned int)
hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>::__forward__(unsigned int)
Line
Count
Source
84
5.02k
  {
85
5.02k
    if (unlikely (n > length))
86
0
      n = length;
87
5.02k
    length -= n;
88
5.02k
    backwards_length += n;
89
5.02k
    arrayZ += n;
90
5.02k
  }
hb_array_t<hb_serialize_context_t::object_t* const>::__forward__(unsigned int)
Line
Count
Source
84
11.1k
  {
85
11.1k
    if (unlikely (n > length))
86
3.99k
      n = length;
87
11.1k
    length -= n;
88
11.1k
    backwards_length += n;
89
11.1k
    arrayZ += n;
90
11.1k
  }
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t>::__forward__(unsigned int)
hb_array_t<unsigned int const>::__forward__(unsigned int)
Line
Count
Source
84
14.7k
  {
85
14.7k
    if (unlikely (n > length))
86
0
      n = length;
87
14.7k
    length -= n;
88
14.7k
    backwards_length += n;
89
14.7k
    arrayZ += n;
90
14.7k
  }
Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::__forward__(unsigned int)
hb_array_t<OT::Index const>::__forward__(unsigned int)
Line
Count
Source
84
3.87M
  {
85
3.87M
    if (unlikely (n > length))
86
0
      n = length;
87
3.87M
    length -= n;
88
3.87M
    backwards_length += n;
89
3.87M
    arrayZ += n;
90
3.87M
  }
hb_array_t<OT::IntType<unsigned int, 3u> const>::__forward__(unsigned int)
Line
Count
Source
84
46
  {
85
46
    if (unlikely (n > length))
86
0
      n = length;
87
46
    length -= n;
88
46
    backwards_length += n;
89
46
    arrayZ += n;
90
46
  }
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::Record<OT::LangSys> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::Record<OT::Script> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
hb_array_t<int>::__forward__(unsigned int)
Line
Count
Source
84
44.9M
  {
85
44.9M
    if (unlikely (n > length))
86
0
      n = length;
87
44.9M
    length -= n;
88
44.9M
    backwards_length += n;
89
44.9M
    arrayZ += n;
90
44.9M
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::__forward__(unsigned int)
Line
Count
Source
84
19.5M
  {
85
19.5M
    if (unlikely (n > length))
86
0
      n = length;
87
19.5M
    length -= n;
88
19.5M
    backwards_length += n;
89
19.5M
    arrayZ += n;
90
19.5M
  }
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Line
Count
Source
84
223k
  {
85
223k
    if (unlikely (n > length))
86
0
      n = length;
87
223k
    length -= n;
88
223k
    backwards_length += n;
89
223k
    arrayZ += n;
90
223k
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Line
Count
Source
84
935k
  {
85
935k
    if (unlikely (n > length))
86
0
      n = length;
87
935k
    length -= n;
88
935k
    backwards_length += n;
89
935k
    arrayZ += n;
90
935k
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::UVSMapping const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::VariationSelectorRecord const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::EncodingRecord const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::LayerRecord const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<hb_ot_color_layer_t>::__forward__(unsigned int)
hb_array_t<OT::contour_point_t>::__forward__(unsigned int)
Line
Count
Source
84
294k
  {
85
294k
    if (unlikely (n > length))
86
0
      n = length;
87
294k
    length -= n;
88
294k
    backwards_length += n;
89
294k
    arrayZ += n;
90
294k
  }
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> >::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> >::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::TableRecord const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::DataMap const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<hb_ot_meta_tag_t>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::NameRecord const>::__forward__(unsigned int)
hb_array_t<OT::HBGlyphID16 const>::__forward__(unsigned int)
Line
Count
Source
84
122k
  {
85
122k
    if (unlikely (n > length))
86
0
      n = length;
87
122k
    length -= n;
88
122k
    backwards_length += n;
89
122k
    arrayZ += n;
90
122k
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Line
Count
Source
84
273k
  {
85
273k
    if (unlikely (n > length))
86
0
      n = length;
87
273k
    length -= n;
88
273k
    backwards_length += n;
89
273k
    arrayZ += n;
90
273k
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::VertOriginMetric const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::__forward__(unsigned int)
hb_array_t<OT::MathGlyphVariantRecord const>::__forward__(unsigned int)
Line
Count
Source
84
208k
  {
85
208k
    if (unlikely (n > length))
86
0
      n = length;
87
208k
    length -= n;
88
208k
    backwards_length += n;
89
208k
    arrayZ += n;
90
208k
  }
hb_array_t<hb_ot_math_glyph_variant_t>::__forward__(unsigned int)
Line
Count
Source
84
208k
  {
85
208k
    if (unlikely (n > length))
86
0
      n = length;
87
208k
    length -= n;
88
208k
    backwards_length += n;
89
208k
    arrayZ += n;
90
208k
  }
hb_array_t<OT::MathGlyphPartRecord const>::__forward__(unsigned int)
Line
Count
Source
84
208k
  {
85
208k
    if (unlikely (n > length))
86
0
      n = length;
87
208k
    length -= n;
88
208k
    backwards_length += n;
89
208k
    arrayZ += n;
90
208k
  }
hb_array_t<hb_ot_math_glyph_part_t>::__forward__(unsigned int)
Line
Count
Source
84
208k
  {
85
208k
    if (unlikely (n > length))
86
0
      n = length;
87
208k
    length -= n;
88
208k
    backwards_length += n;
89
208k
    arrayZ += n;
90
208k
  }
Unexecuted instantiation: hb_array_t<OT::MathValueRecord const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::MathKernInfoRecord const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
hb_array_t<OT::HBGlyphID16>::__forward__(unsigned int)
Line
Count
Source
84
521k
  {
85
521k
    if (unlikely (n > length))
86
0
      n = length;
87
521k
    length -= n;
88
521k
    backwards_length += n;
89
521k
    arrayZ += n;
90
521k
  }
hb_array_t<hb_glyph_info_t>::__forward__(unsigned int)
Line
Count
Source
84
563k
  {
85
563k
    if (unlikely (n > length))
86
0
      n = length;
87
563k
    length -= n;
88
563k
    backwards_length += n;
89
563k
    arrayZ += n;
90
563k
  }
91
  void __rewind__ (unsigned n)
92
92.7k
  {
93
92.7k
    if (unlikely (n > backwards_length))
94
0
      n = backwards_length;
95
92.7k
    length += n;
96
92.7k
    backwards_length -= n;
97
92.7k
    arrayZ -= n;
98
92.7k
  }
99
184M
  unsigned __len__ () const { return length; }
hb_array_t<AAT::FeatureName const>::__len__() const
Line
Count
Source
99
208k
  unsigned __len__ () const { return length; }
hb_array_t<AAT::SettingName const>::__len__() const
Line
Count
Source
99
208k
  unsigned __len__ () const { return length; }
hb_array_t<hb_aat_map_t::range_flags_t const>::__len__() const
Line
Count
Source
99
165k
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<unsigned long long const>::__len__() const
hb_array_t<unsigned int>::__len__() const
Line
Count
Source
99
1.71M
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::__len__() const
hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>::__len__() const
Line
Count
Source
99
8.93k
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t>::__len__() const
Unexecuted instantiation: hb_array_t<unsigned int const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::__len__() const
hb_array_t<OT::Index const>::__len__() const
Line
Count
Source
99
5.50M
  unsigned __len__ () const { return length; }
hb_array_t<OT::IntType<unsigned int, 3u> const>::__len__() const
Line
Count
Source
99
208k
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::Record<OT::LangSys> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::Record<OT::Script> const>::__len__() const
Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
hb_array_t<OT::HBGlyphID16 const>::__len__() const
Line
Count
Source
99
334k
  unsigned __len__ () const { return length; }
hb_array_t<OT::HBGlyphID24 const>::__len__() const
Line
Count
Source
99
2.22k
  unsigned __len__ () const { return length; }
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::__len__() const
Line
Count
Source
99
90.4M
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Line
Count
Source
99
32.6M
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Line
Count
Source
99
349
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Line
Count
Source
99
4.73M
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const
hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Line
Count
Source
99
432
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::UVSMapping const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::VariationSelectorRecord const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::EncodingRecord const>::__len__() const
hb_array_t<int>::__len__() const
Line
Count
Source
99
45.3M
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::LayerRecord const>::__len__() const
hb_array_t<OT::contour_point_t>::__len__() const
Line
Count
Source
99
177k
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t>::__len__() const
Unexecuted instantiation: hb_array_t<OT::TableRecord const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned char, 1u> const>::__len__() const
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::__len__() const
Unexecuted instantiation: hb_array_t<unsigned char const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::DataMap const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::NameRecord const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Line
Count
Source
99
321k
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::VertOriginMetric const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::__len__() const
hb_array_t<OT::MathGlyphVariantRecord const>::__len__() const
Line
Count
Source
99
208k
  unsigned __len__ () const { return length; }
hb_array_t<hb_ot_math_glyph_variant_t>::__len__() const
Line
Count
Source
99
208k
  unsigned __len__ () const { return length; }
hb_array_t<OT::MathGlyphPartRecord const>::__len__() const
Line
Count
Source
99
208k
  unsigned __len__ () const { return length; }
hb_array_t<hb_ot_math_glyph_part_t>::__len__() const
Line
Count
Source
99
208k
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<OT::MathValueRecord const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::MathKernInfoRecord const>::__len__() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
hb_array_t<OT::HBGlyphID16>::__len__() const
Line
Count
Source
99
138k
  unsigned __len__ () const { return length; }
hb_array_t<hb_glyph_info_t>::__len__() const
Line
Count
Source
99
1.85M
  unsigned __len__ () const { return length; }
100
  /* Ouch. The operator== compares the contents of the array.  For range-based for loops,
101
   * it's best if we can just compare arrayZ, though comparing contents is still fast,
102
   * but also would require that Type has operator==.  As such, we optimize this operator
103
   * for range-based for loop and just compare arrayZ and length.
104
   *
105
   * The above comment is outdated now because we implemented separate begin/end to
106
   * objects that were using hb_array_t for range-based loop before. */
107
  bool operator != (const hb_array_t& o) const
108
520k
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t>::operator!=(hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t> const&) const
Unexecuted instantiation: hb_array_t<OT::Index const>::operator!=(hb_array_t<OT::Index const> const&) const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::operator!=(hb_array_t<OT::IntType<unsigned short, 2u> const> const&) const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::operator!=(hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t> const&) const
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::operator!=(hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const> const&) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> const&) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> const&) const
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::operator!=(hb_array_t<OT::Layout::GPOS_impl::MarkRecord const> const&) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const> const&) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> const&) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const> const&) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> const&) const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 3u> const>::operator!=(hb_array_t<OT::IntType<unsigned int, 3u> const> const&) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const> const&) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const> const&) const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t>::operator!=(hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t> const&) const
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::operator!=(hb_array_t<hb_array_t<unsigned char const> const> const&) const
Unexecuted instantiation: hb_array_t<OT::NameRecord const>::operator!=(hb_array_t<OT::NameRecord const> const&) const
Unexecuted instantiation: hb_array_t<OT::HBGlyphID16 const>::operator!=(hb_array_t<OT::HBGlyphID16 const> const&) const
Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::operator!=(hb_array_t<OT::HBGlyphID24 const> const&) const
hb_array_t<OT::MathGlyphVariantRecord const>::operator!=(hb_array_t<OT::MathGlyphVariantRecord const> const&) const
Line
Count
Source
108
208k
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
hb_array_t<hb_ot_math_glyph_variant_t>::operator!=(hb_array_t<hb_ot_math_glyph_variant_t> const&) const
Line
Count
Source
108
29
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
hb_array_t<OT::MathGlyphPartRecord const>::operator!=(hb_array_t<OT::MathGlyphPartRecord const> const&) const
Line
Count
Source
108
208k
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
hb_array_t<hb_ot_math_glyph_part_t>::operator!=(hb_array_t<hb_ot_math_glyph_part_t> const&) const
Line
Count
Source
108
8
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
hb_array_t<OT::HBGlyphID16>::operator!=(hb_array_t<OT::HBGlyphID16> const&) const
Line
Count
Source
108
102k
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
109
110
  /* Faster range-based for loop without bounds-check. */
111
676k
  Type *begin () const { return arrayZ; }
hb_array_t<hb_serialize_context_t::object_t* const>::begin() const
Line
Count
Source
111
11.1k
  Type *begin () const { return arrayZ; }
hb_array_t<hb_hashmap_t<hb_serialize_context_t::object_t const*, unsigned int, false>::item_t>::begin() const
Line
Count
Source
111
4.39k
  Type *begin () const { return arrayZ; }
hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::begin() const
Line
Count
Source
111
204k
  Type *begin () const { return arrayZ; }
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::unique_ptr<hb_set_t>, false>::item_t>::begin() const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb::shared_ptr<hb_map_t>, unsigned int, false>::item_t>::begin() const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::shared_ptr<hb_set_t>, false>::item_t>::begin() const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, OT::Feature const*, false>::item_t>::begin() const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_pair_t<unsigned int, int>, false>::item_t>::begin() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::begin() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const>::begin() const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_set_t, false>::item_t>::begin() const
Unexecuted instantiation: hb_array_t<OT::LookupRecord const>::begin() const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::begin() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::begin() const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 3u> const>::begin() const
Unexecuted instantiation: hb_array_t<OT::NoVariable<OT::ColorStop> const>::begin() const
Unexecuted instantiation: hb_array_t<OT::Variable<OT::ColorStop> const>::begin() const
Unexecuted instantiation: hb_array_t<OT::BaseGlyphRecord const>::begin() const
hb_array_t<OT::LayerRecord const>::begin() const
Line
Count
Source
111
2
  Type *begin () const { return arrayZ; }
Unexecuted instantiation: hb_array_t<OT::glyf_impl::SubsetGlyph>::begin() const
Unexecuted instantiation: hb_array_t<OT::BitmapSizeTable const>::begin() const
Unexecuted instantiation: hb_array_t<OT::Index const>::begin() const
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::begin() const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, unsigned int, false>::item_t>::begin() const
Unexecuted instantiation: hb_array_t<OT::NameRecord>::begin() const
Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const>::begin() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::begin() const
Unexecuted instantiation: hb_array_t<OT::MathGlyphPartRecord const>::begin() const
Unexecuted instantiation: hb_array_t<OT::MathGlyphVariantRecord const>::begin() const
hb_array_t<hb_ot_map_t::lookup_map_t const>::begin() const
Line
Count
Source
111
456k
  Type *begin () const { return arrayZ; }
112
676k
  Type *end () const { return arrayZ + length; }
hb_array_t<hb_serialize_context_t::object_t* const>::end() const
Line
Count
Source
112
11.1k
  Type *end () const { return arrayZ + length; }
hb_array_t<hb_hashmap_t<hb_serialize_context_t::object_t const*, unsigned int, false>::item_t>::end() const
Line
Count
Source
112
4.39k
  Type *end () const { return arrayZ + length; }
hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::end() const
Line
Count
Source
112
204k
  Type *end () const { return arrayZ + length; }
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::unique_ptr<hb_set_t>, false>::item_t>::end() const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb::shared_ptr<hb_map_t>, unsigned int, false>::item_t>::end() const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::shared_ptr<hb_set_t>, false>::item_t>::end() const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, OT::Feature const*, false>::item_t>::end() const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_pair_t<unsigned int, int>, false>::item_t>::end() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::end() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const>::end() const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_set_t, false>::item_t>::end() const
Unexecuted instantiation: hb_array_t<OT::LookupRecord const>::end() const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::end() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::end() const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 3u> const>::end() const
Unexecuted instantiation: hb_array_t<OT::NoVariable<OT::ColorStop> const>::end() const
Unexecuted instantiation: hb_array_t<OT::Variable<OT::ColorStop> const>::end() const
Unexecuted instantiation: hb_array_t<OT::BaseGlyphRecord const>::end() const
hb_array_t<OT::LayerRecord const>::end() const
Line
Count
Source
112
2
  Type *end () const { return arrayZ + length; }
Unexecuted instantiation: hb_array_t<OT::glyf_impl::SubsetGlyph>::end() const
Unexecuted instantiation: hb_array_t<OT::BitmapSizeTable const>::end() const
Unexecuted instantiation: hb_array_t<OT::Index const>::end() const
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::end() const
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, unsigned int, false>::item_t>::end() const
Unexecuted instantiation: hb_array_t<OT::NameRecord>::end() const
Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const>::end() const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::end() const
Unexecuted instantiation: hb_array_t<OT::MathGlyphPartRecord const>::end() const
Unexecuted instantiation: hb_array_t<OT::MathGlyphVariantRecord const>::end() const
hb_array_t<hb_ot_map_t::lookup_map_t const>::end() const
Line
Count
Source
112
456k
  Type *end () const { return arrayZ + length; }
113
114
115
  /* Extra operators.
116
   */
117
33.9M
  Type * operator & () const { return arrayZ; }
hb_array_t<AAT::Feature const>::operator&() const
Line
Count
Source
117
120k
  Type * operator & () const { return arrayZ; }
Unexecuted instantiation: hb_array_t<OT::Index const>::operator&() const
hb_array_t<OT::HBGlyphID16 const>::operator&() const
Line
Count
Source
117
286k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::HBGlyphID24 const>::operator&() const
Line
Count
Source
117
2.22k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::operator&() const
Line
Count
Source
117
973k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<unsigned short, 2u> const>::operator&() const
Line
Count
Source
117
32.4M
  Type * operator & () const { return arrayZ; }
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 3u> const>::operator&() const
Unexecuted instantiation: hb_array_t<char const>::operator&() const
hb_array_t<OT::AxisRecord const>::operator&() const
Line
Count
Source
117
20.3k
  Type * operator & () const { return arrayZ; }
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::operator&() const
hb_array_t<unsigned char const>::operator&() const
Line
Count
Source
117
41.4k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<short, 2u> const>::operator&() const
Line
Count
Source
117
1.77k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<unsigned char, 1u> const>::operator&() const
Line
Count
Source
117
3.54k
  Type * operator & () const { return arrayZ; }
118
70.9M
  operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); }
hb_array_t<hb_ot_map_t::lookup_map_t>::operator hb_array_t<hb_ot_map_t::lookup_map_t const>()
Line
Count
Source
118
2.66k
  operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); }
Unexecuted instantiation: hb_array_t<hb_serialize_context_t::object_t::link_t>::operator hb_array_t<hb_serialize_context_t::object_t::link_t const>()
hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t*>::operator hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>()
Line
Count
Source
118
3.90k
  operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); }
hb_array_t<hb_serialize_context_t::object_t*>::operator hb_array_t<hb_serialize_context_t::object_t* const>()
Line
Count
Source
118
11.1k
  operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); }
hb_array_t<unsigned int>::operator hb_array_t<unsigned int const>()
Line
Count
Source
118
5.26k
  operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); }
Unexecuted instantiation: hb_array_t<hb_inc_bimap_t>::operator hb_array_t<hb_inc_bimap_t const>()
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t>::operator hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>()
Line
Count
Source
118
70.9M
  operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); }
Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> >::operator hb_array_t<hb_pair_t<unsigned int, unsigned int> const>()
Unexecuted instantiation: hb_array_t<OT::LayerRecord>::operator hb_array_t<OT::LayerRecord const>()
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> >::operator hb_array_t<hb_array_t<unsigned char const> const>()
hb_array_t<OT::HBGlyphID16>::operator hb_array_t<OT::HBGlyphID16 const>()
Line
Count
Source
118
5.26k
  operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); }
119
  template <typename T> operator T * () const { return arrayZ; }
120
121
  HB_INTERNAL bool operator == (const hb_array_t &o) const;
122
123
  uint32_t hash () const
124
  {
125
    uint32_t current = 0;
126
    for (auto &v : *this)
127
      current = current * 31 + hb_hash (v);
128
    return current;
129
  }
130
131
  /*
132
   * Compare, Sort, and Search.
133
   */
134
135
  /* Note: our compare is NOT lexicographic; it also does NOT call Type::cmp. */
136
  int cmp (const hb_array_t &a) const
137
8.90M
  {
138
8.90M
    if (length != a.length)
139
3.74M
      return (int) a.length - (int) length;
140
5.16M
    return hb_memcmp (a.arrayZ, arrayZ, get_size ());
141
8.90M
  }
142
  HB_INTERNAL static int cmp (const void *pa, const void *pb)
143
  {
144
    hb_array_t *a = (hb_array_t *) pa;
145
    hb_array_t *b = (hb_array_t *) pb;
146
    return b->cmp (*a);
147
  }
148
149
  template <typename T>
150
  Type *lsearch (const T &x, Type *not_found = nullptr)
151
944k
  {
152
944k
    unsigned i;
153
944k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
944k
  }
hb_user_data_array_t::hb_user_data_item_t* hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::lsearch<hb_user_data_key_t*>(hb_user_data_key_t* const&, hb_user_data_array_t::hb_user_data_item_t*)
Line
Count
Source
151
405k
  {
152
405k
    unsigned i;
153
405k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
405k
  }
hb_user_data_array_t::hb_user_data_item_t* hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::lsearch<hb_user_data_array_t::hb_user_data_item_t>(hb_user_data_array_t::hb_user_data_item_t const&, hb_user_data_array_t::hb_user_data_item_t*)
Line
Count
Source
151
210k
  {
152
210k
    unsigned i;
153
210k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
210k
  }
hb_aat_map_builder_t::feature_info_t* hb_array_t<hb_aat_map_builder_t::feature_info_t>::lsearch<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, hb_aat_map_builder_t::feature_info_t*)
Line
Count
Source
151
119k
  {
152
119k
    unsigned i;
153
119k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
119k
  }
OT::DataMap const* hb_array_t<OT::DataMap const>::lsearch<unsigned int>(unsigned int const&, OT::DataMap const*)
Line
Count
Source
151
208k
  {
152
208k
    unsigned i;
153
208k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
208k
  }
155
  template <typename T>
156
  const Type *lsearch (const T &x, const Type *not_found = nullptr) const
157
  {
158
    unsigned i;
159
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
160
  }
161
  template <typename T>
162
  bool lfind (const T &x, unsigned *pos = nullptr,
163
        hb_not_found_t not_found = HB_NOT_FOUND_DONT_STORE,
164
        unsigned int to_store = (unsigned int) -1) const
165
7.20M
  {
166
58.9M
    for (unsigned i = 0; i < length; ++i)
167
53.4M
      if (hb_equal (x, this->arrayZ[i]))
168
1.66M
      {
169
1.66M
  if (pos)
170
1.66M
    *pos = i;
171
1.66M
  return true;
172
1.66M
      }
173
174
5.54M
    if (pos)
175
5.54M
    {
176
5.54M
      switch (not_found)
177
5.54M
      {
178
542k
  case HB_NOT_FOUND_DONT_STORE:
179
542k
    break;
180
181
4.99M
  case HB_NOT_FOUND_STORE:
182
4.99M
    *pos = to_store;
183
4.99M
    break;
184
185
0
  case HB_NOT_FOUND_STORE_CLOSEST:
186
0
    *pos = length;
187
0
    break;
188
5.54M
      }
189
5.54M
    }
190
5.54M
    return false;
191
5.54M
  }
bool hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::lfind<hb_user_data_key_t*>(hb_user_data_key_t* const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
165
405k
  {
166
405k
    for (unsigned i = 0; i < length; ++i)
167
402k
      if (hb_equal (x, this->arrayZ[i]))
168
402k
      {
169
402k
  if (pos)
170
402k
    *pos = i;
171
402k
  return true;
172
402k
      }
173
174
3.43k
    if (pos)
175
3.43k
    {
176
3.43k
      switch (not_found)
177
3.43k
      {
178
3.43k
  case HB_NOT_FOUND_DONT_STORE:
179
3.43k
    break;
180
181
0
  case HB_NOT_FOUND_STORE:
182
0
    *pos = to_store;
183
0
    break;
184
185
0
  case HB_NOT_FOUND_STORE_CLOSEST:
186
0
    *pos = length;
187
0
    break;
188
3.43k
      }
189
3.43k
    }
190
3.43k
    return false;
191
3.43k
  }
bool hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::lfind<hb_user_data_array_t::hb_user_data_item_t>(hb_user_data_array_t::hb_user_data_item_t const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
165
210k
  {
166
210k
    for (unsigned i = 0; i < length; ++i)
167
0
      if (hb_equal (x, this->arrayZ[i]))
168
0
      {
169
0
  if (pos)
170
0
    *pos = i;
171
0
  return true;
172
0
      }
173
174
210k
    if (pos)
175
210k
    {
176
210k
      switch (not_found)
177
210k
      {
178
210k
  case HB_NOT_FOUND_DONT_STORE:
179
210k
    break;
180
181
0
  case HB_NOT_FOUND_STORE:
182
0
    *pos = to_store;
183
0
    break;
184
185
0
  case HB_NOT_FOUND_STORE_CLOSEST:
186
0
    *pos = length;
187
0
    break;
188
210k
      }
189
210k
    }
190
210k
    return false;
191
210k
  }
bool hb_array_t<hb_aat_map_builder_t::feature_info_t>::lfind<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
165
119k
  {
166
119k
    for (unsigned i = 0; i < length; ++i)
167
0
      if (hb_equal (x, this->arrayZ[i]))
168
0
      {
169
0
  if (pos)
170
0
    *pos = i;
171
0
  return true;
172
0
      }
173
174
119k
    if (pos)
175
119k
    {
176
119k
      switch (not_found)
177
119k
      {
178
119k
  case HB_NOT_FOUND_DONT_STORE:
179
119k
    break;
180
181
0
  case HB_NOT_FOUND_STORE:
182
0
    *pos = to_store;
183
0
    break;
184
185
0
  case HB_NOT_FOUND_STORE_CLOSEST:
186
0
    *pos = length;
187
0
    break;
188
119k
      }
189
119k
    }
190
119k
    return false;
191
119k
  }
bool hb_array_t<OT::TableRecord const>::lfind<OT::Tag>(OT::Tag const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
165
6.26M
  {
166
58.0M
    for (unsigned i = 0; i < length; ++i)
167
53.0M
      if (hb_equal (x, this->arrayZ[i]))
168
1.26M
      {
169
1.26M
  if (pos)
170
1.26M
    *pos = i;
171
1.26M
  return true;
172
1.26M
      }
173
174
4.99M
    if (pos)
175
4.99M
    {
176
4.99M
      switch (not_found)
177
4.99M
      {
178
0
  case HB_NOT_FOUND_DONT_STORE:
179
0
    break;
180
181
4.99M
  case HB_NOT_FOUND_STORE:
182
4.99M
    *pos = to_store;
183
4.99M
    break;
184
185
0
  case HB_NOT_FOUND_STORE_CLOSEST:
186
0
    *pos = length;
187
0
    break;
188
4.99M
      }
189
4.99M
    }
190
4.99M
    return false;
191
4.99M
  }
Unexecuted instantiation: bool hb_array_t<OT::AxisRecord const>::lfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
bool hb_array_t<OT::DataMap const>::lfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
165
208k
  {
166
208k
    for (unsigned i = 0; i < length; ++i)
167
234
      if (hb_equal (x, this->arrayZ[i]))
168
112
      {
169
112
  if (pos)
170
112
    *pos = i;
171
112
  return true;
172
112
      }
173
174
208k
    if (pos)
175
208k
    {
176
208k
      switch (not_found)
177
208k
      {
178
208k
  case HB_NOT_FOUND_DONT_STORE:
179
208k
    break;
180
181
0
  case HB_NOT_FOUND_STORE:
182
0
    *pos = to_store;
183
0
    break;
184
185
0
  case HB_NOT_FOUND_STORE_CLOSEST:
186
0
    *pos = length;
187
0
    break;
188
208k
      }
189
208k
    }
190
208k
    return false;
191
208k
  }
Unexecuted instantiation: bool hb_array_t<OT::StatAxisRecord const>::lfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
192
193
  hb_sorted_array_t<Type> qsort (int (*cmp_)(const void*, const void*))
194
635k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
635k
    if (likely (length))
197
394k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
635k
    return hb_sorted_array_t<Type> (*this);
199
635k
  }
Unexecuted instantiation: hb_array_t<unsigned int>::qsort(int (*)(void const*, void const*))
hb_array_t<hb_aat_map_builder_t::feature_event_t>::qsort(int (*)(void const*, void const*))
Line
Count
Source
194
120k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
120k
    if (likely (length))
197
0
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
120k
    return hb_sorted_array_t<Type> (*this);
199
120k
  }
Unexecuted instantiation: hb_array_t<hb_aat_map_builder_t::feature_info_t>::qsort(int (*)(void const*, void const*))
hb_array_t<OT::cff1::accelerator_t::gname_t>::qsort(int (*)(void const*, void const*))
Line
Count
Source
194
20.5k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
20.5k
    if (likely (length))
197
20.5k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
20.5k
    return hb_sorted_array_t<Type> (*this);
199
20.5k
  }
hb_array_t<hb_ot_name_entry_t>::qsort(int (*)(void const*, void const*))
Line
Count
Source
194
206k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
206k
    if (likely (length))
197
85.2k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
206k
    return hb_sorted_array_t<Type> (*this);
199
206k
  }
hb_array_t<hb_ot_map_builder_t::feature_info_t>::qsort(int (*)(void const*, void const*))
Line
Count
Source
194
288k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
288k
    if (likely (length))
197
288k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
288k
    return hb_sorted_array_t<Type> (*this);
199
288k
  }
200
  hb_sorted_array_t<Type> qsort ()
201
86.1k
  {
202
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
203
86.1k
    if (likely (length))
204
86.1k
      hb_qsort (arrayZ, length, this->get_item_size (), Type::cmp);
205
86.1k
    return hb_sorted_array_t<Type> (*this);
206
86.1k
  }
Unexecuted instantiation: hb_array_t<OT::NameRecord>::qsort()
hb_array_t<hb_ot_map_t::lookup_map_t>::qsort()
Line
Count
Source
201
86.1k
  {
202
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
203
86.1k
    if (likely (length))
204
86.1k
      hb_qsort (arrayZ, length, this->get_item_size (), Type::cmp);
205
86.1k
    return hb_sorted_array_t<Type> (*this);
206
86.1k
  }
207
208
  /*
209
   * Other methods.
210
   */
211
212
38.7M
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<AAT::Feature const>::get_size() const
Line
Count
Source
212
120k
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::get_size() const
Line
Count
Source
212
973k
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<OT::IntType<unsigned short, 2u> const>::get_size() const
Line
Count
Source
212
32.4M
  unsigned int get_size () const { return length * this->get_item_size (); }
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 3u> const>::get_size() const
Unexecuted instantiation: hb_array_t<OT::LayerRecord const>::get_size() const
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::get_size() const
Line
Count
Source
212
7.08k
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<OT::contour_point_t>::get_size() const
Line
Count
Source
212
157
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<char const>::get_size() const
Line
Count
Source
212
5.16M
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<OT::AxisRecord const>::get_size() const
Line
Count
Source
212
20.3k
  unsigned int get_size () const { return length * this->get_item_size (); }
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::get_size() const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> const>::get_size() const
Unexecuted instantiation: hb_array_t<OT::Index const>::get_size() const
hb_array_t<OT::IntType<unsigned char, 1u> const>::get_size() const
Line
Count
Source
212
3.54k
  unsigned int get_size () const { return length * this->get_item_size (); }
Unexecuted instantiation: hb_array_t<unsigned char const>::get_size() const
hb_array_t<OT::IntType<short, 2u> const>::get_size() const
Line
Count
Source
212
1.77k
  unsigned int get_size () const { return length * this->get_item_size (); }
213
214
  /*
215
   * Reverse the order of items in this array in the range [start, end).
216
   */
217
  void reverse (unsigned start = 0, unsigned end = -1)
218
73.1k
  {
219
73.1k
    start = hb_min (start, length);
220
73.1k
    end = hb_min (end, length);
221
222
73.1k
    if (end < start + 2)
223
42.8k
      return;
224
225
2.40M
    for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--)
226
2.37M
      hb_swap (arrayZ[rhs], arrayZ[lhs]);
227
30.3k
  }
hb_array_t<hb_glyph_info_t>::reverse(unsigned int, unsigned int)
Line
Count
Source
218
57.6k
  {
219
57.6k
    start = hb_min (start, length);
220
57.6k
    end = hb_min (end, length);
221
222
57.6k
    if (end < start + 2)
223
39.9k
      return;
224
225
2.23M
    for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--)
226
2.21M
      hb_swap (arrayZ[rhs], arrayZ[lhs]);
227
17.7k
  }
hb_array_t<hb_glyph_position_t>::reverse(unsigned int, unsigned int)
Line
Count
Source
218
15.4k
  {
219
15.4k
    start = hb_min (start, length);
220
15.4k
    end = hb_min (end, length);
221
222
15.4k
    if (end < start + 2)
223
2.87k
      return;
224
225
172k
    for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--)
226
160k
      hb_swap (arrayZ[rhs], arrayZ[lhs]);
227
12.5k
  }
Unexecuted instantiation: hb_array_t<OT::VariationSelectorRecord>::reverse(unsigned int, unsigned int)
228
229
  hb_array_t sub_array (unsigned int start_offset = 0, unsigned int *seg_count = nullptr /* IN/OUT */) const
230
4.73M
  {
231
4.73M
    if (!start_offset && !seg_count)
232
23.8k
      return *this;
233
234
4.70M
    unsigned int count = length;
235
4.70M
    if (unlikely (start_offset > count))
236
3.90k
      count = 0;
237
4.70M
    else
238
4.70M
      count -= start_offset;
239
4.70M
    if (seg_count)
240
4.59M
      count = *seg_count = hb_min (count, *seg_count);
241
4.70M
    return hb_array_t (arrayZ + start_offset, count);
242
4.73M
  }
hb_array_t<AAT::FeatureName const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
208k
  {
231
208k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
208k
    unsigned int count = length;
235
208k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
208k
    else
238
208k
      count -= start_offset;
239
208k
    if (seg_count)
240
208k
      count = *seg_count = hb_min (count, *seg_count);
241
208k
    return hb_array_t (arrayZ + start_offset, count);
242
208k
  }
hb_array_t<AAT::SettingName const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
208k
  {
231
208k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
208k
    unsigned int count = length;
235
208k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
208k
    else
238
208k
      count -= start_offset;
239
208k
    if (seg_count)
240
208k
      count = *seg_count = hb_min (count, *seg_count);
241
208k
    return hb_array_t (arrayZ + start_offset, count);
242
208k
  }
hb_array_t<hb_ot_map_t::lookup_map_t const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
2.66k
  {
231
2.66k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
2.66k
    unsigned int count = length;
235
2.66k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
2.66k
    else
238
2.66k
      count -= start_offset;
239
2.66k
    if (seg_count)
240
2.66k
      count = *seg_count = hb_min (count, *seg_count);
241
2.66k
    return hb_array_t (arrayZ + start_offset, count);
242
2.66k
  }
hb_array_t<OT::Index const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
1.62M
  {
231
1.62M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
1.62M
    unsigned int count = length;
235
1.62M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
1.62M
    else
238
1.62M
      count -= start_offset;
239
1.62M
    if (seg_count)
240
1.62M
      count = *seg_count = hb_min (count, *seg_count);
241
1.62M
    return hb_array_t (arrayZ + start_offset, count);
242
1.62M
  }
hb_array_t<OT::IntType<unsigned int, 3u> const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
208k
  {
231
208k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
208k
    unsigned int count = length;
235
208k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
208k
    else
238
208k
      count -= start_offset;
239
208k
    if (seg_count)
240
208k
      count = *seg_count = hb_min (count, *seg_count);
241
208k
    return hb_array_t (arrayZ + start_offset, count);
242
208k
  }
Unexecuted instantiation: hb_array_t<OT::Record<OT::LangSys> const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_array_t<OT::Record<OT::Script> const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::sub_array(unsigned int, unsigned int*) const
hb_array_t<OT::LayerRecord const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
208k
  {
231
208k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
208k
    unsigned int count = length;
235
208k
    if (unlikely (start_offset > count))
236
18
      count = 0;
237
208k
    else
238
208k
      count -= start_offset;
239
208k
    if (seg_count)
240
208k
      count = *seg_count = hb_min (count, *seg_count);
241
208k
    return hb_array_t (arrayZ + start_offset, count);
242
208k
  }
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
3.21k
  {
231
3.21k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
3.21k
    unsigned int count = length;
235
3.21k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
3.21k
    else
238
3.21k
      count -= start_offset;
239
3.21k
    if (seg_count)
240
3.21k
      count = *seg_count = hb_min (count, *seg_count);
241
3.21k
    return hb_array_t (arrayZ + start_offset, count);
242
3.21k
  }
hb_array_t<char const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
49.9k
  {
231
49.9k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
49.9k
    unsigned int count = length;
235
49.9k
    if (unlikely (start_offset > count))
236
3.88k
      count = 0;
237
46.0k
    else
238
46.0k
      count -= start_offset;
239
49.9k
    if (seg_count)
240
49.9k
      count = *seg_count = hb_min (count, *seg_count);
241
49.9k
    return hb_array_t (arrayZ + start_offset, count);
242
49.9k
  }
hb_array_t<OT::contour_point_t>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
443k
  {
231
443k
    if (!start_offset && !seg_count)
232
23.8k
      return *this;
233
234
419k
    unsigned int count = length;
235
419k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
419k
    else
238
419k
      count -= start_offset;
239
419k
    if (seg_count)
240
309k
      count = *seg_count = hb_min (count, *seg_count);
241
419k
    return hb_array_t (arrayZ + start_offset, count);
242
443k
  }
Unexecuted instantiation: hb_array_t<OT::TableRecord const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_array_t<OT::AxisRecord const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::sub_array(unsigned int, unsigned int*) const
hb_array_t<OT::IntType<unsigned int, 4u> const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
163
  {
231
163
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
163
    unsigned int count = length;
235
163
    if (unlikely (start_offset > count))
236
8
      count = 0;
237
155
    else
238
155
      count -= start_offset;
239
163
    if (seg_count)
240
163
      count = *seg_count = hb_min (count, *seg_count);
241
163
    return hb_array_t (arrayZ + start_offset, count);
242
163
  }
hb_array_t<unsigned char const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
814k
  {
231
814k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
814k
    unsigned int count = length;
235
814k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
814k
    else
238
814k
      count -= start_offset;
239
814k
    if (seg_count)
240
814k
      count = *seg_count = hb_min (count, *seg_count);
241
814k
    return hb_array_t (arrayZ + start_offset, count);
242
814k
  }
Unexecuted instantiation: hb_array_t<OT::DataMap const>::sub_array(unsigned int, unsigned int*) const
hb_array_t<OT::HBGlyphID16 const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
60.9k
  {
231
60.9k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
60.9k
    unsigned int count = length;
235
60.9k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
60.9k
    else
238
60.9k
      count -= start_offset;
239
60.9k
    if (seg_count)
240
60.9k
      count = *seg_count = hb_min (count, *seg_count);
241
60.9k
    return hb_array_t (arrayZ + start_offset, count);
242
60.9k
  }
hb_array_t<unsigned int const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
14.9k
  {
231
14.9k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
14.9k
    unsigned int count = length;
235
14.9k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
14.9k
    else
238
14.9k
      count -= start_offset;
239
14.9k
    if (seg_count)
240
14.9k
      count = *seg_count = hb_min (count, *seg_count);
241
14.9k
    return hb_array_t (arrayZ + start_offset, count);
242
14.9k
  }
Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::sub_array(unsigned int, unsigned int*) const
hb_array_t<OT::MathGlyphVariantRecord const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
208k
  {
231
208k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
208k
    unsigned int count = length;
235
208k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
208k
    else
238
208k
      count -= start_offset;
239
208k
    if (seg_count)
240
208k
      count = *seg_count = hb_min (count, *seg_count);
241
208k
    return hb_array_t (arrayZ + start_offset, count);
242
208k
  }
hb_array_t<OT::MathGlyphPartRecord const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
208k
  {
231
208k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
208k
    unsigned int count = length;
235
208k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
208k
    else
238
208k
      count -= start_offset;
239
208k
    if (seg_count)
240
208k
      count = *seg_count = hb_min (count, *seg_count);
241
208k
    return hb_array_t (arrayZ + start_offset, count);
242
208k
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::sub_array(unsigned int, unsigned int*) const
hb_array_t<CFF::number_t const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
376k
  {
231
376k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
376k
    unsigned int count = length;
235
376k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
376k
    else
238
376k
      count -= start_offset;
239
376k
    if (seg_count)
240
376k
      count = *seg_count = hb_min (count, *seg_count);
241
376k
    return hb_array_t (arrayZ + start_offset, count);
242
376k
  }
hb_array_t<hb_ot_map_t::lookup_map_t>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
86.1k
  {
231
86.1k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
86.1k
    unsigned int count = length;
235
86.1k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
86.1k
    else
238
86.1k
      count -= start_offset;
239
86.1k
    if (seg_count)
240
86.1k
      count = *seg_count = hb_min (count, *seg_count);
241
86.1k
    return hb_array_t (arrayZ + start_offset, count);
242
86.1k
  }
243
  hb_array_t sub_array (unsigned int start_offset, unsigned int seg_count) const
244
1.92M
  { return sub_array (start_offset, &seg_count); }
hb_array_t<hb_ot_map_t::lookup_map_t const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
2.66k
  { return sub_array (start_offset, &seg_count); }
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::sub_array(unsigned int, unsigned int) const
hb_array_t<OT::LayerRecord const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
208k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
3.21k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<char const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
49.9k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<OT::contour_point_t>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
309k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<OT::IntType<unsigned int, 4u> const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
163
  { return sub_array (start_offset, &seg_count); }
hb_array_t<unsigned char const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
814k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<OT::HBGlyphID16 const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
60.9k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<unsigned int const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
14.9k
  { return sub_array (start_offset, &seg_count); }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::sub_array(unsigned int, unsigned int) const
hb_array_t<CFF::number_t const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
376k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<hb_ot_map_t::lookup_map_t>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
86.1k
  { return sub_array (start_offset, &seg_count); }
245
246
  hb_array_t truncate (unsigned length) const { return sub_array (0, length); }
247
248
  template <typename T,
249
      unsigned P = sizeof (Type),
250
      hb_enable_if (P == 1)>
251
  const T *as () const
252
192M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::GDEF const* hb_array_t<char const>::as<OT::GDEF, 1u, (void*)0>() const
Line
Count
Source
252
10.3M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
AAT::ltag const* hb_array_t<char const>::as<AAT::ltag, 1u, (void*)0>() const
Line
Count
Source
252
2.91M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
AAT::morx const* hb_array_t<char const>::as<AAT::morx, 1u, (void*)0>() const
Line
Count
Source
252
530k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
AAT::mort const* hb_array_t<char const>::as<AAT::mort, 1u, (void*)0>() const
Line
Count
Source
252
284k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
AAT::kerx const* hb_array_t<char const>::as<AAT::kerx, 1u, (void*)0>() const
Line
Count
Source
252
311k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
AAT::ankr const* hb_array_t<char const>::as<AAT::ankr, 1u, (void*)0>() const
Line
Count
Source
252
20.5k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
AAT::trak const* hb_array_t<char const>::as<AAT::trak, 1u, (void*)0>() const
Line
Count
Source
252
292k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
AAT::feat const* hb_array_t<char const>::as<AAT::feat, 1u, (void*)0>() const
Line
Count
Source
252
626k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::Layout::GPOS const* hb_array_t<char const>::as<OT::Layout::GPOS, 1u, (void*)0>() const
Line
Count
Source
252
54.6M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::maxp const* hb_array_t<char const>::as<OT::maxp, 1u, (void*)0>() const
Line
Count
Source
252
618k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::head const* hb_array_t<char const>::as<OT::head, 1u, (void*)0>() const
Line
Count
Source
252
621k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::MVAR const* hb_array_t<char const>::as<OT::MVAR, 1u, (void*)0>() const
Line
Count
Source
252
1.23M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::cmap const* hb_array_t<char const>::as<OT::cmap, 1u, (void*)0>() const
Line
Count
Source
252
411k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::OS2 const* hb_array_t<char const>::as<OT::OS2, 1u, (void*)0>() const
Line
Count
Source
252
1.24M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::COLR const* hb_array_t<char const>::as<OT::COLR, 1u, (void*)0>() const
Line
Count
Source
252
669k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::hhea const* hb_array_t<char const>::as<OT::hhea, 1u, (void*)0>() const
Line
Count
Source
252
1.61M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::vhea const* hb_array_t<char const>::as<OT::vhea, 1u, (void*)0>() const
Line
Count
Source
252
206k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::GlyphVariationData const* hb_array_t<char const>::as<OT::GlyphVariationData, 1u, (void*)0>() const
Line
Count
Source
252
21.1k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::gvar const* hb_array_t<char const>::as<OT::gvar, 1u, (void*)0>() const
Line
Count
Source
252
89.1k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::hmtxvmtx<OT::hmtx, OT::hhea, OT::HVAR> const* hb_array_t<char const>::as<OT::hmtxvmtx<OT::hmtx, OT::hhea, OT::HVAR>, 1u, (void*)0>() const
Line
Count
Source
252
9.05M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::hmtxvmtx<OT::vmtx, OT::vhea, OT::VVAR> const* hb_array_t<char const>::as<OT::hmtxvmtx<OT::vmtx, OT::vhea, OT::VVAR>, 1u, (void*)0>() const
Line
Count
Source
252
5.19k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::glyf_impl::GlyphHeader const* hb_array_t<char const>::as<OT::glyf_impl::GlyphHeader, 1u, (void*)0>() const
Line
Count
Source
252
207k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::loca const* hb_array_t<char const>::as<OT::loca, 1u, (void*)0>() const
Line
Count
Source
252
130k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::glyf const* hb_array_t<char const>::as<OT::glyf, 1u, (void*)0>() const
Line
Count
Source
252
116k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::OpenTypeFontFile const* hb_array_t<char const>::as<OT::OpenTypeFontFile, 1u, (void*)0>() const
Line
Count
Source
252
7.98M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::fvar const* hb_array_t<char const>::as<OT::fvar, 1u, (void*)0>() const
Line
Count
Source
252
1.25M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::avar const* hb_array_t<char const>::as<OT::avar, 1u, (void*)0>() const
Line
Count
Source
252
625k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::SVG const* hb_array_t<char const>::as<OT::SVG, 1u, (void*)0>() const
Line
Count
Source
252
626k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::sbix const* hb_array_t<char const>::as<OT::sbix, 1u, (void*)0>() const
Line
Count
Source
252
690k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::CBLC const* hb_array_t<char const>::as<OT::CBLC, 1u, (void*)0>() const
Line
Count
Source
252
508k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::CBDT const* hb_array_t<char const>::as<OT::CBDT, 1u, (void*)0>() const
Line
Count
Source
252
45
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::CPAL const* hb_array_t<char const>::as<OT::CPAL, 1u, (void*)0>() const
Line
Count
Source
252
1.25M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::sbix::accelerator_t::PNGHeader const* hb_array_t<char const>::as<OT::sbix::accelerator_t::PNGHeader, 1u, (void*)0>() const
Line
Count
Source
252
2.70k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::cff1 const* hb_array_t<char const>::as<OT::cff1, 1u, (void*)0>() const
Line
Count
Source
252
205k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::cff2 const* hb_array_t<char const>::as<OT::cff2, 1u, (void*)0>() const
Line
Count
Source
252
174k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::meta const* hb_array_t<char const>::as<OT::meta, 1u, (void*)0>() const
Line
Count
Source
252
417k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::name const* hb_array_t<char const>::as<OT::name, 1u, (void*)0>() const
Line
Count
Source
252
1.31M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::post const* hb_array_t<char const>::as<OT::post, 1u, (void*)0>() const
Line
Count
Source
252
269k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::Layout::GSUB const* hb_array_t<char const>::as<OT::Layout::GSUB, 1u, (void*)0>() const
Line
Count
Source
252
71.1M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::HVAR const* hb_array_t<char const>::as<OT::HVAR, 1u, (void*)0>() const
Line
Count
Source
252
4.46M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::VVAR const* hb_array_t<char const>::as<OT::VVAR, 1u, (void*)0>() const
Line
Count
Source
252
9.96k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::VORG const* hb_array_t<char const>::as<OT::VORG, 1u, (void*)0>() const
Line
Count
Source
252
208k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::kern const* hb_array_t<char const>::as<OT::kern, 1u, (void*)0>() const
Line
Count
Source
252
287k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::BASE const* hb_array_t<char const>::as<OT::BASE, 1u, (void*)0>() const
Line
Count
Source
252
208k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::MATH const* hb_array_t<char const>::as<OT::MATH, 1u, (void*)0>() const
Line
Count
Source
252
14.6M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
253
254
  template <typename T,
255
      unsigned P = sizeof (Type),
256
      hb_enable_if (P == 1)>
257
  bool check_range (const T *p, unsigned int size = T::static_size) const
258
758k
  {
259
758k
    return arrayZ <= ((const char *) p)
260
758k
  && ((const char *) p) <= arrayZ + length
261
758k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
758k
  }
bool hb_array_t<char const>::check_range<OT::TupleVariationHeader, 1u, (void*)0>(OT::TupleVariationHeader const*, unsigned int) const
Line
Count
Source
258
10.2k
  {
259
10.2k
    return arrayZ <= ((const char *) p)
260
10.2k
  && ((const char *) p) <= arrayZ + length
261
10.2k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
10.2k
  }
bool hb_array_t<char const>::check_range<OT::IntType<unsigned char, 1u>, 1u, (void*)0>(OT::IntType<unsigned char, 1u> const*, unsigned int) const
Line
Count
Source
258
1.71k
  {
259
1.71k
    return arrayZ <= ((const char *) p)
260
1.71k
  && ((const char *) p) <= arrayZ + length
261
1.71k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
1.71k
  }
bool hb_array_t<char const>::check_range<OT::IntType<unsigned short, 2u>, 1u, (void*)0>(OT::IntType<unsigned short, 2u> const*, unsigned int) const
Line
Count
Source
258
11.8k
  {
259
11.8k
    return arrayZ <= ((const char *) p)
260
11.8k
  && ((const char *) p) <= arrayZ + length
261
11.8k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
11.8k
  }
bool hb_array_t<char const>::check_range<OT::glyf_impl::CompositeGlyphRecord, 1u, (void*)0>(OT::glyf_impl::CompositeGlyphRecord const*, unsigned int) const
Line
Count
Source
258
305k
  {
259
305k
    return arrayZ <= ((const char *) p)
260
305k
  && ((const char *) p) <= arrayZ + length
261
305k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
305k
  }
bool hb_array_t<char const>::check_range<OT::glyf_impl::VarCompositeGlyphRecord, 1u, (void*)0>(OT::glyf_impl::VarCompositeGlyphRecord const*, unsigned int) const
Line
Count
Source
258
428k
  {
259
428k
    return arrayZ <= ((const char *) p)
260
428k
  && ((const char *) p) <= arrayZ + length
261
428k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
428k
  }
263
264
  /* Only call if you allocated the underlying array using hb_malloc() or similar. */
265
  void fini ()
266
0
  { hb_free ((void *) arrayZ); arrayZ = nullptr; length = 0; }
267
268
  template <typename hb_serialize_context_t,
269
      typename U = Type,
270
      hb_enable_if (!(sizeof (U) < sizeof (long long) && hb_is_trivially_copy_assignable(hb_decay<Type>)))>
271
  hb_array_t copy (hb_serialize_context_t *c) const
272
  {
273
    TRACE_SERIALIZE (this);
274
    auto* out = c->start_embed (arrayZ);
275
    if (unlikely (!c->extend_size (out, get_size (), false))) return_trace (hb_array_t ());
276
    for (unsigned i = 0; i < length; i++)
277
      out[i] = arrayZ[i]; /* TODO: add version that calls c->copy() */
278
    return_trace (hb_array_t (out, length));
279
  }
280
281
  template <typename hb_serialize_context_t,
282
      typename U = Type,
283
      hb_enable_if (sizeof (U) < sizeof (long long) && hb_is_trivially_copy_assignable(hb_decay<Type>))>
284
  hb_array_t copy (hb_serialize_context_t *c) const
285
0
  {
286
0
    TRACE_SERIALIZE (this);
287
0
    auto* out = c->start_embed (arrayZ);
288
0
    if (unlikely (!c->extend_size (out, get_size (), false))) return_trace (hb_array_t ());
289
0
    hb_memcpy (out, arrayZ, get_size ());
290
0
    return_trace (hb_array_t (out, length));
291
0
  }
Unexecuted instantiation: hb_array_t<OT::LayerRecord const> hb_array_t<OT::LayerRecord const>::copy<hb_serialize_context_t, OT::LayerRecord const, (void*)0>(hb_serialize_context_t*) const
Unexecuted instantiation: hb_array_t<char const> hb_array_t<char const>::copy<hb_serialize_context_t, char const, (void*)0>(hb_serialize_context_t*) const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> const> hb_array_t<OT::IntType<unsigned int, 4u> const>::copy<hb_serialize_context_t, OT::IntType<unsigned int, 4u> const, (void*)0>(hb_serialize_context_t*) const
Unexecuted instantiation: hb_array_t<OT::Index const> hb_array_t<OT::Index const>::copy<hb_serialize_context_t, OT::Index const, (void*)0>(hb_serialize_context_t*) const
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned char, 1u> const> hb_array_t<OT::IntType<unsigned char, 1u> const>::copy<hb_serialize_context_t, OT::IntType<unsigned char, 1u> const, (void*)0>(hb_serialize_context_t*) const
Unexecuted instantiation: hb_array_t<unsigned char const> hb_array_t<unsigned char const>::copy<hb_serialize_context_t, unsigned char const, (void*)0>(hb_serialize_context_t*) const
292
293
  template <typename hb_sanitize_context_t>
294
  bool sanitize (hb_sanitize_context_t *c) const
295
169k
  { return c->check_array (arrayZ, length); }
bool hb_array_t<OT::AxisRecord const>::sanitize<hb_sanitize_context_t>(hb_sanitize_context_t*) const
Line
Count
Source
295
21.3k
  { return c->check_array (arrayZ, length); }
bool hb_array_t<unsigned char const>::sanitize<hb_sanitize_context_t>(hb_sanitize_context_t*) const
Line
Count
Source
295
147k
  { return c->check_array (arrayZ, length); }
296
297
  /*
298
   * Members
299
   */
300
301
  public:
302
  Type *arrayZ = nullptr;
303
  unsigned int length = 0;
304
  unsigned int backwards_length = 0;
305
};
306
template <typename T> inline hb_array_t<T>
307
hb_array (T *array, unsigned int length)
308
161M
{ return hb_array_t<T> (array, length); }
hb_array_t<OT::IntType<short, 2u> const> hb_array<OT::IntType<short, 2u> const>(OT::IntType<short, 2u> const*, unsigned int)
Line
Count
Source
308
1.77k
{ return hb_array_t<T> (array, length); }
hb_array_t<hb_aat_layout_feature_type_t> hb_array<hb_aat_layout_feature_type_t>(hb_aat_layout_feature_type_t*, unsigned int)
Line
Count
Source
308
208k
{ return hb_array_t<T> (array, length); }
hb_array_t<AAT::SettingName const> hb_array<AAT::SettingName const>(AAT::SettingName const*, unsigned int)
Line
Count
Source
308
208k
{ return hb_array_t<T> (array, length); }
hb_array_t<hb_aat_layout_feature_selector_info_t> hb_array<hb_aat_layout_feature_selector_info_t>(hb_aat_layout_feature_selector_info_t*, unsigned int)
Line
Count
Source
308
208k
{ return hb_array_t<T> (array, length); }
hb_array_t<AAT::Feature const> hb_array<AAT::Feature const>(AAT::Feature const*, unsigned int)
Line
Count
Source
308
120k
{ return hb_array_t<T> (array, length); }
hb_array_t<hb_aat_map_builder_t::feature_info_t> hb_array<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t*, unsigned int)
Line
Count
Source
308
337k
{ return hb_array_t<T> (array, length); }
hb_array_t<hb_aat_map_t::range_flags_t> hb_array<hb_aat_map_t::range_flags_t>(hb_aat_map_t::range_flags_t*, unsigned int)
Line
Count
Source
308
162k
{ return hb_array_t<T> (array, length); }
hb_array_t<hb_user_data_array_t::hb_user_data_item_t> hb_array<hb_user_data_array_t::hb_user_data_item_t>(hb_user_data_array_t::hb_user_data_item_t*, unsigned int)
Line
Count
Source
308
616k
{ return hb_array_t<T> (array, length); }
hb_array_t<hb_ot_map_t::feature_map_t> hb_array<hb_ot_map_t::feature_map_t>(hb_ot_map_t::feature_map_t*, unsigned int)
Line
Count
Source
308
2.85M
{ return hb_array_t<T> (array, length); }
hb_array_t<hb_ot_map_t::lookup_map_t const> hb_array<hb_ot_map_t::lookup_map_t const>(hb_ot_map_t::lookup_map_t const*, unsigned int)
Line
Count
Source
308
41.8k
{ return hb_array_t<T> (array, length); }
hb_array_t<hb_ot_map_t::lookup_map_t> hb_array<hb_ot_map_t::lookup_map_t>(hb_ot_map_t::lookup_map_t*, unsigned int)
Line
Count
Source
308
88.8k
{ return hb_array_t<T> (array, length); }
hb_array_t<hb_bit_set_t::page_map_t> hb_array<hb_bit_set_t::page_map_t>(hb_bit_set_t::page_map_t*, unsigned int)
Line
Count
Source
308
3.25M
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<hb_serialize_context_t::object_t::link_t> hb_array<hb_serialize_context_t::object_t::link_t>(hb_serialize_context_t::object_t::link_t*, unsigned int)
hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t*> hb_array<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t*>(hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t**, unsigned int)
Line
Count
Source
308
3.90k
{ return hb_array_t<T> (array, length); }
hb_array_t<hb_serialize_context_t::object_t*> hb_array<hb_serialize_context_t::object_t*>(hb_serialize_context_t::object_t**, unsigned int)
Line
Count
Source
308
11.1k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<unsigned int const> hb_array<unsigned int const>(unsigned int const*, unsigned int)
hb_array_t<OT::Index const> hb_array<OT::Index const>(OT::Index const*, unsigned int)
Line
Count
Source
308
1.62M
{ return hb_array_t<T> (array, length); }
hb_array_t<unsigned int> hb_array<unsigned int>(unsigned int*, unsigned int)
Line
Count
Source
308
1.86M
{ return hb_array_t<T> (array, length); }
hb_array_t<OT::IntType<unsigned int, 3u> const> hb_array<OT::IntType<unsigned int, 3u> const>(OT::IntType<unsigned int, 3u> const*, unsigned int)
Line
Count
Source
308
208k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> > hb_array<hb_pair_t<unsigned int, unsigned int> >(hb_pair_t<unsigned int, unsigned int>*, unsigned int)
hb_array_t<OT::IntType<unsigned short, 2u> const> hb_array<OT::IntType<unsigned short, 2u> const>(OT::IntType<unsigned short, 2u> const*, unsigned int)
Line
Count
Source
308
32.4M
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<hb_inc_bimap_t> hb_array<hb_inc_bimap_t>(hb_inc_bimap_t*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const> hb_array<OT::FeatureTableSubstitutionRecord const>(OT::FeatureTableSubstitutionRecord const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
hb_array_t<int> hb_array<int>(int*, unsigned int)
Line
Count
Source
308
219k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const> hb_array<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const>(OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const*, unsigned int)
hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Line
Count
Source
308
973k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::LookupRecord const> hb_array<OT::LookupRecord const>(OT::LookupRecord const*, unsigned int)
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t> hb_array<OT::hb_accelerate_subtables_context_t::hb_applicable_t>(OT::hb_accelerate_subtables_context_t::hb_applicable_t*, unsigned int)
Line
Count
Source
308
70.9M
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const> hb_array<OT::Layout::GPOS_impl::EntryExitRecord const>(OT::Layout::GPOS_impl::EntryExitRecord const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const> hb_array<OT::Layout::GPOS_impl::MarkRecord const>(OT::Layout::GPOS_impl::MarkRecord const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Line
Count
Source
308
32.4M
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Line
Count
Source
308
349
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Line
Count
Source
308
3.79M
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Line
Count
Source
308
432
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
hb_array_t<hb_aat_map_builder_t::feature_event_t> hb_array<hb_aat_map_builder_t::feature_event_t>(hb_aat_map_builder_t::feature_event_t*, unsigned int)
Line
Count
Source
308
120k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::NoVariable<OT::ColorStop> const> hb_array<OT::NoVariable<OT::ColorStop> const>(OT::NoVariable<OT::ColorStop> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::Variable<OT::ColorStop> const> hb_array<OT::Variable<OT::ColorStop> const>(OT::Variable<OT::ColorStop> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const> hb_array<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>(OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const*, unsigned int)
hb_array_t<OT::LayerRecord const> hb_array<OT::LayerRecord const>(OT::LayerRecord const*, unsigned int)
Line
Count
Source
308
208k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<hb_ot_color_layer_t> hb_array<hb_ot_color_layer_t>(hb_ot_color_layer_t*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::LayerRecord> hb_array<OT::LayerRecord>(OT::LayerRecord*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::DeltaSetIndexMap const*> hb_array<OT::DeltaSetIndexMap const*>(OT::DeltaSetIndexMap const**, unsigned int)
Unexecuted instantiation: hb_array_t<OT::index_map_subset_plan_t> hb_array<OT::index_map_subset_plan_t>(OT::index_map_subset_plan_t*, unsigned int)
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const> hb_array<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>(OT::HBFixed<OT::IntType<short, 2u>, 14u> const*, unsigned int)
Line
Count
Source
308
11.6k
{ return hb_array_t<T> (array, length); }
hb_array_t<OT::contour_point_t> hb_array<OT::contour_point_t>(OT::contour_point_t*, unsigned int)
Line
Count
Source
308
567k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::glyf_impl::SubsetGlyph> hb_array<OT::glyf_impl::SubsetGlyph>(OT::glyf_impl::SubsetGlyph*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> > hb_array<OT::IntType<unsigned short, 2u> >(OT::IntType<unsigned short, 2u>*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> > hb_array<OT::IntType<unsigned int, 4u> >(OT::IntType<unsigned int, 4u>*, unsigned int)
hb_array_t<OT::TableRecord const> hb_array<OT::TableRecord const>(OT::TableRecord const*, unsigned int)
Line
Count
Source
308
6.26M
{ return hb_array_t<T> (array, length); }
hb_array_t<OT::ResourceRecord const> hb_array<OT::ResourceRecord const>(OT::ResourceRecord const*, unsigned int)
Line
Count
Source
308
4.57k
{ return hb_array_t<T> (array, length); }
hb_array_t<OT::AxisRecord const> hb_array<OT::AxisRecord const>(OT::AxisRecord const*, unsigned int)
Line
Count
Source
308
53.8k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const> hb_array<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>(OT::HBFixed<OT::IntType<int, 4u>, 16u> const*, unsigned int)
hb_array_t<OT::IntType<unsigned int, 4u> const> hb_array<OT::IntType<unsigned int, 4u> const>(OT::IntType<unsigned int, 4u> const*, unsigned int)
Line
Count
Source
308
1.30k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::BitmapSizeTable const> hb_array<OT::BitmapSizeTable const>(OT::BitmapSizeTable const*, unsigned int)
hb_array_t<OT::IntType<unsigned char, 1u> const> hb_array<OT::IntType<unsigned char, 1u> const>(OT::IntType<unsigned char, 1u> const*, unsigned int)
Line
Count
Source
308
5.31k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> > hb_array<hb_array_t<unsigned char const> >(hb_array_t<unsigned char const>*, unsigned int)
hb_array_t<OT::cff1::accelerator_t::gname_t> hb_array<OT::cff1::accelerator_t::gname_t>(OT::cff1::accelerator_t::gname_t*, unsigned int)
Line
Count
Source
308
41.0k
{ return hb_array_t<T> (array, length); }
hb_array_t<OT::DataMap const> hb_array<OT::DataMap const>(OT::DataMap const*, unsigned int)
Line
Count
Source
308
208k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<hb_ot_meta_tag_t> hb_array<hb_ot_meta_tag_t>(hb_ot_meta_tag_t*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::NameRecord const> hb_array<OT::NameRecord const>(OT::NameRecord const*, unsigned int)
hb_array_t<hb_ot_name_entry_t> hb_array<hb_ot_name_entry_t>(hb_ot_name_entry_t*, unsigned int)
Line
Count
Source
308
206k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::HBGlyphID16 const> hb_array<OT::HBGlyphID16 const>(OT::HBGlyphID16 const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Line
Count
Source
308
48.3k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const> hb_array<OT::HBGlyphID24 const>(OT::HBGlyphID24 const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const> hb_array<OT::AxisValueRecord const>(OT::AxisValueRecord const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const> hb_array<OT::StatAxisRecord const>(OT::StatAxisRecord const*, unsigned int)
hb_array_t<OT::MathGlyphVariantRecord const> hb_array<OT::MathGlyphVariantRecord const>(OT::MathGlyphVariantRecord const*, unsigned int)
Line
Count
Source
308
208k
{ return hb_array_t<T> (array, length); }
hb_array_t<hb_ot_math_glyph_variant_t> hb_array<hb_ot_math_glyph_variant_t>(hb_ot_math_glyph_variant_t*, unsigned int)
Line
Count
Source
308
208k
{ return hb_array_t<T> (array, length); }
hb_array_t<OT::MathGlyphPartRecord const> hb_array<OT::MathGlyphPartRecord const>(OT::MathGlyphPartRecord const*, unsigned int)
Line
Count
Source
308
208k
{ return hb_array_t<T> (array, length); }
hb_array_t<hb_ot_math_glyph_part_t> hb_array<hb_ot_math_glyph_part_t>(hb_ot_math_glyph_part_t*, unsigned int)
Line
Count
Source
308
208k
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<OT::MathValueRecord const> hb_array<OT::MathValueRecord const>(OT::MathValueRecord const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::MathKernInfoRecord const> hb_array<OT::MathKernInfoRecord const>(OT::MathKernInfoRecord const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const*, unsigned int)
hb_array_t<hb_ot_map_builder_t::feature_info_t> hb_array<hb_ot_map_builder_t::feature_info_t>(hb_ot_map_builder_t::feature_info_t*, unsigned int)
Line
Count
Source
308
288k
{ return hb_array_t<T> (array, length); }
hb_array_t<OT::HBGlyphID16> hb_array<OT::HBGlyphID16>(OT::HBGlyphID16*, unsigned int)
Line
Count
Source
308
6.54k
{ return hb_array_t<T> (array, length); }
309
template <typename T, unsigned int length_> inline hb_array_t<T>
310
hb_array (T (&array_)[length_])
311
0
{ return hb_array_t<T> (array_); }
Unexecuted instantiation: hb_array_t<unsigned long long const> hb_array<unsigned long long const, 8u>(unsigned long long const (&) [8u])
Unexecuted instantiation: hb_array_t<hb::shared_ptr<hb_set_t> > hb_array<hb::shared_ptr<hb_set_t>, 8u>(hb::shared_ptr<hb_set_t> (&) [8u])
312
313
template <typename Type>
314
struct hb_sorted_array_t :
315
  hb_array_t<Type>,
316
  hb_iter_t<hb_sorted_array_t<Type>, Type&>
317
{
318
  typedef hb_iter_t<hb_sorted_array_t, Type&> iter_base_t;
319
  HB_ITER_USING (iter_base_t);
320
  static constexpr bool is_random_access_iterator = true;
321
  static constexpr bool is_sorted_iterator = true;
322
323
  hb_sorted_array_t () = default;
324
  hb_sorted_array_t (const hb_sorted_array_t&) = default;
325
  ~hb_sorted_array_t () = default;
326
  hb_sorted_array_t& operator= (const hb_sorted_array_t&) = default;
327
  hb_sorted_array_t& operator= (hb_sorted_array_t&&) = default;
328
329
82.4M
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<AAT::FeatureName const>::hb_sorted_array_t(AAT::FeatureName const*, unsigned int)
Line
Count
Source
329
626k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::hb_sorted_array_t(OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const*, unsigned int)
Line
Count
Source
329
23.6M
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::hb_sorted_array_t(OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const*, unsigned int)
Line
Count
Source
329
1.19M
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::HBGlyphID16 const>::hb_sorted_array_t(OT::HBGlyphID16 const*, unsigned int)
Line
Count
Source
329
45.4M
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::HBGlyphID24 const>::hb_sorted_array_t(OT::HBGlyphID24 const*, unsigned int)
Line
Count
Source
329
143k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<AAT::KernPair const>::hb_sorted_array_t(AAT::KernPair const*, unsigned int)
Line
Count
Source
329
38.1k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::TableRecord const>::hb_sorted_array_t(OT::TableRecord const*, unsigned int)
Line
Count
Source
329
1.72M
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::VariationSelectorRecord const>::hb_sorted_array_t(OT::VariationSelectorRecord const*, unsigned int)
Line
Count
Source
329
627k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::UVSMapping const>::hb_sorted_array_t(OT::UVSMapping const*, unsigned int)
Line
Count
Source
329
418k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::EncodingRecord const>::hb_sorted_array_t(OT::EncodingRecord const*, unsigned int)
Line
Count
Source
329
1.48M
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::CmapSubtableLongGroup const>::hb_sorted_array_t(OT::CmapSubtableLongGroup const*, unsigned int)
Line
Count
Source
329
3.15M
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::hb_sorted_array_t(OT::BaseGlyphPaintRecord const*, unsigned int)
Line
Count
Source
329
8.97k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::BaseGlyphRecord const>::hb_sorted_array_t(OT::BaseGlyphRecord const*, unsigned int)
Line
Count
Source
329
212k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::hb_sorted_array_t(OT::SVGDocumentIndexEntry const*, unsigned int)
Line
Count
Source
329
208k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::UnicodeValueRange const>::hb_sorted_array_t(OT::UnicodeValueRange const*, unsigned int)
Line
Count
Source
329
210k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::VertOriginMetric const>::hb_sorted_array_t(OT::VertOriginMetric const*, unsigned int)
Line
Count
Source
329
960
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::ClipRecord const>::hb_sorted_array_t(OT::ClipRecord const*, unsigned int)
Line
Count
Source
329
9.09k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::Record<OT::Script> const>::hb_sorted_array_t(OT::Record<OT::Script> const*, unsigned int)
Line
Count
Source
329
2.02M
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Feature> const>::hb_sorted_array_t(OT::Record<OT::Feature> const*, unsigned int)
hb_sorted_array_t<OT::Record<OT::LangSys> const>::hb_sorted_array_t(OT::Record<OT::LangSys> const*, unsigned int)
Line
Count
Source
329
581k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::BaseScriptRecord const>::hb_sorted_array_t(OT::BaseScriptRecord const*, unsigned int)
Line
Count
Source
329
417k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::Tag const>::hb_sorted_array_t(OT::Tag const*, unsigned int)
Line
Count
Source
329
5.08k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::HBGlyphID16>::hb_sorted_array_t(OT::HBGlyphID16*, unsigned int)
Line
Count
Source
329
3.90k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<LangTag const>::hb_sorted_array_t(LangTag const*, unsigned int)
Line
Count
Source
329
290k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
330
  template <unsigned int length_>
331
0
  constexpr hb_sorted_array_t (Type (&array_)[length_]) : hb_array_t<Type> (array_) {}
Unexecuted instantiation: hb_sorted_array_t<hb_aat_feature_mapping_t const>::hb_sorted_array_t<78u>(hb_aat_feature_mapping_t const (&) [78u])
Unexecuted instantiation: hb_sorted_array_t<sid_to_gid_t const>::hb_sorted_array_t<165u>(sid_to_gid_t const (&) [165u])
Unexecuted instantiation: hb_sorted_array_t<sid_to_gid_t const>::hb_sorted_array_t<86u>(sid_to_gid_t const (&) [86u])
332
333
  template <typename U,
334
      hb_enable_if (hb_is_cr_convertible(U, Type))>
335
  constexpr hb_sorted_array_t (const hb_array_t<U> &o) :
336
    hb_array_t<Type> (o),
337
7.59M
    hb_iter_t<hb_sorted_array_t, Type&> () {}
hb_sorted_array_t<AAT::FeatureName const>::hb_sorted_array_t<AAT::FeatureName const, (void*)0>(hb_array_t<AAT::FeatureName const> const&)
Line
Count
Source
337
208k
    hb_iter_t<hb_sorted_array_t, Type&> () {}
hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t const>::hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t, (void*)0>(hb_array_t<hb_aat_map_builder_t::feature_info_t> const&)
Line
Count
Source
337
217k
    hb_iter_t<hb_sorted_array_t, Type&> () {}
hb_sorted_array_t<hb_aat_map_t::range_flags_t const>::hb_sorted_array_t<hb_aat_map_t::range_flags_t, (void*)0>(hb_array_t<hb_aat_map_t::range_flags_t> const&)
Line
Count
Source
337
162k
    hb_iter_t<hb_sorted_array_t, Type&> () {}
hb_sorted_array_t<hb_aat_map_builder_t::feature_event_t>::hb_sorted_array_t<hb_aat_map_builder_t::feature_event_t, (void*)0>(hb_array_t<hb_aat_map_builder_t::feature_event_t> const&)
Line
Count
Source
337
120k
    hb_iter_t<hb_sorted_array_t, Type&> () {}
hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t>::hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t, (void*)0>(hb_array_t<hb_aat_map_builder_t::feature_info_t> const&)
Line
Count
Source
337
119k
    hb_iter_t<hb_sorted_array_t, Type&> () {}
Unexecuted instantiation: hb_sorted_array_t<OT::TableRecord const>::hb_sorted_array_t<OT::TableRecord const, (void*)0>(hb_array_t<OT::TableRecord const> const&)
hb_sorted_array_t<hb_bit_set_t::page_map_t const>::hb_sorted_array_t<hb_bit_set_t::page_map_t, (void*)0>(hb_array_t<hb_bit_set_t::page_map_t> const&)
Line
Count
Source
337
3.25M
    hb_iter_t<hb_sorted_array_t, Type&> () {}
hb_sorted_array_t<OT::cff1::accelerator_t::gname_t>::hb_sorted_array_t<OT::cff1::accelerator_t::gname_t, (void*)0>(hb_array_t<OT::cff1::accelerator_t::gname_t> const&)
Line
Count
Source
337
61.6k
    hb_iter_t<hb_sorted_array_t, Type&> () {}
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Script> const>::hb_sorted_array_t<OT::Record<OT::Script> const, (void*)0>(hb_array_t<OT::Record<OT::Script> const> const&)
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Feature> const>::hb_sorted_array_t<OT::Record<OT::Feature> const, (void*)0>(hb_array_t<OT::Record<OT::Feature> const> const&)
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::LangSys> const>::hb_sorted_array_t<OT::Record<OT::LangSys> const, (void*)0>(hb_array_t<OT::Record<OT::LangSys> const> const&)
hb_sorted_array_t<hb_ot_name_entry_t>::hb_sorted_array_t<hb_ot_name_entry_t, (void*)0>(hb_array_t<hb_ot_name_entry_t> const&)
Line
Count
Source
337
206k
    hb_iter_t<hb_sorted_array_t, Type&> () {}
hb_sorted_array_t<hb_ot_map_t::feature_map_t const>::hb_sorted_array_t<hb_ot_map_t::feature_map_t, (void*)0>(hb_array_t<hb_ot_map_t::feature_map_t> const&)
Line
Count
Source
337
2.85M
    hb_iter_t<hb_sorted_array_t, Type&> () {}
hb_sorted_array_t<hb_ot_map_builder_t::feature_info_t>::hb_sorted_array_t<hb_ot_map_builder_t::feature_info_t, (void*)0>(hb_array_t<hb_ot_map_builder_t::feature_info_t> const&)
Line
Count
Source
337
288k
    hb_iter_t<hb_sorted_array_t, Type&> () {}
hb_sorted_array_t<hb_ot_map_t::lookup_map_t>::hb_sorted_array_t<hb_ot_map_t::lookup_map_t, (void*)0>(hb_array_t<hb_ot_map_t::lookup_map_t> const&)
Line
Count
Source
337
86.1k
    hb_iter_t<hb_sorted_array_t, Type&> () {}
hb_sorted_array_t<OT::HBGlyphID16>::hb_sorted_array_t<OT::HBGlyphID16, (void*)0>(hb_array_t<OT::HBGlyphID16> const&)
Line
Count
Source
337
1.84k
    hb_iter_t<hb_sorted_array_t, Type&> () {}
hb_sorted_array_t<OT::HBGlyphID16 const>::hb_sorted_array_t<OT::HBGlyphID16, (void*)0>(hb_array_t<OT::HBGlyphID16> const&)
Line
Count
Source
337
2.63k
    hb_iter_t<hb_sorted_array_t, Type&> () {}
338
  template <typename U,
339
      hb_enable_if (hb_is_cr_convertible(U, Type))>
340
  hb_sorted_array_t& operator = (const hb_array_t<U> &o)
341
  { hb_array_t<Type> (*this) = o; return *this; }
342
343
  /* Iterator implementation. */
344
345
  /* See comment in hb_array_of::operator != */
346
  bool operator != (const hb_sorted_array_t& o) const
347
104k
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::LangSys> const>::operator!=(hb_sorted_array_t<OT::Record<OT::LangSys> const> const&) const
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Script> const>::operator!=(hb_sorted_array_t<OT::Record<OT::Script> const> const&) const
Unexecuted instantiation: hb_sorted_array_t<hb_pair_t<unsigned int, unsigned int> const>::operator!=(hb_sorted_array_t<hb_pair_t<unsigned int, unsigned int> const> const&) const
Unexecuted instantiation: hb_sorted_array_t<OT::UVSMapping const>::operator!=(hb_sorted_array_t<OT::UVSMapping const> const&) const
Unexecuted instantiation: hb_sorted_array_t<OT::EncodingRecord const>::operator!=(hb_sorted_array_t<OT::EncodingRecord const> const&) const
Unexecuted instantiation: hb_sorted_array_t<OT::VertOriginMetric const>::operator!=(hb_sorted_array_t<OT::VertOriginMetric const> const&) const
hb_sorted_array_t<OT::HBGlyphID16>::operator!=(hb_sorted_array_t<OT::HBGlyphID16> const&) const
Line
Count
Source
347
104k
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
348
349
  /* Faster range-based for loop without bounds-check. */
350
419k
  Type *begin () const { return this->arrayZ; }
Unexecuted instantiation: hb_sorted_array_t<unsigned int const>::begin() const
hb_sorted_array_t<OT::HBGlyphID16 const>::begin() const
Line
Count
Source
350
2.27k
  Type *begin () const { return this->arrayZ; }
Unexecuted instantiation: hb_sorted_array_t<OT::HBGlyphID24 const>::begin() const
hb_sorted_array_t<OT::UVSMapping const>::begin() const
Line
Count
Source
350
208k
  Type *begin () const { return this->arrayZ; }
hb_sorted_array_t<OT::VariationSelectorRecord const>::begin() const
Line
Count
Source
350
208k
  Type *begin () const { return this->arrayZ; }
Unexecuted instantiation: hb_sorted_array_t<OT::ClipRecord const>::begin() const
Unexecuted instantiation: hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::begin() const
351
419k
  Type *end () const { return this->arrayZ + this->length; }
Unexecuted instantiation: hb_sorted_array_t<unsigned int const>::end() const
hb_sorted_array_t<OT::HBGlyphID16 const>::end() const
Line
Count
Source
351
2.27k
  Type *end () const { return this->arrayZ + this->length; }
Unexecuted instantiation: hb_sorted_array_t<OT::HBGlyphID24 const>::end() const
hb_sorted_array_t<OT::UVSMapping const>::end() const
Line
Count
Source
351
208k
  Type *end () const { return this->arrayZ + this->length; }
hb_sorted_array_t<OT::VariationSelectorRecord const>::end() const
Line
Count
Source
351
208k
  Type *end () const { return this->arrayZ + this->length; }
Unexecuted instantiation: hb_sorted_array_t<OT::ClipRecord const>::end() const
Unexecuted instantiation: hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::end() const
352
353
354
  hb_sorted_array_t sub_array (unsigned int start_offset, unsigned int *seg_count /* IN/OUT */) const
355
208k
  { return hb_sorted_array_t (((const hb_array_t<Type> *) (this))->sub_array (start_offset, seg_count)); }
hb_sorted_array_t<AAT::FeatureName const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
355
208k
  { return hb_sorted_array_t (((const hb_array_t<Type> *) (this))->sub_array (start_offset, seg_count)); }
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::LangSys> const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Script> const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Feature> const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_sorted_array_t<OT::TableRecord const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::JstfLangSys> const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::JstfScript> const>::sub_array(unsigned int, unsigned int*) const
356
  hb_sorted_array_t sub_array (unsigned int start_offset, unsigned int seg_count) const
357
  { return sub_array (start_offset, &seg_count); }
358
359
  hb_sorted_array_t truncate (unsigned length) const { return sub_array (0, length); }
360
361
  template <typename T>
362
  Type *bsearch (const T &x, Type *not_found = nullptr)
363
34.5M
  {
364
34.5M
    unsigned int i;
365
34.5M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
34.5M
  }
AAT::FeatureName const* hb_sorted_array_t<AAT::FeatureName const>::bsearch<hb_aat_layout_feature_type_t>(hb_aat_layout_feature_type_t const&, AAT::FeatureName const*)
Line
Count
Source
363
417k
  {
364
417k
    unsigned int i;
365
417k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
417k
  }
Unexecuted instantiation: hb_aat_feature_mapping_t const* hb_sorted_array_t<hb_aat_feature_mapping_t const>::bsearch<unsigned int>(unsigned int const&, hb_aat_feature_mapping_t const*)
hb_aat_map_builder_t::feature_info_t const* hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t const>::bsearch<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, hb_aat_map_builder_t::feature_info_t const*)
Line
Count
Source
363
217k
  {
364
217k
    unsigned int i;
365
217k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
217k
  }
OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const* hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::bsearch<unsigned int>(unsigned int const&, OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const*)
Line
Count
Source
363
23.6M
  {
364
23.6M
    unsigned int i;
365
23.6M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
23.6M
  }
OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const* hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::bsearch<unsigned int>(unsigned int const&, OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const*)
Line
Count
Source
363
1.19M
  {
364
1.19M
    unsigned int i;
365
1.19M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
1.19M
  }
AAT::KernPair const* hb_sorted_array_t<AAT::KernPair const>::bsearch<AAT::hb_glyph_pair_t>(AAT::hb_glyph_pair_t const&, AAT::KernPair const*)
Line
Count
Source
363
38.1k
  {
364
38.1k
    unsigned int i;
365
38.1k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
38.1k
  }
hb_ot_map_t::feature_map_t const* hb_sorted_array_t<hb_ot_map_t::feature_map_t const>::bsearch<unsigned int>(unsigned int const&, hb_ot_map_t::feature_map_t const*)
Line
Count
Source
363
2.85M
  {
364
2.85M
    unsigned int i;
365
2.85M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
2.85M
  }
Unexecuted instantiation: OT::OS2Range const* hb_sorted_array_t<OT::OS2Range const>::bsearch<unsigned int>(unsigned int const&, OT::OS2Range const*)
Unexecuted instantiation: OT::UnicodeValueRange const* hb_sorted_array_t<OT::UnicodeValueRange const>::bsearch<unsigned int>(unsigned int const&, OT::UnicodeValueRange const*)
OT::UVSMapping const* hb_sorted_array_t<OT::UVSMapping const>::bsearch<unsigned int>(unsigned int const&, OT::UVSMapping const*)
Line
Count
Source
363
210k
  {
364
210k
    unsigned int i;
365
210k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
210k
  }
OT::VariationSelectorRecord const* hb_sorted_array_t<OT::VariationSelectorRecord const>::bsearch<unsigned int>(unsigned int const&, OT::VariationSelectorRecord const*)
Line
Count
Source
363
418k
  {
364
418k
    unsigned int i;
365
418k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
418k
  }
OT::CmapSubtableLongGroup const* hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bsearch<unsigned int>(unsigned int const&, OT::CmapSubtableLongGroup const*)
Line
Count
Source
363
3.15M
  {
364
3.15M
    unsigned int i;
365
3.15M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
3.15M
  }
OT::EncodingRecord const* hb_sorted_array_t<OT::EncodingRecord const>::bsearch<OT::EncodingRecord>(OT::EncodingRecord const&, OT::EncodingRecord const*)
Line
Count
Source
363
1.48M
  {
364
1.48M
    unsigned int i;
365
1.48M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
1.48M
  }
OT::ClipRecord const* hb_sorted_array_t<OT::ClipRecord const>::bsearch<unsigned int>(unsigned int const&, OT::ClipRecord const*)
Line
Count
Source
363
9.09k
  {
364
9.09k
    unsigned int i;
365
9.09k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
9.09k
  }
OT::BaseGlyphRecord const* hb_sorted_array_t<OT::BaseGlyphRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseGlyphRecord const*)
Line
Count
Source
363
212k
  {
364
212k
    unsigned int i;
365
212k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
212k
  }
OT::BaseGlyphPaintRecord const* hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseGlyphPaintRecord const*)
Line
Count
Source
363
8.97k
  {
364
8.97k
    unsigned int i;
365
8.97k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
8.97k
  }
OT::SVGDocumentIndexEntry const* hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bsearch<unsigned int>(unsigned int const&, OT::SVGDocumentIndexEntry const*)
Line
Count
Source
363
208k
  {
364
208k
    unsigned int i;
365
208k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
208k
  }
OT::cff1::accelerator_t::gname_t* hb_sorted_array_t<OT::cff1::accelerator_t::gname_t>::bsearch<OT::cff1::accelerator_t::gname_t>(OT::cff1::accelerator_t::gname_t const&, OT::cff1::accelerator_t::gname_t*)
Line
Count
Source
363
20.5k
  {
364
20.5k
    unsigned int i;
365
20.5k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
20.5k
  }
OT::BaseScriptRecord const* hb_sorted_array_t<OT::BaseScriptRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseScriptRecord const*)
Line
Count
Source
363
417k
  {
364
417k
    unsigned int i;
365
417k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
417k
  }
Unexecuted instantiation: OT::FeatMinMaxRecord const* hb_sorted_array_t<OT::FeatMinMaxRecord const>::bsearch<unsigned int>(unsigned int const&, OT::FeatMinMaxRecord const*)
Unexecuted instantiation: OT::BaseLangSysRecord const* hb_sorted_array_t<OT::BaseLangSysRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseLangSysRecord const*)
Unexecuted instantiation: sid_to_gid_t const* hb_sorted_array_t<sid_to_gid_t const>::bsearch<unsigned int>(unsigned int const&, sid_to_gid_t const*)
367
  template <typename T>
368
  const Type *bsearch (const T &x, const Type *not_found = nullptr) const
369
  {
370
    unsigned int i;
371
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
372
  }
373
  template <typename T>
374
  bool bfind (const T &x, unsigned int *i = nullptr,
375
        hb_not_found_t not_found = HB_NOT_FOUND_DONT_STORE,
376
        unsigned int to_store = (unsigned int) -1) const
377
87.8M
  {
378
87.8M
    unsigned pos;
379
380
87.8M
    if (bsearch_impl (x, &pos))
381
66.2M
    {
382
66.2M
      if (i)
383
66.2M
  *i = pos;
384
66.2M
      return true;
385
66.2M
    }
386
387
21.6M
    if (i)
388
21.3M
    {
389
21.3M
      switch (not_found)
390
21.3M
      {
391
11.9M
  case HB_NOT_FOUND_DONT_STORE:
392
11.9M
    break;
393
394
6.76M
  case HB_NOT_FOUND_STORE:
395
6.76M
    *i = to_store;
396
6.76M
    break;
397
398
2.68M
  case HB_NOT_FOUND_STORE_CLOSEST:
399
2.68M
    *i = pos;
400
2.68M
    break;
401
21.3M
      }
402
21.3M
    }
403
21.6M
    return false;
404
21.6M
  }
bool hb_sorted_array_t<AAT::FeatureName const>::bfind<hb_aat_layout_feature_type_t>(hb_aat_layout_feature_type_t const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
417k
  {
378
417k
    unsigned pos;
379
380
417k
    if (bsearch_impl (x, &pos))
381
184
    {
382
184
      if (i)
383
184
  *i = pos;
384
184
      return true;
385
184
    }
386
387
417k
    if (i)
388
417k
    {
389
417k
      switch (not_found)
390
417k
      {
391
417k
  case HB_NOT_FOUND_DONT_STORE:
392
417k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
417k
      }
402
417k
    }
403
417k
    return false;
404
417k
  }
Unexecuted instantiation: bool hb_sorted_array_t<hb_aat_feature_mapping_t const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
bool hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t const>::bfind<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
217k
  {
378
217k
    unsigned pos;
379
380
217k
    if (bsearch_impl (x, &pos))
381
0
    {
382
0
      if (i)
383
0
  *i = pos;
384
0
      return true;
385
0
    }
386
387
217k
    if (i)
388
217k
    {
389
217k
      switch (not_found)
390
217k
      {
391
217k
  case HB_NOT_FOUND_DONT_STORE:
392
217k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
217k
      }
402
217k
    }
403
217k
    return false;
404
217k
  }
bool hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
23.6M
  {
378
23.6M
    unsigned pos;
379
380
23.6M
    if (bsearch_impl (x, &pos))
381
20.4M
    {
382
20.4M
      if (i)
383
20.4M
  *i = pos;
384
20.4M
      return true;
385
20.4M
    }
386
387
3.18M
    if (i)
388
3.18M
    {
389
3.18M
      switch (not_found)
390
3.18M
      {
391
3.18M
  case HB_NOT_FOUND_DONT_STORE:
392
3.18M
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
3.18M
      }
402
3.18M
    }
403
3.18M
    return false;
404
3.18M
  }
bool hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
1.19M
  {
378
1.19M
    unsigned pos;
379
380
1.19M
    if (bsearch_impl (x, &pos))
381
392k
    {
382
392k
      if (i)
383
392k
  *i = pos;
384
392k
      return true;
385
392k
    }
386
387
801k
    if (i)
388
801k
    {
389
801k
      switch (not_found)
390
801k
      {
391
801k
  case HB_NOT_FOUND_DONT_STORE:
392
801k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
801k
      }
402
801k
    }
403
801k
    return false;
404
801k
  }
bool hb_sorted_array_t<OT::HBGlyphID16 const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
45.1M
  {
378
45.1M
    unsigned pos;
379
380
45.1M
    if (bsearch_impl (x, &pos))
381
42.0M
    {
382
42.0M
      if (i)
383
42.0M
  *i = pos;
384
42.0M
      return true;
385
42.0M
    }
386
387
3.11M
    if (i)
388
3.11M
    {
389
3.11M
      switch (not_found)
390
3.11M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
3.11M
  case HB_NOT_FOUND_STORE:
395
3.11M
    *i = to_store;
396
3.11M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
3.11M
      }
402
3.11M
    }
403
3.11M
    return false;
404
3.11M
  }
bool hb_sorted_array_t<OT::HBGlyphID24 const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
141k
  {
378
141k
    unsigned pos;
379
380
141k
    if (bsearch_impl (x, &pos))
381
108k
    {
382
108k
      if (i)
383
108k
  *i = pos;
384
108k
      return true;
385
108k
    }
386
387
32.9k
    if (i)
388
32.9k
    {
389
32.9k
      switch (not_found)
390
32.9k
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
32.9k
  case HB_NOT_FOUND_STORE:
395
32.9k
    *i = to_store;
396
32.9k
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
32.9k
      }
402
32.9k
    }
403
32.9k
    return false;
404
32.9k
  }
bool hb_sorted_array_t<AAT::KernPair const>::bfind<AAT::hb_glyph_pair_t>(AAT::hb_glyph_pair_t const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
38.1k
  {
378
38.1k
    unsigned pos;
379
380
38.1k
    if (bsearch_impl (x, &pos))
381
4.24k
    {
382
4.24k
      if (i)
383
4.24k
  *i = pos;
384
4.24k
      return true;
385
4.24k
    }
386
387
33.8k
    if (i)
388
33.8k
    {
389
33.8k
      switch (not_found)
390
33.8k
      {
391
33.8k
  case HB_NOT_FOUND_DONT_STORE:
392
33.8k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
33.8k
      }
402
33.8k
    }
403
33.8k
    return false;
404
33.8k
  }
bool hb_sorted_array_t<hb_ot_map_t::feature_map_t const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
2.85M
  {
378
2.85M
    unsigned pos;
379
380
2.85M
    if (bsearch_impl (x, &pos))
381
929k
    {
382
929k
      if (i)
383
929k
  *i = pos;
384
929k
      return true;
385
929k
    }
386
387
1.92M
    if (i)
388
1.92M
    {
389
1.92M
      switch (not_found)
390
1.92M
      {
391
1.92M
  case HB_NOT_FOUND_DONT_STORE:
392
1.92M
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
1.92M
      }
402
1.92M
    }
403
1.92M
    return false;
404
1.92M
  }
Unexecuted instantiation: bool hb_sorted_array_t<hb_bit_set_t::page_map_t const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
bool hb_sorted_array_t<hb_bit_set_t::page_map_t const>::bfind<hb_bit_set_t::page_map_t>(hb_bit_set_t::page_map_t const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
3.25M
  {
378
3.25M
    unsigned pos;
379
380
3.25M
    if (bsearch_impl (x, &pos))
381
571k
    {
382
571k
      if (i)
383
571k
  *i = pos;
384
571k
      return true;
385
571k
    }
386
387
2.68M
    if (i)
388
2.68M
    {
389
2.68M
      switch (not_found)
390
2.68M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
2.68M
  case HB_NOT_FOUND_STORE_CLOSEST:
399
2.68M
    *i = pos;
400
2.68M
    break;
401
2.68M
      }
402
2.68M
    }
403
2.68M
    return false;
404
2.68M
  }
bool hb_sorted_array_t<OT::Record<OT::LangSys> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
581k
  {
378
581k
    unsigned pos;
379
380
581k
    if (bsearch_impl (x, &pos))
381
11
    {
382
11
      if (i)
383
11
  *i = pos;
384
11
      return true;
385
11
    }
386
387
581k
    if (i)
388
581k
    {
389
581k
      switch (not_found)
390
581k
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
581k
  case HB_NOT_FOUND_STORE:
395
581k
    *i = to_store;
396
581k
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
581k
      }
402
581k
    }
403
581k
    return false;
404
581k
  }
bool hb_sorted_array_t<OT::Record<OT::Script> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
2.02M
  {
378
2.02M
    unsigned pos;
379
380
2.02M
    if (bsearch_impl (x, &pos))
381
136k
    {
382
136k
      if (i)
383
136k
  *i = pos;
384
136k
      return true;
385
136k
    }
386
387
1.88M
    if (i)
388
1.88M
    {
389
1.88M
      switch (not_found)
390
1.88M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
1.88M
  case HB_NOT_FOUND_STORE:
395
1.88M
    *i = to_store;
396
1.88M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
1.88M
      }
402
1.88M
    }
403
1.88M
    return false;
404
1.88M
  }
Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::Feature> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Unexecuted instantiation: bool hb_sorted_array_t<OT::OS2Range const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
bool hb_sorted_array_t<OT::UnicodeValueRange const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
210k
  {
378
210k
    unsigned pos;
379
380
210k
    if (bsearch_impl (x, &pos))
381
0
    {
382
0
      if (i)
383
0
  *i = pos;
384
0
      return true;
385
0
    }
386
387
210k
    if (i)
388
0
    {
389
0
      switch (not_found)
390
0
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
0
      }
402
0
    }
403
210k
    return false;
404
210k
  }
bool hb_sorted_array_t<OT::UVSMapping const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
210k
  {
378
210k
    unsigned pos;
379
380
210k
    if (bsearch_impl (x, &pos))
381
0
    {
382
0
      if (i)
383
0
  *i = pos;
384
0
      return true;
385
0
    }
386
387
210k
    if (i)
388
210k
    {
389
210k
      switch (not_found)
390
210k
      {
391
210k
  case HB_NOT_FOUND_DONT_STORE:
392
210k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
210k
      }
402
210k
    }
403
210k
    return false;
404
210k
  }
bool hb_sorted_array_t<OT::VariationSelectorRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
418k
  {
378
418k
    unsigned pos;
379
380
418k
    if (bsearch_impl (x, &pos))
381
24
    {
382
24
      if (i)
383
24
  *i = pos;
384
24
      return true;
385
24
    }
386
387
418k
    if (i)
388
418k
    {
389
418k
      switch (not_found)
390
418k
      {
391
418k
  case HB_NOT_FOUND_DONT_STORE:
392
418k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
418k
      }
402
418k
    }
403
418k
    return false;
404
418k
  }
bool hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
3.15M
  {
378
3.15M
    unsigned pos;
379
380
3.15M
    if (bsearch_impl (x, &pos))
381
967k
    {
382
967k
      if (i)
383
967k
  *i = pos;
384
967k
      return true;
385
967k
    }
386
387
2.19M
    if (i)
388
2.19M
    {
389
2.19M
      switch (not_found)
390
2.19M
      {
391
2.19M
  case HB_NOT_FOUND_DONT_STORE:
392
2.19M
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
2.19M
      }
402
2.19M
    }
403
2.19M
    return false;
404
2.19M
  }
bool hb_sorted_array_t<OT::EncodingRecord const>::bfind<OT::EncodingRecord>(OT::EncodingRecord const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
1.48M
  {
378
1.48M
    unsigned pos;
379
380
1.48M
    if (bsearch_impl (x, &pos))
381
116k
    {
382
116k
      if (i)
383
116k
  *i = pos;
384
116k
      return true;
385
116k
    }
386
387
1.36M
    if (i)
388
1.36M
    {
389
1.36M
      switch (not_found)
390
1.36M
      {
391
1.36M
  case HB_NOT_FOUND_DONT_STORE:
392
1.36M
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
1.36M
      }
402
1.36M
    }
403
1.36M
    return false;
404
1.36M
  }
bool hb_sorted_array_t<OT::ClipRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
9.09k
  {
378
9.09k
    unsigned pos;
379
380
9.09k
    if (bsearch_impl (x, &pos))
381
128
    {
382
128
      if (i)
383
128
  *i = pos;
384
128
      return true;
385
128
    }
386
387
8.96k
    if (i)
388
8.96k
    {
389
8.96k
      switch (not_found)
390
8.96k
      {
391
8.96k
  case HB_NOT_FOUND_DONT_STORE:
392
8.96k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
8.96k
      }
402
8.96k
    }
403
8.96k
    return false;
404
8.96k
  }
bool hb_sorted_array_t<OT::BaseGlyphRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
212k
  {
378
212k
    unsigned pos;
379
380
212k
    if (bsearch_impl (x, &pos))
381
39
    {
382
39
      if (i)
383
39
  *i = pos;
384
39
      return true;
385
39
    }
386
387
212k
    if (i)
388
212k
    {
389
212k
      switch (not_found)
390
212k
      {
391
212k
  case HB_NOT_FOUND_DONT_STORE:
392
212k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
212k
      }
402
212k
    }
403
212k
    return false;
404
212k
  }
bool hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
8.97k
  {
378
8.97k
    unsigned pos;
379
380
8.97k
    if (bsearch_impl (x, &pos))
381
2.97k
    {
382
2.97k
      if (i)
383
2.97k
  *i = pos;
384
2.97k
      return true;
385
2.97k
    }
386
387
6.00k
    if (i)
388
6.00k
    {
389
6.00k
      switch (not_found)
390
6.00k
      {
391
6.00k
  case HB_NOT_FOUND_DONT_STORE:
392
6.00k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
6.00k
      }
402
6.00k
    }
403
6.00k
    return false;
404
6.00k
  }
bool hb_sorted_array_t<OT::TableRecord const>::bfind<OT::Tag>(OT::Tag const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
1.72M
  {
378
1.72M
    unsigned pos;
379
380
1.72M
    if (bsearch_impl (x, &pos))
381
569k
    {
382
569k
      if (i)
383
569k
  *i = pos;
384
569k
      return true;
385
569k
    }
386
387
1.15M
    if (i)
388
1.15M
    {
389
1.15M
      switch (not_found)
390
1.15M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
1.15M
  case HB_NOT_FOUND_STORE:
395
1.15M
    *i = to_store;
396
1.15M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
1.15M
      }
402
1.15M
    }
403
1.15M
    return false;
404
1.15M
  }
bool hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
208k
  {
378
208k
    unsigned pos;
379
380
208k
    if (bsearch_impl (x, &pos))
381
21
    {
382
21
      if (i)
383
21
  *i = pos;
384
21
      return true;
385
21
    }
386
387
208k
    if (i)
388
208k
    {
389
208k
      switch (not_found)
390
208k
      {
391
208k
  case HB_NOT_FOUND_DONT_STORE:
392
208k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
208k
      }
402
208k
    }
403
208k
    return false;
404
208k
  }
bool hb_sorted_array_t<OT::cff1::accelerator_t::gname_t>::bfind<OT::cff1::accelerator_t::gname_t>(OT::cff1::accelerator_t::gname_t const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
20.5k
  {
378
20.5k
    unsigned pos;
379
380
20.5k
    if (bsearch_impl (x, &pos))
381
530
    {
382
530
      if (i)
383
530
  *i = pos;
384
530
      return true;
385
530
    }
386
387
20.0k
    if (i)
388
20.0k
    {
389
20.0k
      switch (not_found)
390
20.0k
      {
391
20.0k
  case HB_NOT_FOUND_DONT_STORE:
392
20.0k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
20.0k
      }
402
20.0k
    }
403
20.0k
    return false;
404
20.0k
  }
bool hb_sorted_array_t<OT::VertOriginMetric const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
960
  {
378
960
    unsigned pos;
379
380
960
    if (bsearch_impl (x, &pos))
381
2
    {
382
2
      if (i)
383
2
  *i = pos;
384
2
      return true;
385
2
    }
386
387
958
    if (i)
388
958
    {
389
958
      switch (not_found)
390
958
      {
391
958
  case HB_NOT_FOUND_DONT_STORE:
392
958
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
958
      }
402
958
    }
403
958
    return false;
404
958
  }
bool hb_sorted_array_t<OT::BaseScriptRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
417k
  {
378
417k
    unsigned pos;
379
380
417k
    if (bsearch_impl (x, &pos))
381
5.57k
    {
382
5.57k
      if (i)
383
5.57k
  *i = pos;
384
5.57k
      return true;
385
5.57k
    }
386
387
411k
    if (i)
388
411k
    {
389
411k
      switch (not_found)
390
411k
      {
391
411k
  case HB_NOT_FOUND_DONT_STORE:
392
411k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
411k
      }
402
411k
    }
403
411k
    return false;
404
411k
  }
bool hb_sorted_array_t<OT::Tag const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
5.08k
  {
378
5.08k
    unsigned pos;
379
380
5.08k
    if (bsearch_impl (x, &pos))
381
0
    {
382
0
      if (i)
383
0
  *i = pos;
384
0
      return true;
385
0
    }
386
387
5.08k
    if (i)
388
5.08k
    {
389
5.08k
      switch (not_found)
390
5.08k
      {
391
5.08k
  case HB_NOT_FOUND_DONT_STORE:
392
5.08k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
5.08k
      }
402
5.08k
    }
403
5.08k
    return false;
404
5.08k
  }
Unexecuted instantiation: bool hb_sorted_array_t<OT::FeatMinMaxRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Unexecuted instantiation: bool hb_sorted_array_t<OT::BaseLangSysRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::JstfLangSys> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::JstfScript> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Unexecuted instantiation: bool hb_sorted_array_t<sid_to_gid_t const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
bool hb_sorted_array_t<LangTag const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
290k
  {
378
290k
    unsigned pos;
379
380
290k
    if (bsearch_impl (x, &pos))
381
0
    {
382
0
      if (i)
383
0
  *i = pos;
384
0
      return true;
385
0
    }
386
387
290k
    if (i)
388
290k
    {
389
290k
      switch (not_found)
390
290k
      {
391
290k
  case HB_NOT_FOUND_DONT_STORE:
392
290k
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
290k
      }
402
290k
    }
403
290k
    return false;
404
290k
  }
405
  template <typename T, typename ...Ts>
406
  bool bsearch_impl (const T &x, unsigned *pos, Ts... ds) const
407
87.8M
  {
408
87.8M
    return hb_bsearch_impl (pos,
409
87.8M
          x,
410
87.8M
          this->arrayZ,
411
87.8M
          this->length,
412
87.8M
          sizeof (Type),
413
87.8M
          _hb_cmp_method<T, Type, Ts...>,
414
87.8M
          std::forward<Ts> (ds)...);
415
87.8M
  }
bool hb_sorted_array_t<AAT::FeatureName const>::bsearch_impl<hb_aat_layout_feature_type_t>(hb_aat_layout_feature_type_t const&, unsigned int*) const
Line
Count
Source
407
417k
  {
408
417k
    return hb_bsearch_impl (pos,
409
417k
          x,
410
417k
          this->arrayZ,
411
417k
          this->length,
412
417k
          sizeof (Type),
413
417k
          _hb_cmp_method<T, Type, Ts...>,
414
417k
          std::forward<Ts> (ds)...);
415
417k
  }
Unexecuted instantiation: bool hb_sorted_array_t<hb_aat_feature_mapping_t const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
bool hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t const>::bsearch_impl<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, unsigned int*) const
Line
Count
Source
407
217k
  {
408
217k
    return hb_bsearch_impl (pos,
409
217k
          x,
410
217k
          this->arrayZ,
411
217k
          this->length,
412
217k
          sizeof (Type),
413
217k
          _hb_cmp_method<T, Type, Ts...>,
414
217k
          std::forward<Ts> (ds)...);
415
217k
  }
bool hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
23.6M
  {
408
23.6M
    return hb_bsearch_impl (pos,
409
23.6M
          x,
410
23.6M
          this->arrayZ,
411
23.6M
          this->length,
412
23.6M
          sizeof (Type),
413
23.6M
          _hb_cmp_method<T, Type, Ts...>,
414
23.6M
          std::forward<Ts> (ds)...);
415
23.6M
  }
bool hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
1.19M
  {
408
1.19M
    return hb_bsearch_impl (pos,
409
1.19M
          x,
410
1.19M
          this->arrayZ,
411
1.19M
          this->length,
412
1.19M
          sizeof (Type),
413
1.19M
          _hb_cmp_method<T, Type, Ts...>,
414
1.19M
          std::forward<Ts> (ds)...);
415
1.19M
  }
bool hb_sorted_array_t<OT::HBGlyphID16 const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
45.1M
  {
408
45.1M
    return hb_bsearch_impl (pos,
409
45.1M
          x,
410
45.1M
          this->arrayZ,
411
45.1M
          this->length,
412
45.1M
          sizeof (Type),
413
45.1M
          _hb_cmp_method<T, Type, Ts...>,
414
45.1M
          std::forward<Ts> (ds)...);
415
45.1M
  }
bool hb_sorted_array_t<OT::HBGlyphID24 const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
141k
  {
408
141k
    return hb_bsearch_impl (pos,
409
141k
          x,
410
141k
          this->arrayZ,
411
141k
          this->length,
412
141k
          sizeof (Type),
413
141k
          _hb_cmp_method<T, Type, Ts...>,
414
141k
          std::forward<Ts> (ds)...);
415
141k
  }
bool hb_sorted_array_t<AAT::KernPair const>::bsearch_impl<AAT::hb_glyph_pair_t>(AAT::hb_glyph_pair_t const&, unsigned int*) const
Line
Count
Source
407
38.1k
  {
408
38.1k
    return hb_bsearch_impl (pos,
409
38.1k
          x,
410
38.1k
          this->arrayZ,
411
38.1k
          this->length,
412
38.1k
          sizeof (Type),
413
38.1k
          _hb_cmp_method<T, Type, Ts...>,
414
38.1k
          std::forward<Ts> (ds)...);
415
38.1k
  }
bool hb_sorted_array_t<hb_ot_map_t::feature_map_t const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
2.85M
  {
408
2.85M
    return hb_bsearch_impl (pos,
409
2.85M
          x,
410
2.85M
          this->arrayZ,
411
2.85M
          this->length,
412
2.85M
          sizeof (Type),
413
2.85M
          _hb_cmp_method<T, Type, Ts...>,
414
2.85M
          std::forward<Ts> (ds)...);
415
2.85M
  }
Unexecuted instantiation: bool hb_sorted_array_t<hb_bit_set_t::page_map_t const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
bool hb_sorted_array_t<hb_bit_set_t::page_map_t const>::bsearch_impl<hb_bit_set_t::page_map_t>(hb_bit_set_t::page_map_t const&, unsigned int*) const
Line
Count
Source
407
3.25M
  {
408
3.25M
    return hb_bsearch_impl (pos,
409
3.25M
          x,
410
3.25M
          this->arrayZ,
411
3.25M
          this->length,
412
3.25M
          sizeof (Type),
413
3.25M
          _hb_cmp_method<T, Type, Ts...>,
414
3.25M
          std::forward<Ts> (ds)...);
415
3.25M
  }
bool hb_sorted_array_t<OT::Record<OT::LangSys> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
581k
  {
408
581k
    return hb_bsearch_impl (pos,
409
581k
          x,
410
581k
          this->arrayZ,
411
581k
          this->length,
412
581k
          sizeof (Type),
413
581k
          _hb_cmp_method<T, Type, Ts...>,
414
581k
          std::forward<Ts> (ds)...);
415
581k
  }
bool hb_sorted_array_t<OT::Record<OT::Script> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
2.02M
  {
408
2.02M
    return hb_bsearch_impl (pos,
409
2.02M
          x,
410
2.02M
          this->arrayZ,
411
2.02M
          this->length,
412
2.02M
          sizeof (Type),
413
2.02M
          _hb_cmp_method<T, Type, Ts...>,
414
2.02M
          std::forward<Ts> (ds)...);
415
2.02M
  }
Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::Feature> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Unexecuted instantiation: bool hb_sorted_array_t<OT::OS2Range const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
bool hb_sorted_array_t<OT::UnicodeValueRange const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
210k
  {
408
210k
    return hb_bsearch_impl (pos,
409
210k
          x,
410
210k
          this->arrayZ,
411
210k
          this->length,
412
210k
          sizeof (Type),
413
210k
          _hb_cmp_method<T, Type, Ts...>,
414
210k
          std::forward<Ts> (ds)...);
415
210k
  }
bool hb_sorted_array_t<OT::UVSMapping const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
210k
  {
408
210k
    return hb_bsearch_impl (pos,
409
210k
          x,
410
210k
          this->arrayZ,
411
210k
          this->length,
412
210k
          sizeof (Type),
413
210k
          _hb_cmp_method<T, Type, Ts...>,
414
210k
          std::forward<Ts> (ds)...);
415
210k
  }
bool hb_sorted_array_t<OT::VariationSelectorRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
418k
  {
408
418k
    return hb_bsearch_impl (pos,
409
418k
          x,
410
418k
          this->arrayZ,
411
418k
          this->length,
412
418k
          sizeof (Type),
413
418k
          _hb_cmp_method<T, Type, Ts...>,
414
418k
          std::forward<Ts> (ds)...);
415
418k
  }
bool hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
3.15M
  {
408
3.15M
    return hb_bsearch_impl (pos,
409
3.15M
          x,
410
3.15M
          this->arrayZ,
411
3.15M
          this->length,
412
3.15M
          sizeof (Type),
413
3.15M
          _hb_cmp_method<T, Type, Ts...>,
414
3.15M
          std::forward<Ts> (ds)...);
415
3.15M
  }
bool hb_sorted_array_t<OT::EncodingRecord const>::bsearch_impl<OT::EncodingRecord>(OT::EncodingRecord const&, unsigned int*) const
Line
Count
Source
407
1.48M
  {
408
1.48M
    return hb_bsearch_impl (pos,
409
1.48M
          x,
410
1.48M
          this->arrayZ,
411
1.48M
          this->length,
412
1.48M
          sizeof (Type),
413
1.48M
          _hb_cmp_method<T, Type, Ts...>,
414
1.48M
          std::forward<Ts> (ds)...);
415
1.48M
  }
bool hb_sorted_array_t<OT::ClipRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
9.09k
  {
408
9.09k
    return hb_bsearch_impl (pos,
409
9.09k
          x,
410
9.09k
          this->arrayZ,
411
9.09k
          this->length,
412
9.09k
          sizeof (Type),
413
9.09k
          _hb_cmp_method<T, Type, Ts...>,
414
9.09k
          std::forward<Ts> (ds)...);
415
9.09k
  }
bool hb_sorted_array_t<OT::BaseGlyphRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
212k
  {
408
212k
    return hb_bsearch_impl (pos,
409
212k
          x,
410
212k
          this->arrayZ,
411
212k
          this->length,
412
212k
          sizeof (Type),
413
212k
          _hb_cmp_method<T, Type, Ts...>,
414
212k
          std::forward<Ts> (ds)...);
415
212k
  }
bool hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
8.97k
  {
408
8.97k
    return hb_bsearch_impl (pos,
409
8.97k
          x,
410
8.97k
          this->arrayZ,
411
8.97k
          this->length,
412
8.97k
          sizeof (Type),
413
8.97k
          _hb_cmp_method<T, Type, Ts...>,
414
8.97k
          std::forward<Ts> (ds)...);
415
8.97k
  }
bool hb_sorted_array_t<OT::TableRecord const>::bsearch_impl<OT::Tag>(OT::Tag const&, unsigned int*) const
Line
Count
Source
407
1.72M
  {
408
1.72M
    return hb_bsearch_impl (pos,
409
1.72M
          x,
410
1.72M
          this->arrayZ,
411
1.72M
          this->length,
412
1.72M
          sizeof (Type),
413
1.72M
          _hb_cmp_method<T, Type, Ts...>,
414
1.72M
          std::forward<Ts> (ds)...);
415
1.72M
  }
bool hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
208k
  {
408
208k
    return hb_bsearch_impl (pos,
409
208k
          x,
410
208k
          this->arrayZ,
411
208k
          this->length,
412
208k
          sizeof (Type),
413
208k
          _hb_cmp_method<T, Type, Ts...>,
414
208k
          std::forward<Ts> (ds)...);
415
208k
  }
bool hb_sorted_array_t<OT::cff1::accelerator_t::gname_t>::bsearch_impl<OT::cff1::accelerator_t::gname_t>(OT::cff1::accelerator_t::gname_t const&, unsigned int*) const
Line
Count
Source
407
20.5k
  {
408
20.5k
    return hb_bsearch_impl (pos,
409
20.5k
          x,
410
20.5k
          this->arrayZ,
411
20.5k
          this->length,
412
20.5k
          sizeof (Type),
413
20.5k
          _hb_cmp_method<T, Type, Ts...>,
414
20.5k
          std::forward<Ts> (ds)...);
415
20.5k
  }
bool hb_sorted_array_t<OT::VertOriginMetric const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
960
  {
408
960
    return hb_bsearch_impl (pos,
409
960
          x,
410
960
          this->arrayZ,
411
960
          this->length,
412
960
          sizeof (Type),
413
960
          _hb_cmp_method<T, Type, Ts...>,
414
960
          std::forward<Ts> (ds)...);
415
960
  }
bool hb_sorted_array_t<OT::BaseScriptRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
417k
  {
408
417k
    return hb_bsearch_impl (pos,
409
417k
          x,
410
417k
          this->arrayZ,
411
417k
          this->length,
412
417k
          sizeof (Type),
413
417k
          _hb_cmp_method<T, Type, Ts...>,
414
417k
          std::forward<Ts> (ds)...);
415
417k
  }
bool hb_sorted_array_t<OT::Tag const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
5.08k
  {
408
5.08k
    return hb_bsearch_impl (pos,
409
5.08k
          x,
410
5.08k
          this->arrayZ,
411
5.08k
          this->length,
412
5.08k
          sizeof (Type),
413
5.08k
          _hb_cmp_method<T, Type, Ts...>,
414
5.08k
          std::forward<Ts> (ds)...);
415
5.08k
  }
Unexecuted instantiation: bool hb_sorted_array_t<OT::FeatMinMaxRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Unexecuted instantiation: bool hb_sorted_array_t<OT::BaseLangSysRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::JstfLangSys> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::JstfScript> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Unexecuted instantiation: bool hb_sorted_array_t<sid_to_gid_t const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
bool hb_sorted_array_t<LangTag const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
290k
  {
408
290k
    return hb_bsearch_impl (pos,
409
290k
          x,
410
290k
          this->arrayZ,
411
290k
          this->length,
412
290k
          sizeof (Type),
413
290k
          _hb_cmp_method<T, Type, Ts...>,
414
290k
          std::forward<Ts> (ds)...);
415
290k
  }
416
};
417
template <typename T> inline hb_sorted_array_t<T>
418
hb_sorted_array (T *array, unsigned int length)
419
82.4M
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<AAT::FeatureName const> hb_sorted_array<AAT::FeatureName const>(AAT::FeatureName const*, unsigned int)
Line
Count
Source
419
626k
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const> hb_sorted_array<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>(OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const*, unsigned int)
Line
Count
Source
419
23.6M
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const> hb_sorted_array<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>(OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const*, unsigned int)
Line
Count
Source
419
1.19M
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::HBGlyphID16 const> hb_sorted_array<OT::HBGlyphID16 const>(OT::HBGlyphID16 const*, unsigned int)
Line
Count
Source
419
45.4M
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::HBGlyphID24 const> hb_sorted_array<OT::HBGlyphID24 const>(OT::HBGlyphID24 const*, unsigned int)
Line
Count
Source
419
143k
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<AAT::KernPair const> hb_sorted_array<AAT::KernPair const>(AAT::KernPair const*, unsigned int)
Line
Count
Source
419
38.1k
{ return hb_sorted_array_t<T> (array, length); }
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Feature> const> hb_sorted_array<OT::Record<OT::Feature> const>(OT::Record<OT::Feature> const*, unsigned int)
hb_sorted_array_t<OT::Record<OT::LangSys> const> hb_sorted_array<OT::Record<OT::LangSys> const>(OT::Record<OT::LangSys> const*, unsigned int)
Line
Count
Source
419
581k
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::Record<OT::Script> const> hb_sorted_array<OT::Record<OT::Script> const>(OT::Record<OT::Script> const*, unsigned int)
Line
Count
Source
419
2.02M
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::UnicodeValueRange const> hb_sorted_array<OT::UnicodeValueRange const>(OT::UnicodeValueRange const*, unsigned int)
Line
Count
Source
419
210k
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::UVSMapping const> hb_sorted_array<OT::UVSMapping const>(OT::UVSMapping const*, unsigned int)
Line
Count
Source
419
418k
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::VariationSelectorRecord const> hb_sorted_array<OT::VariationSelectorRecord const>(OT::VariationSelectorRecord const*, unsigned int)
Line
Count
Source
419
627k
{ return hb_sorted_array_t<T> (array, length); }
Unexecuted instantiation: hb_sorted_array_t<OT::VariationSelectorRecord> hb_sorted_array<OT::VariationSelectorRecord>(OT::VariationSelectorRecord*, unsigned int)
hb_sorted_array_t<OT::CmapSubtableLongGroup const> hb_sorted_array<OT::CmapSubtableLongGroup const>(OT::CmapSubtableLongGroup const*, unsigned int)
Line
Count
Source
419
3.15M
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::EncodingRecord const> hb_sorted_array<OT::EncodingRecord const>(OT::EncodingRecord const*, unsigned int)
Line
Count
Source
419
1.48M
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::ClipRecord const> hb_sorted_array<OT::ClipRecord const>(OT::ClipRecord const*, unsigned int)
Line
Count
Source
419
9.09k
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::BaseGlyphPaintRecord const> hb_sorted_array<OT::BaseGlyphPaintRecord const>(OT::BaseGlyphPaintRecord const*, unsigned int)
Line
Count
Source
419
8.97k
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::BaseGlyphRecord const> hb_sorted_array<OT::BaseGlyphRecord const>(OT::BaseGlyphRecord const*, unsigned int)
Line
Count
Source
419
212k
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::TableRecord const> hb_sorted_array<OT::TableRecord const>(OT::TableRecord const*, unsigned int)
Line
Count
Source
419
1.72M
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::SVGDocumentIndexEntry const> hb_sorted_array<OT::SVGDocumentIndexEntry const>(OT::SVGDocumentIndexEntry const*, unsigned int)
Line
Count
Source
419
208k
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::VertOriginMetric const> hb_sorted_array<OT::VertOriginMetric const>(OT::VertOriginMetric const*, unsigned int)
Line
Count
Source
419
960
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::BaseScriptRecord const> hb_sorted_array<OT::BaseScriptRecord const>(OT::BaseScriptRecord const*, unsigned int)
Line
Count
Source
419
417k
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::Tag const> hb_sorted_array<OT::Tag const>(OT::Tag const*, unsigned int)
Line
Count
Source
419
5.08k
{ return hb_sorted_array_t<T> (array, length); }
Unexecuted instantiation: hb_sorted_array_t<OT::FeatMinMaxRecord const> hb_sorted_array<OT::FeatMinMaxRecord const>(OT::FeatMinMaxRecord const*, unsigned int)
Unexecuted instantiation: hb_sorted_array_t<OT::BaseLangSysRecord const> hb_sorted_array<OT::BaseLangSysRecord const>(OT::BaseLangSysRecord const*, unsigned int)
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::JstfLangSys> const> hb_sorted_array<OT::Record<OT::JstfLangSys> const>(OT::Record<OT::JstfLangSys> const*, unsigned int)
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::JstfScript> const> hb_sorted_array<OT::Record<OT::JstfScript> const>(OT::Record<OT::JstfScript> const*, unsigned int)
hb_sorted_array_t<OT::HBGlyphID16> hb_sorted_array<OT::HBGlyphID16>(OT::HBGlyphID16*, unsigned int)
Line
Count
Source
419
3.90k
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<LangTag const> hb_sorted_array<LangTag const>(LangTag const*, unsigned int)
Line
Count
Source
419
290k
{ return hb_sorted_array_t<T> (array, length); }
420
template <typename T, unsigned int length_> inline hb_sorted_array_t<T>
421
hb_sorted_array (T (&array_)[length_])
422
0
{ return hb_sorted_array_t<T> (array_); }
Unexecuted instantiation: hb_sorted_array_t<hb_aat_feature_mapping_t const> hb_sorted_array<hb_aat_feature_mapping_t const, 78u>(hb_aat_feature_mapping_t const (&) [78u])
Unexecuted instantiation: hb_sorted_array_t<OT::OS2Range const> hb_sorted_array<OT::OS2Range const, 169u>(OT::OS2Range const (&) [169u])
Unexecuted instantiation: hb_sorted_array_t<sid_to_gid_t const> hb_sorted_array<sid_to_gid_t const, 165u>(sid_to_gid_t const (&) [165u])
Unexecuted instantiation: hb_sorted_array_t<sid_to_gid_t const> hb_sorted_array<sid_to_gid_t const, 86u>(sid_to_gid_t const (&) [86u])
423
424
template <typename T>
425
inline bool hb_array_t<T>::operator == (const hb_array_t<T> &o) const
426
{
427
  if (o.length != this->length) return false;
428
  for (unsigned int i = 0; i < this->length; i++) {
429
    if (this->arrayZ[i] != o.arrayZ[i]) return false;
430
  }
431
  return true;
432
}
433
template <>
434
inline bool hb_array_t<const char>::operator == (const hb_array_t<const char> &o) const
435
65.2k
{
436
65.2k
  if (o.length != this->length) return false;
437
65.2k
  return 0 == hb_memcmp (arrayZ, o.arrayZ, length);
438
65.2k
}
439
template <>
440
inline bool hb_array_t<const unsigned char>::operator == (const hb_array_t<const unsigned char> &o) const
441
0
{
442
0
  if (o.length != this->length) return false;
443
0
  return 0 == hb_memcmp (arrayZ, o.arrayZ, length);
444
0
}
445
446
447
/* Specialize hash() for byte arrays. */
448
449
template <>
450
inline uint32_t hb_array_t<const char>::hash () const
451
134k
{
452
134k
  uint32_t current = 0;
453
134k
  unsigned i = 0;
454
455
134k
#if defined(__OPTIMIZE__) && !defined(HB_NO_PACKED) && \
456
134k
    ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__))
457
134k
  struct __attribute__((packed)) packed_uint32_t { uint32_t v; };
458
475k
  for (; i + 4 <= this->length; i += 4)
459
340k
    current = current * 31 + hb_hash ((uint32_t) ((packed_uint32_t *) &this->arrayZ[i])->v);
460
134k
#endif
461
462
236k
  for (; i < this->length; i++)
463
102k
    current = current * 31 + hb_hash (this->arrayZ[i]);
464
134k
  return current;
465
134k
}
466
467
template <>
468
inline uint32_t hb_array_t<const unsigned char>::hash () const
469
0
{
470
0
  uint32_t current = 0;
471
0
  unsigned i = 0;
472
0
473
0
#if defined(__OPTIMIZE__) && !defined(HB_NO_PACKED) && \
474
0
    ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__))
475
0
  struct __attribute__((packed)) packed_uint32_t { uint32_t v; };
476
0
  for (; i + 4 <= this->length; i += 4)
477
0
    current = current * 31 + hb_hash ((uint32_t) ((packed_uint32_t *) &this->arrayZ[i])->v);
478
0
#endif
479
0
480
0
  for (; i < this->length; i++)
481
0
    current = current * 31 + hb_hash (this->arrayZ[i]);
482
0
  return current;
483
0
}
484
485
486
typedef hb_array_t<const char> hb_bytes_t;
487
typedef hb_array_t<const unsigned char> hb_ubytes_t;
488
489
490
491
#endif /* HB_ARRAY_HH */