Coverage Report

Created: 2023-12-18 13:34

/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
50.8M
  hb_array_t () = default;
hb_array_t<char const>::hb_array_t()
Line
Count
Source
53
40.2M
  hb_array_t () = default;
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::hb_array_t()
Line
Count
Source
53
1.71M
  hb_array_t () = default;
hb_array_t<int>::hb_array_t()
Line
Count
Source
53
487k
  hb_array_t () = default;
hb_array_t<unsigned char const>::hb_array_t()
Line
Count
Source
53
8.38M
  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
3.78G
  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
32.9k
  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
21.4M
  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
5.37M
  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
10.7M
  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
5.37M
  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
2.48G
  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
657k
  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
2.21M
  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
718k
  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
1.13M
  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
95.7k
  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
125M
  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
16.4M
  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
44.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
1.06M
  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
600k
  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
379k
  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
14.7M
  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
202M
  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
7.21k
  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
39.9M
  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
14.7M
  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
5.35M
  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
16.1M
  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
10.7M
  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
51.3M
  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
7.31M
  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
138k
  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
68.1M
  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
195k
  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
1.11M
  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
5.39M
  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
10.7M
  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
5.37M
  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
5.38M
  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
2.04k
  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
1.89M
  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
13.9M
  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
2.84M
  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
6.82M
  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
1.11M
  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
55.8k
  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
98.7k
  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
16.6M
  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
52.2M
  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
13.1M
  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
462k
  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)
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)
Line
Count
Source
59
629
  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::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
14.6M
  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
11.7M
  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
11.7M
  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
878k
  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
13.5M
  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
180k
  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
10.7M
  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
12.3k
  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
154M
  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
154M
  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
10.7M
  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
5.37M
  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
10.7M
  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
5.37M
  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
5.37M
  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
5.29M
  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
5.23M
  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
61.2M
  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
2.59M
  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
6.56M
  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
674k
  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
99.2k
  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
99.2k
  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
37.3k
  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
88.3k
  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
34.9k
  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
34.9k
  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
143k
  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
518k
  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
6.57M
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
60
  template <unsigned int length_>
61
1.29M
  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
1.29M
  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
78.6M
    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
1.85M
    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
718k
    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
14.7M
    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
61.2M
    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
18.4k
    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
1.25G
  {
80
1.25G
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
1.23G
    return arrayZ[i];
82
1.25G
  }
hb_array_t<OT::IntType<short, 2u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
16.5k
  {
80
16.5k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
13.7k
    return arrayZ[i];
82
16.5k
  }
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
487
  {
80
487
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
487
    return arrayZ[i];
82
487
  }
hb_array_t<AAT::FeatureName const>::__item_at__(unsigned int) const
Line
Count
Source
79
487
  {
80
487
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
487
    return arrayZ[i];
82
487
  }
hb_array_t<AAT::SettingName const>::__item_at__(unsigned int) const
Line
Count
Source
79
593
  {
80
593
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
561
    return arrayZ[i];
82
593
  }
hb_array_t<hb_aat_layout_feature_selector_info_t>::__item_at__(unsigned int) const
Line
Count
Source
79
297
  {
80
297
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
297
    return arrayZ[i];
82
297
  }
hb_array_t<hb_aat_map_t::range_flags_t const>::__item_at__(unsigned int) const
Line
Count
Source
79
643k
  {
80
643k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
643k
    return arrayZ[i];
82
643k
  }
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
62.7M
  {
80
62.7M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
62.7M
    return arrayZ[i];
82
62.7M
  }
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
41.9k
  {
80
41.9k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
41.9k
    return arrayZ[i];
82
41.9k
  }
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
407k
  {
80
407k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
407k
    return arrayZ[i];
82
407k
  }
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
55.6M
  {
80
55.6M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
55.6M
    return arrayZ[i];
82
55.6M
  }
hb_array_t<OT::IntType<unsigned int, 3u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
200
  {
80
200
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
200
    return arrayZ[i];
82
200
  }
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
697M
  {
80
697M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
697M
    return arrayZ[i];
82
697M
  }
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
183M
  {
80
183M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
183M
    return arrayZ[i];
82
183M
  }
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
16.6M
  {
80
16.6M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
16.6M
    return arrayZ[i];
82
16.6M
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Line
Count
Source
79
985k
  {
80
985k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
985k
    return arrayZ[i];
82
985k
  }
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
17.9M
  {
80
17.9M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
17.9M
    return arrayZ[i];
82
17.9M
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Line
Count
Source
79
249k
  {
80
249k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
249k
    return arrayZ[i];
82
249k
  }
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
1.47M
  {
80
1.47M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
1.47M
    return arrayZ[i];
82
1.47M
  }
hb_array_t<OT::contour_point_t>::__item_at__(unsigned int) const
Line
Count
Source
79
19.2M
  {
80
19.2M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
19.2M
    return arrayZ[i];
82
19.2M
  }
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
7.21k
  {
80
7.21k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
7.21k
    return arrayZ[i];
82
7.21k
  }
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
53.1k
  {
80
53.1k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
53.1k
    return arrayZ[i];
82
53.1k
  }
hb_array_t<OT::IntType<unsigned int, 4u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
33.0k
  {
80
33.0k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
30.9k
    return arrayZ[i];
82
33.0k
  }
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
179k
  {
80
179k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
26.3k
    return arrayZ[i];
82
179k
  }
hb_array_t<OT::IntType<unsigned char, 1u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
82.3k
  {
80
82.3k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
49.2k
    return arrayZ[i];
82
82.3k
  }
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
13.3M
  {
80
13.3M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
13.3M
    return arrayZ[i];
82
13.3M
  }
hb_array_t<OT::HBGlyphID16 const>::__item_at__(unsigned int) const
Line
Count
Source
79
713k
  {
80
713k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
713k
    return arrayZ[i];
82
713k
  }
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
2.58M
  {
80
2.58M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
2.58M
    return arrayZ[i];
82
2.58M
  }
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
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
Line
Count
Source
79
460
  {
80
460
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
460
    return arrayZ[i];
82
460
  }
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
619
  {
80
619
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
619
    return arrayZ[i];
82
619
  }
hb_array_t<hb_ot_math_glyph_variant_t>::__item_at__(unsigned int) const
Line
Count
Source
79
619
  {
80
619
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
619
    return arrayZ[i];
82
619
  }
hb_array_t<OT::MathGlyphPartRecord const>::__item_at__(unsigned int) const
Line
Count
Source
79
638
  {
80
638
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
638
    return arrayZ[i];
82
638
  }
hb_array_t<hb_ot_math_glyph_part_t>::__item_at__(unsigned int) const
Line
Count
Source
79
638
  {
80
638
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
638
    return arrayZ[i];
82
638
  }
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
5.55M
  {
80
5.55M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
5.55M
    return arrayZ[i];
82
5.55M
  }
hb_array_t<hb_glyph_info_t>::__item_at__(unsigned int) const
Line
Count
Source
79
173M
  {
80
173M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
160M
    return arrayZ[i];
82
173M
  }
83
  void __forward__ (unsigned n)
84
1.01G
  {
85
1.01G
    if (unlikely (n > length))
86
35.9k
      n = length;
87
1.01G
    length -= n;
88
1.01G
    backwards_length += n;
89
1.01G
    arrayZ += n;
90
1.01G
  }
hb_array_t<hb_aat_layout_feature_type_t>::__forward__(unsigned int)
Line
Count
Source
84
487
  {
85
487
    if (unlikely (n > length))
86
0
      n = length;
87
487
    length -= n;
88
487
    backwards_length += n;
89
487
    arrayZ += n;
90
487
  }
hb_array_t<AAT::FeatureName const>::__forward__(unsigned int)
Line
Count
Source
84
487
  {
85
487
    if (unlikely (n > length))
86
0
      n = length;
87
487
    length -= n;
88
487
    backwards_length += n;
89
487
    arrayZ += n;
90
487
  }
hb_array_t<hb_aat_layout_feature_selector_info_t>::__forward__(unsigned int)
Line
Count
Source
84
297
  {
85
297
    if (unlikely (n > length))
86
0
      n = length;
87
297
    length -= n;
88
297
    backwards_length += n;
89
297
    arrayZ += n;
90
297
  }
hb_array_t<AAT::SettingName const>::__forward__(unsigned int)
Line
Count
Source
84
297
  {
85
297
    if (unlikely (n > length))
86
0
      n = length;
87
297
    length -= n;
88
297
    backwards_length += n;
89
297
    arrayZ += n;
90
297
  }
hb_array_t<hb_aat_map_t::range_flags_t const>::__forward__(unsigned int)
Line
Count
Source
84
93.8k
  {
85
93.8k
    if (unlikely (n > length))
86
0
      n = length;
87
93.8k
    length -= n;
88
93.8k
    backwards_length += n;
89
93.8k
    arrayZ += n;
90
93.8k
  }
Unexecuted instantiation: hb_array_t<unsigned long long const>::__forward__(unsigned int)
hb_array_t<unsigned int>::__forward__(unsigned int)
Line
Count
Source
84
62.4M
  {
85
62.4M
    if (unlikely (n > length))
86
0
      n = length;
87
62.4M
    length -= n;
88
62.4M
    backwards_length += n;
89
62.4M
    arrayZ += n;
90
62.4M
  }
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
41.9k
  {
85
41.9k
    if (unlikely (n > length))
86
0
      n = length;
87
41.9k
    length -= n;
88
41.9k
    backwards_length += n;
89
41.9k
    arrayZ += n;
90
41.9k
  }
hb_array_t<hb_serialize_context_t::object_t* const>::__forward__(unsigned int)
Line
Count
Source
84
99.2k
  {
85
99.2k
    if (unlikely (n > length))
86
35.9k
      n = length;
87
99.2k
    length -= n;
88
99.2k
    backwards_length += n;
89
99.2k
    arrayZ += n;
90
99.2k
  }
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
104k
  {
85
104k
    if (unlikely (n > length))
86
0
      n = length;
87
104k
    length -= n;
88
104k
    backwards_length += n;
89
104k
    arrayZ += n;
90
104k
  }
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
55.6M
  {
85
55.6M
    if (unlikely (n > length))
86
0
      n = length;
87
55.6M
    length -= n;
88
55.6M
    backwards_length += n;
89
55.6M
    arrayZ += n;
90
55.6M
  }
hb_array_t<OT::IntType<unsigned int, 3u> const>::__forward__(unsigned int)
Line
Count
Source
84
200
  {
85
200
    if (unlikely (n > length))
86
0
      n = length;
87
200
    length -= n;
88
200
    backwards_length += n;
89
200
    arrayZ += n;
90
200
  }
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
696M
  {
85
696M
    if (unlikely (n > length))
86
0
      n = length;
87
696M
    length -= n;
88
696M
    backwards_length += n;
89
696M
    arrayZ += n;
90
696M
  }
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
115M
  {
85
115M
    if (unlikely (n > length))
86
0
      n = length;
87
115M
    length -= n;
88
115M
    backwards_length += n;
89
115M
    arrayZ += n;
90
115M
  }
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
5.33M
  {
85
5.33M
    if (unlikely (n > length))
86
0
      n = length;
87
5.33M
    length -= n;
88
5.33M
    backwards_length += n;
89
5.33M
    arrayZ += n;
90
5.33M
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Line
Count
Source
84
232k
  {
85
232k
    if (unlikely (n > length))
86
0
      n = length;
87
232k
    length -= n;
88
232k
    backwards_length += n;
89
232k
    arrayZ += n;
90
232k
  }
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
8.32M
  {
85
8.32M
    if (unlikely (n > length))
86
0
      n = length;
87
8.32M
    length -= n;
88
8.32M
    backwards_length += n;
89
8.32M
    arrayZ += n;
90
8.32M
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Line
Count
Source
84
135k
  {
85
135k
    if (unlikely (n > length))
86
0
      n = length;
87
135k
    length -= n;
88
135k
    backwards_length += n;
89
135k
    arrayZ += n;
90
135k
  }
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
2.75M
  {
85
2.75M
    if (unlikely (n > length))
86
0
      n = length;
87
2.75M
    length -= n;
88
2.75M
    backwards_length += n;
89
2.75M
    arrayZ += n;
90
2.75M
  }
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)
hb_array_t<OT::IntType<unsigned int, 4u> const>::__forward__(unsigned int)
Line
Count
Source
84
30.8k
  {
85
30.8k
    if (unlikely (n > length))
86
0
      n = length;
87
30.8k
    length -= n;
88
30.8k
    backwards_length += n;
89
30.8k
    arrayZ += n;
90
30.8k
  }
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
816k
  {
85
816k
    if (unlikely (n > length))
86
0
      n = length;
87
816k
    length -= n;
88
816k
    backwards_length += n;
89
816k
    arrayZ += n;
90
816k
  }
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
2.58M
  {
85
2.58M
    if (unlikely (n > length))
86
0
      n = length;
87
2.58M
    length -= n;
88
2.58M
    backwards_length += n;
89
2.58M
    arrayZ += n;
90
2.58M
  }
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)
hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Line
Count
Source
84
460
  {
85
460
    if (unlikely (n > length))
86
0
      n = length;
87
460
    length -= n;
88
460
    backwards_length += n;
89
460
    arrayZ += n;
90
460
  }
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
5.37M
  {
85
5.37M
    if (unlikely (n > length))
86
0
      n = length;
87
5.37M
    length -= n;
88
5.37M
    backwards_length += n;
89
5.37M
    arrayZ += n;
90
5.37M
  }
hb_array_t<hb_ot_math_glyph_variant_t>::__forward__(unsigned int)
Line
Count
Source
84
5.37M
  {
85
5.37M
    if (unlikely (n > length))
86
0
      n = length;
87
5.37M
    length -= n;
88
5.37M
    backwards_length += n;
89
5.37M
    arrayZ += n;
90
5.37M
  }
hb_array_t<OT::MathGlyphPartRecord const>::__forward__(unsigned int)
Line
Count
Source
84
5.37M
  {
85
5.37M
    if (unlikely (n > length))
86
0
      n = length;
87
5.37M
    length -= n;
88
5.37M
    backwards_length += n;
89
5.37M
    arrayZ += n;
90
5.37M
  }
hb_array_t<hb_ot_math_glyph_part_t>::__forward__(unsigned int)
Line
Count
Source
84
5.37M
  {
85
5.37M
    if (unlikely (n > length))
86
0
      n = length;
87
5.37M
    length -= n;
88
5.37M
    backwards_length += n;
89
5.37M
    arrayZ += n;
90
5.37M
  }
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
5.58M
  {
85
5.58M
    if (unlikely (n > length))
86
0
      n = length;
87
5.58M
    length -= n;
88
5.58M
    backwards_length += n;
89
5.58M
    arrayZ += n;
90
5.58M
  }
hb_array_t<hb_glyph_info_t>::__forward__(unsigned int)
Line
Count
Source
84
37.5M
  {
85
37.5M
    if (unlikely (n > length))
86
0
      n = length;
87
37.5M
    length -= n;
88
37.5M
    backwards_length += n;
89
37.5M
    arrayZ += n;
90
37.5M
  }
91
  void __rewind__ (unsigned n)
92
5.76M
  {
93
5.76M
    if (unlikely (n > backwards_length))
94
0
      n = backwards_length;
95
5.76M
    length += n;
96
5.76M
    backwards_length -= n;
97
5.76M
    arrayZ -= n;
98
5.76M
  }
99
1.28G
  unsigned __len__ () const { return length; }
hb_array_t<AAT::FeatureName const>::__len__() const
Line
Count
Source
99
5.37M
  unsigned __len__ () const { return length; }
hb_array_t<AAT::SettingName const>::__len__() const
Line
Count
Source
99
5.37M
  unsigned __len__ () const { return length; }
hb_array_t<hb_aat_map_t::range_flags_t const>::__len__() const
Line
Count
Source
99
812k
  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
6.78M
  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
76.9k
  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
89.7M
  unsigned __len__ () const { return length; }
hb_array_t<OT::IntType<unsigned int, 3u> const>::__len__() const
Line
Count
Source
99
5.37M
  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
1.13M
  unsigned __len__ () const { return length; }
hb_array_t<OT::HBGlyphID24 const>::__len__() const
Line
Count
Source
99
33.2k
  unsigned __len__ () const { return length; }
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::__len__() const
Line
Count
Source
99
270M
  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
19.9M
  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
1.11M
  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
21.8M
  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
315k
  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
701M
  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
2.67M
  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
hb_array_t<OT::IntType<unsigned int, 4u> const>::__len__() const
Line
Count
Source
99
95.0k
  unsigned __len__ () const { return length; }
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
3.04M
  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
hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Line
Count
Source
99
1.08k
  unsigned __len__ () const { return length; }
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
5.37M
  unsigned __len__ () const { return length; }
hb_array_t<hb_ot_math_glyph_variant_t>::__len__() const
Line
Count
Source
99
5.37M
  unsigned __len__ () const { return length; }
hb_array_t<OT::MathGlyphPartRecord const>::__len__() const
Line
Count
Source
99
5.37M
  unsigned __len__ () const { return length; }
hb_array_t<hb_ot_math_glyph_part_t>::__len__() const
Line
Count
Source
99
5.37M
  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
1.90M
  unsigned __len__ () const { return length; }
hb_array_t<hb_glyph_info_t>::__len__() const
Line
Count
Source
99
121M
  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
11.7M
  { 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
5.37M
  { 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
619
  { 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
5.37M
  { 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
638
  { 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
968k
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
109
110
  /* Faster range-based for loop without bounds-check. */
111
9.02M
  Type *begin () const { return arrayZ; }
hb_array_t<hb_serialize_context_t::object_t* const>::begin() const
Line
Count
Source
111
99.2k
  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
37.3k
  Type *begin () const { return arrayZ; }
hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::begin() const
Line
Count
Source
111
5.35M
  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
1.68k
  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
3.52M
  Type *begin () const { return arrayZ; }
112
9.02M
  Type *end () const { return arrayZ + length; }
hb_array_t<hb_serialize_context_t::object_t* const>::end() const
Line
Count
Source
112
99.2k
  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
37.3k
  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
5.35M
  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
1.68k
  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
3.52M
  Type *end () const { return arrayZ + length; }
113
114
115
  /* Extra operators.
116
   */
117
31.1M
  Type * operator & () const { return arrayZ; }
hb_array_t<AAT::Feature const>::operator&() const
Line
Count
Source
117
657k
  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
822k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::HBGlyphID24 const>::operator&() const
Line
Count
Source
117
33.2k
  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
11.7M
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<unsigned short, 2u> const>::operator&() const
Line
Count
Source
117
16.6M
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<unsigned int, 3u> const>::operator&() const
Line
Count
Source
117
985k
  Type * operator & () const { return arrayZ; }
Unexecuted instantiation: hb_array_t<char const>::operator&() const
hb_array_t<OT::AxisRecord const>::operator&() const
Line
Count
Source
117
39.1k
  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
94.5k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<short, 2u> const>::operator&() const
Line
Count
Source
117
32.9k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<unsigned char, 1u> const>::operator&() const
Line
Count
Source
117
65.8k
  Type * operator & () const { return arrayZ; }
118
155M
  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
51.8k
  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
34.9k
  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
99.2k
  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
36.9k
  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
154M
  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
36.9k
  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
114M
  {
138
114M
    if (length != a.length)
139
48.9M
      return (int) a.length - (int) length;
140
65.3M
    return hb_memcmp (a.arrayZ, arrayZ, get_size ());
141
114M
  }
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
20.5M
  {
152
20.5M
    unsigned i;
153
20.5M
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
20.5M
  }
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
9.54M
  {
152
9.54M
    unsigned i;
153
9.54M
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
9.54M
  }
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
5.25M
  {
152
5.25M
    unsigned i;
153
5.25M
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
5.25M
  }
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
367k
  {
152
367k
    unsigned i;
153
367k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
367k
  }
OT::DataMap const* hb_array_t<OT::DataMap const>::lsearch<unsigned int>(unsigned int const&, OT::DataMap const*)
Line
Count
Source
151
5.37M
  {
152
5.37M
    unsigned i;
153
5.37M
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
5.37M
  }
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
220M
  {
166
363M
    for (unsigned i = 0; i < length; ++i)
167
155M
      if (hb_equal (x, this->arrayZ[i]))
168
12.2M
      {
169
12.2M
  if (pos)
170
12.2M
    *pos = i;
171
12.2M
  return true;
172
12.2M
      }
173
174
208M
    if (pos)
175
208M
    {
176
208M
      switch (not_found)
177
208M
      {
178
11.0M
  case HB_NOT_FOUND_DONT_STORE:
179
11.0M
    break;
180
181
196M
  case HB_NOT_FOUND_STORE:
182
196M
    *pos = to_store;
183
196M
    break;
184
185
0
  case HB_NOT_FOUND_STORE_CLOSEST:
186
0
    *pos = length;
187
0
    break;
188
208M
      }
189
208M
    }
190
208M
    return false;
191
208M
  }
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
9.54M
  {
166
9.54M
    for (unsigned i = 0; i < length; ++i)
167
9.52M
      if (hb_equal (x, this->arrayZ[i]))
168
9.52M
      {
169
9.52M
  if (pos)
170
9.52M
    *pos = i;
171
9.52M
  return true;
172
9.52M
      }
173
174
18.6k
    if (pos)
175
18.6k
    {
176
18.6k
      switch (not_found)
177
18.6k
      {
178
18.6k
  case HB_NOT_FOUND_DONT_STORE:
179
18.6k
    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
18.6k
      }
189
18.6k
    }
190
18.6k
    return false;
191
18.6k
  }
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
5.25M
  {
166
5.25M
    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
5.25M
    if (pos)
175
5.25M
    {
176
5.25M
      switch (not_found)
177
5.25M
      {
178
5.25M
  case HB_NOT_FOUND_DONT_STORE:
179
5.25M
    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
5.25M
      }
189
5.25M
    }
190
5.25M
    return false;
191
5.25M
  }
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
367k
  {
166
367k
    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
367k
    if (pos)
175
367k
    {
176
367k
      switch (not_found)
177
367k
      {
178
367k
  case HB_NOT_FOUND_DONT_STORE:
179
367k
    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
367k
      }
189
367k
    }
190
367k
    return false;
191
367k
  }
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
199M
  {
166
343M
    for (unsigned i = 0; i < length; ++i)
167
146M
      if (hb_equal (x, this->arrayZ[i]))
168
2.77M
      {
169
2.77M
  if (pos)
170
2.77M
    *pos = i;
171
2.77M
  return true;
172
2.77M
      }
173
174
196M
    if (pos)
175
196M
    {
176
196M
      switch (not_found)
177
196M
      {
178
0
  case HB_NOT_FOUND_DONT_STORE:
179
0
    break;
180
181
196M
  case HB_NOT_FOUND_STORE:
182
196M
    *pos = to_store;
183
196M
    break;
184
185
0
  case HB_NOT_FOUND_STORE_CLOSEST:
186
0
    *pos = length;
187
0
    break;
188
196M
      }
189
196M
    }
190
196M
    return false;
191
196M
  }
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
5.37M
  {
166
5.37M
    for (unsigned i = 0; i < length; ++i)
167
1.59k
      if (hb_equal (x, this->arrayZ[i]))
168
1.05k
      {
169
1.05k
  if (pos)
170
1.05k
    *pos = i;
171
1.05k
  return true;
172
1.05k
      }
173
174
5.37M
    if (pos)
175
5.37M
    {
176
5.37M
      switch (not_found)
177
5.37M
      {
178
5.37M
  case HB_NOT_FOUND_DONT_STORE:
179
5.37M
    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
5.37M
      }
189
5.37M
    }
190
5.37M
    return false;
191
5.37M
  }
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
12.1M
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
12.1M
    if (likely (length))
197
6.69M
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
12.1M
    return hb_sorted_array_t<Type> (*this);
199
12.1M
  }
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
379k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
379k
    if (likely (length))
197
0
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
379k
    return hb_sorted_array_t<Type> (*this);
199
379k
  }
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
27.9k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
27.9k
    if (likely (length))
197
27.9k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
27.9k
    return hb_sorted_array_t<Type> (*this);
199
27.9k
  }
hb_array_t<hb_ot_name_entry_t>::qsort(int (*)(void const*, void const*))
Line
Count
Source
194
5.23M
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
5.23M
    if (likely (length))
197
103k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
5.23M
    return hb_sorted_array_t<Type> (*this);
199
5.23M
  }
hb_array_t<hb_ot_map_builder_t::feature_info_t>::qsort(int (*)(void const*, void const*))
Line
Count
Source
194
6.56M
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
6.56M
    if (likely (length))
197
6.56M
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
6.56M
    return hb_sorted_array_t<Type> (*this);
199
6.56M
  }
200
  hb_sorted_array_t<Type> qsort ()
201
311k
  {
202
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
203
311k
    if (likely (length))
204
311k
      hb_qsort (arrayZ, length, this->get_item_size (), Type::cmp);
205
311k
    return hb_sorted_array_t<Type> (*this);
206
311k
  }
Unexecuted instantiation: hb_array_t<OT::NameRecord>::qsort()
hb_array_t<hb_ot_map_t::lookup_map_t>::qsort()
Line
Count
Source
201
311k
  {
202
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
203
311k
    if (likely (length))
204
311k
      hb_qsort (arrayZ, length, this->get_item_size (), Type::cmp);
205
311k
    return hb_sorted_array_t<Type> (*this);
206
311k
  }
207
208
  /*
209
   * Other methods.
210
   */
211
212
96.9M
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<AAT::Feature const>::get_size() const
Line
Count
Source
212
657k
  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
11.7M
  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
16.6M
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<OT::IntType<unsigned int, 3u> const>::get_size() const
Line
Count
Source
212
985k
  unsigned int get_size () const { return length * this->get_item_size (); }
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
1.31M
  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
88.1k
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<char const>::get_size() const
Line
Count
Source
212
65.3M
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<OT::AxisRecord const>::get_size() const
Line
Count
Source
212
39.1k
  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
65.8k
  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
32.9k
  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
1.16M
  {
219
1.16M
    start = hb_min (start, length);
220
1.16M
    end = hb_min (end, length);
221
222
1.16M
    if (end < start + 2)
223
820k
      return;
224
225
113M
    for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--)
226
113M
      hb_swap (arrayZ[rhs], arrayZ[lhs]);
227
345k
  }
hb_array_t<hb_glyph_info_t>::reverse(unsigned int, unsigned int)
Line
Count
Source
218
1.06M
  {
219
1.06M
    start = hb_min (start, length);
220
1.06M
    end = hb_min (end, length);
221
222
1.06M
    if (end < start + 2)
223
801k
      return;
224
225
111M
    for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--)
226
110M
      hb_swap (arrayZ[rhs], arrayZ[lhs]);
227
268k
  }
hb_array_t<hb_glyph_position_t>::reverse(unsigned int, unsigned int)
Line
Count
Source
218
95.7k
  {
219
95.7k
    start = hb_min (start, length);
220
95.7k
    end = hb_min (end, length);
221
222
95.7k
    if (end < start + 2)
223
19.0k
      return;
224
225
2.40M
    for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--)
226
2.33M
      hb_swap (arrayZ[rhs], arrayZ[lhs]);
227
76.6k
  }
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
77.1M
  {
231
77.1M
    if (!start_offset && !seg_count)
232
307k
      return *this;
233
234
76.8M
    unsigned int count = length;
235
76.8M
    if (unlikely (start_offset > count))
236
91.3k
      count = 0;
237
76.7M
    else
238
76.7M
      count -= start_offset;
239
76.8M
    if (seg_count)
240
74.9M
      count = *seg_count = hb_min (count, *seg_count);
241
76.8M
    return hb_array_t (arrayZ + start_offset, count);
242
77.1M
  }
hb_array_t<AAT::FeatureName const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
5.37M
  {
231
5.37M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
5.37M
    unsigned int count = length;
235
5.37M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
5.37M
    else
238
5.37M
      count -= start_offset;
239
5.37M
    if (seg_count)
240
5.37M
      count = *seg_count = hb_min (count, *seg_count);
241
5.37M
    return hb_array_t (arrayZ + start_offset, count);
242
5.37M
  }
hb_array_t<AAT::SettingName const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
5.37M
  {
231
5.37M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
5.37M
    unsigned int count = length;
235
5.37M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
5.37M
    else
238
5.37M
      count -= start_offset;
239
5.37M
    if (seg_count)
240
5.37M
      count = *seg_count = hb_min (count, *seg_count);
241
5.37M
    return hb_array_t (arrayZ + start_offset, count);
242
5.37M
  }
hb_array_t<hb_ot_map_t::lookup_map_t const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
51.8k
  {
231
51.8k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
51.8k
    unsigned int count = length;
235
51.8k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
51.8k
    else
238
51.8k
      count -= start_offset;
239
51.8k
    if (seg_count)
240
51.8k
      count = *seg_count = hb_min (count, *seg_count);
241
51.8k
    return hb_array_t (arrayZ + start_offset, count);
242
51.8k
  }
hb_array_t<OT::Index const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
34.0M
  {
231
34.0M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
34.0M
    unsigned int count = length;
235
34.0M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
34.0M
    else
238
34.0M
      count -= start_offset;
239
34.0M
    if (seg_count)
240
34.0M
      count = *seg_count = hb_min (count, *seg_count);
241
34.0M
    return hb_array_t (arrayZ + start_offset, count);
242
34.0M
  }
hb_array_t<OT::IntType<unsigned int, 3u> const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
5.37M
  {
231
5.37M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
5.37M
    unsigned int count = length;
235
5.37M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
5.37M
    else
238
5.37M
      count -= start_offset;
239
5.37M
    if (seg_count)
240
5.37M
      count = *seg_count = hb_min (count, *seg_count);
241
5.37M
    return hb_array_t (arrayZ + start_offset, count);
242
5.37M
  }
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
5.37M
  {
231
5.37M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
5.37M
    unsigned int count = length;
235
5.37M
    if (unlikely (start_offset > count))
236
231
      count = 0;
237
5.37M
    else
238
5.37M
      count -= start_offset;
239
5.37M
    if (seg_count)
240
5.37M
      count = *seg_count = hb_min (count, *seg_count);
241
5.37M
    return hb_array_t (arrayZ + start_offset, count);
242
5.37M
  }
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
729k
  {
231
729k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
729k
    unsigned int count = length;
235
729k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
729k
    else
238
729k
      count -= start_offset;
239
729k
    if (seg_count)
240
729k
      count = *seg_count = hb_min (count, *seg_count);
241
729k
    return hb_array_t (arrayZ + start_offset, count);
242
729k
  }
hb_array_t<char const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
659k
  {
231
659k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
659k
    unsigned int count = length;
235
659k
    if (unlikely (start_offset > count))
236
55.7k
      count = 0;
237
603k
    else
238
603k
      count -= start_offset;
239
659k
    if (seg_count)
240
659k
      count = *seg_count = hb_min (count, *seg_count);
241
659k
    return hb_array_t (arrayZ + start_offset, count);
242
659k
  }
hb_array_t<OT::contour_point_t>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
5.92M
  {
231
5.92M
    if (!start_offset && !seg_count)
232
307k
      return *this;
233
234
5.61M
    unsigned int count = length;
235
5.61M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
5.61M
    else
238
5.61M
      count -= start_offset;
239
5.61M
    if (seg_count)
240
3.65M
      count = *seg_count = hb_min (count, *seg_count);
241
5.61M
    return hb_array_t (arrayZ + start_offset, count);
242
5.92M
  }
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
128k
  {
231
128k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
128k
    unsigned int count = length;
235
128k
    if (unlikely (start_offset > count))
236
35.3k
      count = 0;
237
93.3k
    else
238
93.3k
      count -= start_offset;
239
128k
    if (seg_count)
240
128k
      count = *seg_count = hb_min (count, *seg_count);
241
128k
    return hb_array_t (arrayZ + start_offset, count);
242
128k
  }
hb_array_t<unsigned char const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
1.25M
  {
231
1.25M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
1.25M
    unsigned int count = length;
235
1.25M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
1.25M
    else
238
1.25M
      count -= start_offset;
239
1.25M
    if (seg_count)
240
1.25M
      count = *seg_count = hb_min (count, *seg_count);
241
1.25M
    return hb_array_t (arrayZ + start_offset, count);
242
1.25M
  }
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
407k
  {
231
407k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
407k
    unsigned int count = length;
235
407k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
407k
    else
238
407k
      count -= start_offset;
239
407k
    if (seg_count)
240
407k
      count = *seg_count = hb_min (count, *seg_count);
241
407k
    return hb_array_t (arrayZ + start_offset, count);
242
407k
  }
hb_array_t<unsigned int const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
106k
  {
231
106k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
106k
    unsigned int count = length;
235
106k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
106k
    else
238
106k
      count -= start_offset;
239
106k
    if (seg_count)
240
106k
      count = *seg_count = hb_min (count, *seg_count);
241
106k
    return hb_array_t (arrayZ + start_offset, count);
242
106k
  }
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
5.37M
  {
231
5.37M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
5.37M
    unsigned int count = length;
235
5.37M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
5.37M
    else
238
5.37M
      count -= start_offset;
239
5.37M
    if (seg_count)
240
5.37M
      count = *seg_count = hb_min (count, *seg_count);
241
5.37M
    return hb_array_t (arrayZ + start_offset, count);
242
5.37M
  }
hb_array_t<OT::MathGlyphPartRecord const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
5.37M
  {
231
5.37M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
5.37M
    unsigned int count = length;
235
5.37M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
5.37M
    else
238
5.37M
      count -= start_offset;
239
5.37M
    if (seg_count)
240
5.37M
      count = *seg_count = hb_min (count, *seg_count);
241
5.37M
    return hb_array_t (arrayZ + start_offset, count);
242
5.37M
  }
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
1.29M
  {
231
1.29M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
1.29M
    unsigned int count = length;
235
1.29M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
1.29M
    else
238
1.29M
      count -= start_offset;
239
1.29M
    if (seg_count)
240
1.29M
      count = *seg_count = hb_min (count, *seg_count);
241
1.29M
    return hb_array_t (arrayZ + start_offset, count);
242
1.29M
  }
hb_array_t<hb_ot_map_t::lookup_map_t>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
311k
  {
231
311k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
311k
    unsigned int count = length;
235
311k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
311k
    else
238
311k
      count -= start_offset;
239
311k
    if (seg_count)
240
311k
      count = *seg_count = hb_min (count, *seg_count);
241
311k
    return hb_array_t (arrayZ + start_offset, count);
242
311k
  }
243
  hb_array_t sub_array (unsigned int start_offset, unsigned int seg_count) const
244
13.9M
  { 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
51.8k
  { 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
5.37M
  { 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
729k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<char const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
659k
  { 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
3.65M
  { 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
64.5k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<unsigned char const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
1.25M
  { return sub_array (start_offset, &seg_count); }
hb_array_t<OT::HBGlyphID16 const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
407k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<unsigned int const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
106k
  { 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
1.29M
  { 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
311k
  { 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
2.27G
  { 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
224M
  { 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
1.99M
  { 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
7.31M
  { 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
6.77M
  { 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
6.69M
  { 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
126k
  { 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
6.56M
  { 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
16.1M
  { 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
376M
  { 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
15.4M
  { 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
15.4M
  { 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
17.3M
  { 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
10.4M
  { 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
17.4M
  { 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
16.8M
  { 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
22.7M
  { 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
4.98M
  { 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
1.24M
  { 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
4.58M
  { 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
25.6M
  { 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
61.4k
  { 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
2.60M
  { 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
1.96M
  { 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
1.53M
  { 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
202M
  { 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
32.2M
  { 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
16.1M
  { 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
16.1M
  { 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
16.8M
  { 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
12.1M
  { 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
753
  { 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
32.8M
  { 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
5.83k
  { 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
5.22M
  { 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
5.17M
  { 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
10.7M
  { 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
31.5M
  { 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
5.38M
  { 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
571M
  { 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
115M
  { 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
5.72k
  { 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
5.37M
  { 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
6.62M
  { 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
5.37M
  { 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
376M
  { 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
13.1M
  {
259
13.1M
    return arrayZ <= ((const char *) p)
260
13.1M
  && ((const char *) p) <= arrayZ + length
261
13.1M
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
13.1M
  }
bool hb_array_t<char const>::check_range<OT::TupleVariationHeader, 1u, (void*)0>(OT::TupleVariationHeader const*, unsigned int) const
Line
Count
Source
258
1.68M
  {
259
1.68M
    return arrayZ <= ((const char *) p)
260
1.68M
  && ((const char *) p) <= arrayZ + length
261
1.68M
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
1.68M
  }
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
315k
  {
259
315k
    return arrayZ <= ((const char *) p)
260
315k
  && ((const char *) p) <= arrayZ + length
261
315k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
315k
  }
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
389k
  {
259
389k
    return arrayZ <= ((const char *) p)
260
389k
  && ((const char *) p) <= arrayZ + length
261
389k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
389k
  }
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
4.54M
  {
259
4.54M
    return arrayZ <= ((const char *) p)
260
4.54M
  && ((const char *) p) <= arrayZ + length
261
4.54M
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
4.54M
  }
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
6.22M
  {
259
6.22M
    return arrayZ <= ((const char *) p)
260
6.22M
  && ((const char *) p) <= arrayZ + length
261
6.22M
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
6.22M
  }
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
655k
  { 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
46.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
608k
  { 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
661M
{ 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
32.9k
{ 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
5.37M
{ 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
5.37M
{ 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
5.37M
{ 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
657k
{ 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
2.21M
{ 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
718k
{ 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
14.7M
{ 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
61.2M
{ 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
415k
{ 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
362k
{ 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
14.7M
{ 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
34.9k
{ 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
99.2k
{ 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
34.0M
{ return hb_array_t<T> (array, length); }
hb_array_t<unsigned int> hb_array<unsigned int>(unsigned int*, unsigned int)
Line
Count
Source
308
39.9M
{ 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
6.35M
{ 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
16.6M
{ 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
1.89M
{ 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
11.7M
{ 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
154M
{ 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
14.6M
{ 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
878k
{ 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
13.5M
{ 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
180k
{ 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
379k
{ 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
5.37M
{ 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
2.11M
{ 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
8.34M
{ 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
199M
{ 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
7.21k
{ 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
138k
{ 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
2.19k
{ 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
98.7k
{ 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
55.8k
{ 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
5.37M
{ 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
5.23M
{ 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
462k
{ 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)
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)
Line
Count
Source
308
629
{ return hb_array_t<T> (array, length); }
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
5.37M
{ 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
5.37M
{ 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
5.37M
{ 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
5.37M
{ 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
6.56M
{ return hb_array_t<T> (array, length); }
hb_array_t<OT::HBGlyphID16> hb_array<OT::HBGlyphID16>(OT::HBGlyphID16*, unsigned int)
Line
Count
Source
308
53.4k
{ 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
393M
  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
16.1M
  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
125M
  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
16.4M
  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
43.9M
  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
1.06M
  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
600k
  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
2.93M
  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
16.1M
  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
10.7M
  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
51.3M
  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
7.31M
  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
1.11M
  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
5.39M
  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
5.37M
  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
5.38M
  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
2.04k
  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
1.11M
  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
52.2M
  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
13.1M
  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
10.7M
  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
12.3k
  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
34.9k
  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
6.57M
  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
96.9M
    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
5.37M
    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
1.85M
    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
718k
    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
379k
    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
367k
    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
14.7M
    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
83.7k
    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
5.23M
    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
61.2M
    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
6.56M
    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
311k
    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
20.5k
    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
18.4k
    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
989k
  { 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
989k
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
348
349
  /* Faster range-based for loop without bounds-check. */
350
10.7M
  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
15.5k
  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
5.37M
  Type *begin () const { return this->arrayZ; }
hb_sorted_array_t<OT::VariationSelectorRecord const>::begin() const
Line
Count
Source
350
5.37M
  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
10.7M
  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
15.5k
  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
5.37M
  Type *end () const { return this->arrayZ + this->length; }
hb_sorted_array_t<OT::VariationSelectorRecord const>::end() const
Line
Count
Source
351
5.37M
  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
5.37M
  { 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
5.37M
  { 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
314M
  {
364
314M
    unsigned int i;
365
314M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
314M
  }
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
10.7M
  {
364
10.7M
    unsigned int i;
365
10.7M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
10.7M
  }
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
1.85M
  {
364
1.85M
    unsigned int i;
365
1.85M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
1.85M
  }
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
125M
  {
364
125M
    unsigned int i;
365
125M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
125M
  }
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
16.4M
  {
364
16.4M
    unsigned int i;
365
16.4M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
16.4M
  }
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
600k
  {
364
600k
    unsigned int i;
365
600k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
600k
  }
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
61.2M
  {
364
61.2M
    unsigned int i;
365
61.2M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
61.2M
  }
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
5.38M
  {
364
5.38M
    unsigned int i;
365
5.38M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
5.38M
  }
OT::VariationSelectorRecord const* hb_sorted_array_t<OT::VariationSelectorRecord const>::bsearch<unsigned int>(unsigned int const&, OT::VariationSelectorRecord const*)
Line
Count
Source
363
10.7M
  {
364
10.7M
    unsigned int i;
365
10.7M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
10.7M
  }
OT::CmapSubtableLongGroup const* hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bsearch<unsigned int>(unsigned int const&, OT::CmapSubtableLongGroup const*)
Line
Count
Source
363
7.31M
  {
364
7.31M
    unsigned int i;
365
7.31M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
7.31M
  }
OT::EncodingRecord const* hb_sorted_array_t<OT::EncodingRecord const>::bsearch<OT::EncodingRecord>(OT::EncodingRecord const&, OT::EncodingRecord const*)
Line
Count
Source
363
51.3M
  {
364
51.3M
    unsigned int i;
365
51.3M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
51.3M
  }
OT::ClipRecord const* hb_sorted_array_t<OT::ClipRecord const>::bsearch<unsigned int>(unsigned int const&, OT::ClipRecord const*)
Line
Count
Source
363
1.11M
  {
364
1.11M
    unsigned int i;
365
1.11M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
1.11M
  }
OT::BaseGlyphRecord const* hb_sorted_array_t<OT::BaseGlyphRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseGlyphRecord const*)
Line
Count
Source
363
5.39M
  {
364
5.39M
    unsigned int i;
365
5.39M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
5.39M
  }
OT::BaseGlyphPaintRecord const* hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseGlyphPaintRecord const*)
Line
Count
Source
363
1.11M
  {
364
1.11M
    unsigned int i;
365
1.11M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
1.11M
  }
OT::SVGDocumentIndexEntry const* hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bsearch<unsigned int>(unsigned int const&, OT::SVGDocumentIndexEntry const*)
Line
Count
Source
363
5.37M
  {
364
5.37M
    unsigned int i;
365
5.37M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
5.37M
  }
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
27.9k
  {
364
27.9k
    unsigned int i;
365
27.9k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
27.9k
  }
OT::BaseScriptRecord const* hb_sorted_array_t<OT::BaseScriptRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseScriptRecord const*)
Line
Count
Source
363
10.7M
  {
364
10.7M
    unsigned int i;
365
10.7M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
10.7M
  }
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
454M
  {
378
454M
    unsigned pos;
379
380
454M
    if (bsearch_impl (x, &pos))
381
170M
    {
382
170M
      if (i)
383
170M
  *i = pos;
384
170M
      return true;
385
170M
    }
386
387
283M
    if (i)
388
278M
    {
389
278M
      switch (not_found)
390
278M
      {
391
190M
  case HB_NOT_FOUND_DONT_STORE:
392
190M
    break;
393
394
75.0M
  case HB_NOT_FOUND_STORE:
395
75.0M
    *i = to_store;
396
75.0M
    break;
397
398
12.8M
  case HB_NOT_FOUND_STORE_CLOSEST:
399
12.8M
    *i = pos;
400
12.8M
    break;
401
278M
      }
402
278M
    }
403
283M
    return false;
404
283M
  }
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
10.7M
  {
378
10.7M
    unsigned pos;
379
380
10.7M
    if (bsearch_impl (x, &pos))
381
344
    {
382
344
      if (i)
383
344
  *i = pos;
384
344
      return true;
385
344
    }
386
387
10.7M
    if (i)
388
10.7M
    {
389
10.7M
      switch (not_found)
390
10.7M
      {
391
10.7M
  case HB_NOT_FOUND_DONT_STORE:
392
10.7M
    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
10.7M
      }
402
10.7M
    }
403
10.7M
    return false;
404
10.7M
  }
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
1.85M
  {
378
1.85M
    unsigned pos;
379
380
1.85M
    if (bsearch_impl (x, &pos))
381
0
    {
382
0
      if (i)
383
0
  *i = pos;
384
0
      return true;
385
0
    }
386
387
1.85M
    if (i)
388
1.85M
    {
389
1.85M
      switch (not_found)
390
1.85M
      {
391
1.85M
  case HB_NOT_FOUND_DONT_STORE:
392
1.85M
    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.85M
      }
402
1.85M
    }
403
1.85M
    return false;
404
1.85M
  }
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
125M
  {
378
125M
    unsigned pos;
379
380
125M
    if (bsearch_impl (x, &pos))
381
95.4M
    {
382
95.4M
      if (i)
383
95.4M
  *i = pos;
384
95.4M
      return true;
385
95.4M
    }
386
387
29.8M
    if (i)
388
29.8M
    {
389
29.8M
      switch (not_found)
390
29.8M
      {
391
29.8M
  case HB_NOT_FOUND_DONT_STORE:
392
29.8M
    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
29.8M
      }
402
29.8M
    }
403
29.8M
    return false;
404
29.8M
  }
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
16.4M
  {
378
16.4M
    unsigned pos;
379
380
16.4M
    if (bsearch_impl (x, &pos))
381
10.6M
    {
382
10.6M
      if (i)
383
10.6M
  *i = pos;
384
10.6M
      return true;
385
10.6M
    }
386
387
5.76M
    if (i)
388
5.76M
    {
389
5.76M
      switch (not_found)
390
5.76M
      {
391
5.76M
  case HB_NOT_FOUND_DONT_STORE:
392
5.76M
    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.76M
      }
402
5.76M
    }
403
5.76M
    return false;
404
5.76M
  }
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
43.1M
  {
378
43.1M
    unsigned pos;
379
380
43.1M
    if (bsearch_impl (x, &pos))
381
35.4M
    {
382
35.4M
      if (i)
383
35.4M
  *i = pos;
384
35.4M
      return true;
385
35.4M
    }
386
387
7.71M
    if (i)
388
7.71M
    {
389
7.71M
      switch (not_found)
390
7.71M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
7.71M
  case HB_NOT_FOUND_STORE:
395
7.71M
    *i = to_store;
396
7.71M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
7.71M
      }
402
7.71M
    }
403
7.71M
    return false;
404
7.71M
  }
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
1.02M
  {
378
1.02M
    unsigned pos;
379
380
1.02M
    if (bsearch_impl (x, &pos))
381
768k
    {
382
768k
      if (i)
383
768k
  *i = pos;
384
768k
      return true;
385
768k
    }
386
387
260k
    if (i)
388
260k
    {
389
260k
      switch (not_found)
390
260k
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
260k
  case HB_NOT_FOUND_STORE:
395
260k
    *i = to_store;
396
260k
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
260k
      }
402
260k
    }
403
260k
    return false;
404
260k
  }
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
600k
  {
378
600k
    unsigned pos;
379
380
600k
    if (bsearch_impl (x, &pos))
381
54.7k
    {
382
54.7k
      if (i)
383
54.7k
  *i = pos;
384
54.7k
      return true;
385
54.7k
    }
386
387
546k
    if (i)
388
546k
    {
389
546k
      switch (not_found)
390
546k
      {
391
546k
  case HB_NOT_FOUND_DONT_STORE:
392
546k
    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
546k
      }
402
546k
    }
403
546k
    return false;
404
546k
  }
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
61.2M
  {
378
61.2M
    unsigned pos;
379
380
61.2M
    if (bsearch_impl (x, &pos))
381
20.1M
    {
382
20.1M
      if (i)
383
20.1M
  *i = pos;
384
20.1M
      return true;
385
20.1M
    }
386
387
41.1M
    if (i)
388
41.1M
    {
389
41.1M
      switch (not_found)
390
41.1M
      {
391
41.1M
  case HB_NOT_FOUND_DONT_STORE:
392
41.1M
    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
41.1M
      }
402
41.1M
    }
403
41.1M
    return false;
404
41.1M
  }
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
14.7M
  {
378
14.7M
    unsigned pos;
379
380
14.7M
    if (bsearch_impl (x, &pos))
381
1.95M
    {
382
1.95M
      if (i)
383
1.95M
  *i = pos;
384
1.95M
      return true;
385
1.95M
    }
386
387
12.8M
    if (i)
388
12.8M
    {
389
12.8M
      switch (not_found)
390
12.8M
      {
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
12.8M
  case HB_NOT_FOUND_STORE_CLOSEST:
399
12.8M
    *i = pos;
400
12.8M
    break;
401
12.8M
      }
402
12.8M
    }
403
12.8M
    return false;
404
12.8M
  }
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
13.1M
  {
378
13.1M
    unsigned pos;
379
380
13.1M
    if (bsearch_impl (x, &pos))
381
297
    {
382
297
      if (i)
383
297
  *i = pos;
384
297
      return true;
385
297
    }
386
387
13.1M
    if (i)
388
13.1M
    {
389
13.1M
      switch (not_found)
390
13.1M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
13.1M
  case HB_NOT_FOUND_STORE:
395
13.1M
    *i = to_store;
396
13.1M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
13.1M
      }
402
13.1M
    }
403
13.1M
    return false;
404
13.1M
  }
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
52.2M
  {
378
52.2M
    unsigned pos;
379
380
52.2M
    if (bsearch_impl (x, &pos))
381
296k
    {
382
296k
      if (i)
383
296k
  *i = pos;
384
296k
      return true;
385
296k
    }
386
387
51.9M
    if (i)
388
51.9M
    {
389
51.9M
      switch (not_found)
390
51.9M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
51.9M
  case HB_NOT_FOUND_STORE:
395
51.9M
    *i = to_store;
396
51.9M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
51.9M
      }
402
51.9M
    }
403
51.9M
    return false;
404
51.9M
  }
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
5.38M
  {
378
5.38M
    unsigned pos;
379
380
5.38M
    if (bsearch_impl (x, &pos))
381
244
    {
382
244
      if (i)
383
0
  *i = pos;
384
244
      return true;
385
244
    }
386
387
5.38M
    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
5.38M
    return false;
404
5.38M
  }
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
5.38M
  {
378
5.38M
    unsigned pos;
379
380
5.38M
    if (bsearch_impl (x, &pos))
381
169
    {
382
169
      if (i)
383
169
  *i = pos;
384
169
      return true;
385
169
    }
386
387
5.38M
    if (i)
388
5.38M
    {
389
5.38M
      switch (not_found)
390
5.38M
      {
391
5.38M
  case HB_NOT_FOUND_DONT_STORE:
392
5.38M
    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.38M
      }
402
5.38M
    }
403
5.38M
    return false;
404
5.38M
  }
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
10.7M
  {
378
10.7M
    unsigned pos;
379
380
10.7M
    if (bsearch_impl (x, &pos))
381
1.47k
    {
382
1.47k
      if (i)
383
1.47k
  *i = pos;
384
1.47k
      return true;
385
1.47k
    }
386
387
10.7M
    if (i)
388
10.7M
    {
389
10.7M
      switch (not_found)
390
10.7M
      {
391
10.7M
  case HB_NOT_FOUND_DONT_STORE:
392
10.7M
    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
10.7M
      }
402
10.7M
    }
403
10.7M
    return false;
404
10.7M
  }
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
7.31M
  {
378
7.31M
    unsigned pos;
379
380
7.31M
    if (bsearch_impl (x, &pos))
381
3.14M
    {
382
3.14M
      if (i)
383
3.14M
  *i = pos;
384
3.14M
      return true;
385
3.14M
    }
386
387
4.17M
    if (i)
388
4.17M
    {
389
4.17M
      switch (not_found)
390
4.17M
      {
391
4.17M
  case HB_NOT_FOUND_DONT_STORE:
392
4.17M
    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
4.17M
      }
402
4.17M
    }
403
4.17M
    return false;
404
4.17M
  }
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
51.3M
  {
378
51.3M
    unsigned pos;
379
380
51.3M
    if (bsearch_impl (x, &pos))
381
233k
    {
382
233k
      if (i)
383
233k
  *i = pos;
384
233k
      return true;
385
233k
    }
386
387
51.0M
    if (i)
388
51.0M
    {
389
51.0M
      switch (not_found)
390
51.0M
      {
391
51.0M
  case HB_NOT_FOUND_DONT_STORE:
392
51.0M
    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
51.0M
      }
402
51.0M
    }
403
51.0M
    return false;
404
51.0M
  }
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
1.11M
  {
378
1.11M
    unsigned pos;
379
380
1.11M
    if (bsearch_impl (x, &pos))
381
4.75k
    {
382
4.75k
      if (i)
383
4.75k
  *i = pos;
384
4.75k
      return true;
385
4.75k
    }
386
387
1.10M
    if (i)
388
1.10M
    {
389
1.10M
      switch (not_found)
390
1.10M
      {
391
1.10M
  case HB_NOT_FOUND_DONT_STORE:
392
1.10M
    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.10M
      }
402
1.10M
    }
403
1.10M
    return false;
404
1.10M
  }
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
5.39M
  {
378
5.39M
    unsigned pos;
379
380
5.39M
    if (bsearch_impl (x, &pos))
381
3.59k
    {
382
3.59k
      if (i)
383
3.59k
  *i = pos;
384
3.59k
      return true;
385
3.59k
    }
386
387
5.39M
    if (i)
388
5.39M
    {
389
5.39M
      switch (not_found)
390
5.39M
      {
391
5.39M
  case HB_NOT_FOUND_DONT_STORE:
392
5.39M
    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.39M
      }
402
5.39M
    }
403
5.39M
    return false;
404
5.39M
  }
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
1.11M
  {
378
1.11M
    unsigned pos;
379
380
1.11M
    if (bsearch_impl (x, &pos))
381
1.04M
    {
382
1.04M
      if (i)
383
1.04M
  *i = pos;
384
1.04M
      return true;
385
1.04M
    }
386
387
64.8k
    if (i)
388
64.8k
    {
389
64.8k
      switch (not_found)
390
64.8k
      {
391
64.8k
  case HB_NOT_FOUND_DONT_STORE:
392
64.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
64.8k
      }
402
64.8k
    }
403
64.8k
    return false;
404
64.8k
  }
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
2.93M
  {
378
2.93M
    unsigned pos;
379
380
2.93M
    if (bsearch_impl (x, &pos))
381
1.01M
    {
382
1.01M
      if (i)
383
1.01M
  *i = pos;
384
1.01M
      return true;
385
1.01M
    }
386
387
1.92M
    if (i)
388
1.92M
    {
389
1.92M
      switch (not_found)
390
1.92M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
1.92M
  case HB_NOT_FOUND_STORE:
395
1.92M
    *i = to_store;
396
1.92M
    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
  }
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
5.37M
  {
378
5.37M
    unsigned pos;
379
380
5.37M
    if (bsearch_impl (x, &pos))
381
218
    {
382
218
      if (i)
383
218
  *i = pos;
384
218
      return true;
385
218
    }
386
387
5.37M
    if (i)
388
5.37M
    {
389
5.37M
      switch (not_found)
390
5.37M
      {
391
5.37M
  case HB_NOT_FOUND_DONT_STORE:
392
5.37M
    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.37M
      }
402
5.37M
    }
403
5.37M
    return false;
404
5.37M
  }
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
27.9k
  {
378
27.9k
    unsigned pos;
379
380
27.9k
    if (bsearch_impl (x, &pos))
381
1.67k
    {
382
1.67k
      if (i)
383
1.67k
  *i = pos;
384
1.67k
      return true;
385
1.67k
    }
386
387
26.2k
    if (i)
388
26.2k
    {
389
26.2k
      switch (not_found)
390
26.2k
      {
391
26.2k
  case HB_NOT_FOUND_DONT_STORE:
392
26.2k
    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
26.2k
      }
402
26.2k
    }
403
26.2k
    return false;
404
26.2k
  }
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
2.04k
  {
378
2.04k
    unsigned pos;
379
380
2.04k
    if (bsearch_impl (x, &pos))
381
41
    {
382
41
      if (i)
383
41
  *i = pos;
384
41
      return true;
385
41
    }
386
387
2.00k
    if (i)
388
2.00k
    {
389
2.00k
      switch (not_found)
390
2.00k
      {
391
2.00k
  case HB_NOT_FOUND_DONT_STORE:
392
2.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
2.00k
      }
402
2.00k
    }
403
2.00k
    return false;
404
2.00k
  }
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
10.7M
  {
378
10.7M
    unsigned pos;
379
380
10.7M
    if (bsearch_impl (x, &pos))
381
12.8k
    {
382
12.8k
      if (i)
383
12.8k
  *i = pos;
384
12.8k
      return true;
385
12.8k
    }
386
387
10.7M
    if (i)
388
10.7M
    {
389
10.7M
      switch (not_found)
390
10.7M
      {
391
10.7M
  case HB_NOT_FOUND_DONT_STORE:
392
10.7M
    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
10.7M
      }
402
10.7M
    }
403
10.7M
    return false;
404
10.7M
  }
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
12.3k
  {
378
12.3k
    unsigned pos;
379
380
12.3k
    if (bsearch_impl (x, &pos))
381
55
    {
382
55
      if (i)
383
55
  *i = pos;
384
55
      return true;
385
55
    }
386
387
12.2k
    if (i)
388
12.2k
    {
389
12.2k
      switch (not_found)
390
12.2k
      {
391
12.2k
  case HB_NOT_FOUND_DONT_STORE:
392
12.2k
    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
12.2k
      }
402
12.2k
    }
403
12.2k
    return false;
404
12.2k
  }
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
6.57M
  {
378
6.57M
    unsigned pos;
379
380
6.57M
    if (bsearch_impl (x, &pos))
381
0
    {
382
0
      if (i)
383
0
  *i = pos;
384
0
      return true;
385
0
    }
386
387
6.57M
    if (i)
388
6.57M
    {
389
6.57M
      switch (not_found)
390
6.57M
      {
391
6.57M
  case HB_NOT_FOUND_DONT_STORE:
392
6.57M
    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.57M
      }
402
6.57M
    }
403
6.57M
    return false;
404
6.57M
  }
405
  template <typename T, typename ...Ts>
406
  bool bsearch_impl (const T &x, unsigned *pos, Ts... ds) const
407
454M
  {
408
454M
    return hb_bsearch_impl (pos,
409
454M
          x,
410
454M
          this->arrayZ,
411
454M
          this->length,
412
454M
          sizeof (Type),
413
454M
          _hb_cmp_method<T, Type, Ts...>,
414
454M
          std::forward<Ts> (ds)...);
415
454M
  }
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
10.7M
  {
408
10.7M
    return hb_bsearch_impl (pos,
409
10.7M
          x,
410
10.7M
          this->arrayZ,
411
10.7M
          this->length,
412
10.7M
          sizeof (Type),
413
10.7M
          _hb_cmp_method<T, Type, Ts...>,
414
10.7M
          std::forward<Ts> (ds)...);
415
10.7M
  }
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
1.85M
  {
408
1.85M
    return hb_bsearch_impl (pos,
409
1.85M
          x,
410
1.85M
          this->arrayZ,
411
1.85M
          this->length,
412
1.85M
          sizeof (Type),
413
1.85M
          _hb_cmp_method<T, Type, Ts...>,
414
1.85M
          std::forward<Ts> (ds)...);
415
1.85M
  }
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
125M
  {
408
125M
    return hb_bsearch_impl (pos,
409
125M
          x,
410
125M
          this->arrayZ,
411
125M
          this->length,
412
125M
          sizeof (Type),
413
125M
          _hb_cmp_method<T, Type, Ts...>,
414
125M
          std::forward<Ts> (ds)...);
415
125M
  }
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
16.4M
  {
408
16.4M
    return hb_bsearch_impl (pos,
409
16.4M
          x,
410
16.4M
          this->arrayZ,
411
16.4M
          this->length,
412
16.4M
          sizeof (Type),
413
16.4M
          _hb_cmp_method<T, Type, Ts...>,
414
16.4M
          std::forward<Ts> (ds)...);
415
16.4M
  }
bool hb_sorted_array_t<OT::HBGlyphID16 const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
43.1M
  {
408
43.1M
    return hb_bsearch_impl (pos,
409
43.1M
          x,
410
43.1M
          this->arrayZ,
411
43.1M
          this->length,
412
43.1M
          sizeof (Type),
413
43.1M
          _hb_cmp_method<T, Type, Ts...>,
414
43.1M
          std::forward<Ts> (ds)...);
415
43.1M
  }
bool hb_sorted_array_t<OT::HBGlyphID24 const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
1.02M
  {
408
1.02M
    return hb_bsearch_impl (pos,
409
1.02M
          x,
410
1.02M
          this->arrayZ,
411
1.02M
          this->length,
412
1.02M
          sizeof (Type),
413
1.02M
          _hb_cmp_method<T, Type, Ts...>,
414
1.02M
          std::forward<Ts> (ds)...);
415
1.02M
  }
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
600k
  {
408
600k
    return hb_bsearch_impl (pos,
409
600k
          x,
410
600k
          this->arrayZ,
411
600k
          this->length,
412
600k
          sizeof (Type),
413
600k
          _hb_cmp_method<T, Type, Ts...>,
414
600k
          std::forward<Ts> (ds)...);
415
600k
  }
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
61.2M
  {
408
61.2M
    return hb_bsearch_impl (pos,
409
61.2M
          x,
410
61.2M
          this->arrayZ,
411
61.2M
          this->length,
412
61.2M
          sizeof (Type),
413
61.2M
          _hb_cmp_method<T, Type, Ts...>,
414
61.2M
          std::forward<Ts> (ds)...);
415
61.2M
  }
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
14.7M
  {
408
14.7M
    return hb_bsearch_impl (pos,
409
14.7M
          x,
410
14.7M
          this->arrayZ,
411
14.7M
          this->length,
412
14.7M
          sizeof (Type),
413
14.7M
          _hb_cmp_method<T, Type, Ts...>,
414
14.7M
          std::forward<Ts> (ds)...);
415
14.7M
  }
bool hb_sorted_array_t<OT::Record<OT::LangSys> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
13.1M
  {
408
13.1M
    return hb_bsearch_impl (pos,
409
13.1M
          x,
410
13.1M
          this->arrayZ,
411
13.1M
          this->length,
412
13.1M
          sizeof (Type),
413
13.1M
          _hb_cmp_method<T, Type, Ts...>,
414
13.1M
          std::forward<Ts> (ds)...);
415
13.1M
  }
bool hb_sorted_array_t<OT::Record<OT::Script> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
52.2M
  {
408
52.2M
    return hb_bsearch_impl (pos,
409
52.2M
          x,
410
52.2M
          this->arrayZ,
411
52.2M
          this->length,
412
52.2M
          sizeof (Type),
413
52.2M
          _hb_cmp_method<T, Type, Ts...>,
414
52.2M
          std::forward<Ts> (ds)...);
415
52.2M
  }
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
5.38M
  {
408
5.38M
    return hb_bsearch_impl (pos,
409
5.38M
          x,
410
5.38M
          this->arrayZ,
411
5.38M
          this->length,
412
5.38M
          sizeof (Type),
413
5.38M
          _hb_cmp_method<T, Type, Ts...>,
414
5.38M
          std::forward<Ts> (ds)...);
415
5.38M
  }
bool hb_sorted_array_t<OT::UVSMapping const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
5.38M
  {
408
5.38M
    return hb_bsearch_impl (pos,
409
5.38M
          x,
410
5.38M
          this->arrayZ,
411
5.38M
          this->length,
412
5.38M
          sizeof (Type),
413
5.38M
          _hb_cmp_method<T, Type, Ts...>,
414
5.38M
          std::forward<Ts> (ds)...);
415
5.38M
  }
bool hb_sorted_array_t<OT::VariationSelectorRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
10.7M
  {
408
10.7M
    return hb_bsearch_impl (pos,
409
10.7M
          x,
410
10.7M
          this->arrayZ,
411
10.7M
          this->length,
412
10.7M
          sizeof (Type),
413
10.7M
          _hb_cmp_method<T, Type, Ts...>,
414
10.7M
          std::forward<Ts> (ds)...);
415
10.7M
  }
bool hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
7.31M
  {
408
7.31M
    return hb_bsearch_impl (pos,
409
7.31M
          x,
410
7.31M
          this->arrayZ,
411
7.31M
          this->length,
412
7.31M
          sizeof (Type),
413
7.31M
          _hb_cmp_method<T, Type, Ts...>,
414
7.31M
          std::forward<Ts> (ds)...);
415
7.31M
  }
bool hb_sorted_array_t<OT::EncodingRecord const>::bsearch_impl<OT::EncodingRecord>(OT::EncodingRecord const&, unsigned int*) const
Line
Count
Source
407
51.3M
  {
408
51.3M
    return hb_bsearch_impl (pos,
409
51.3M
          x,
410
51.3M
          this->arrayZ,
411
51.3M
          this->length,
412
51.3M
          sizeof (Type),
413
51.3M
          _hb_cmp_method<T, Type, Ts...>,
414
51.3M
          std::forward<Ts> (ds)...);
415
51.3M
  }
bool hb_sorted_array_t<OT::ClipRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
1.11M
  {
408
1.11M
    return hb_bsearch_impl (pos,
409
1.11M
          x,
410
1.11M
          this->arrayZ,
411
1.11M
          this->length,
412
1.11M
          sizeof (Type),
413
1.11M
          _hb_cmp_method<T, Type, Ts...>,
414
1.11M
          std::forward<Ts> (ds)...);
415
1.11M
  }
bool hb_sorted_array_t<OT::BaseGlyphRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
5.39M
  {
408
5.39M
    return hb_bsearch_impl (pos,
409
5.39M
          x,
410
5.39M
          this->arrayZ,
411
5.39M
          this->length,
412
5.39M
          sizeof (Type),
413
5.39M
          _hb_cmp_method<T, Type, Ts...>,
414
5.39M
          std::forward<Ts> (ds)...);
415
5.39M
  }
bool hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
1.11M
  {
408
1.11M
    return hb_bsearch_impl (pos,
409
1.11M
          x,
410
1.11M
          this->arrayZ,
411
1.11M
          this->length,
412
1.11M
          sizeof (Type),
413
1.11M
          _hb_cmp_method<T, Type, Ts...>,
414
1.11M
          std::forward<Ts> (ds)...);
415
1.11M
  }
bool hb_sorted_array_t<OT::TableRecord const>::bsearch_impl<OT::Tag>(OT::Tag const&, unsigned int*) const
Line
Count
Source
407
2.93M
  {
408
2.93M
    return hb_bsearch_impl (pos,
409
2.93M
          x,
410
2.93M
          this->arrayZ,
411
2.93M
          this->length,
412
2.93M
          sizeof (Type),
413
2.93M
          _hb_cmp_method<T, Type, Ts...>,
414
2.93M
          std::forward<Ts> (ds)...);
415
2.93M
  }
bool hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
5.37M
  {
408
5.37M
    return hb_bsearch_impl (pos,
409
5.37M
          x,
410
5.37M
          this->arrayZ,
411
5.37M
          this->length,
412
5.37M
          sizeof (Type),
413
5.37M
          _hb_cmp_method<T, Type, Ts...>,
414
5.37M
          std::forward<Ts> (ds)...);
415
5.37M
  }
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
27.9k
  {
408
27.9k
    return hb_bsearch_impl (pos,
409
27.9k
          x,
410
27.9k
          this->arrayZ,
411
27.9k
          this->length,
412
27.9k
          sizeof (Type),
413
27.9k
          _hb_cmp_method<T, Type, Ts...>,
414
27.9k
          std::forward<Ts> (ds)...);
415
27.9k
  }
bool hb_sorted_array_t<OT::VertOriginMetric const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
2.04k
  {
408
2.04k
    return hb_bsearch_impl (pos,
409
2.04k
          x,
410
2.04k
          this->arrayZ,
411
2.04k
          this->length,
412
2.04k
          sizeof (Type),
413
2.04k
          _hb_cmp_method<T, Type, Ts...>,
414
2.04k
          std::forward<Ts> (ds)...);
415
2.04k
  }
bool hb_sorted_array_t<OT::BaseScriptRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
10.7M
  {
408
10.7M
    return hb_bsearch_impl (pos,
409
10.7M
          x,
410
10.7M
          this->arrayZ,
411
10.7M
          this->length,
412
10.7M
          sizeof (Type),
413
10.7M
          _hb_cmp_method<T, Type, Ts...>,
414
10.7M
          std::forward<Ts> (ds)...);
415
10.7M
  }
bool hb_sorted_array_t<OT::Tag const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
12.3k
  {
408
12.3k
    return hb_bsearch_impl (pos,
409
12.3k
          x,
410
12.3k
          this->arrayZ,
411
12.3k
          this->length,
412
12.3k
          sizeof (Type),
413
12.3k
          _hb_cmp_method<T, Type, Ts...>,
414
12.3k
          std::forward<Ts> (ds)...);
415
12.3k
  }
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
6.57M
  {
408
6.57M
    return hb_bsearch_impl (pos,
409
6.57M
          x,
410
6.57M
          this->arrayZ,
411
6.57M
          this->length,
412
6.57M
          sizeof (Type),
413
6.57M
          _hb_cmp_method<T, Type, Ts...>,
414
6.57M
          std::forward<Ts> (ds)...);
415
6.57M
  }
416
};
417
template <typename T> inline hb_sorted_array_t<T>
418
hb_sorted_array (T *array, unsigned int length)
419
393M
{ 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
16.1M
{ 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
125M
{ 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
16.4M
{ 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
43.9M
{ 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
1.06M
{ 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
600k
{ 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
13.1M
{ 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
52.2M
{ 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
5.38M
{ 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
10.7M
{ 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
16.1M
{ 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
7.31M
{ 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
51.3M
{ 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
1.11M
{ 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
1.11M
{ 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
5.39M
{ 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
2.93M
{ 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
5.37M
{ 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
2.04k
{ 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
10.7M
{ 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
12.3k
{ 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
34.9k
{ 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
6.57M
{ 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
444k
{
436
444k
  if (o.length != this->length) return false;
437
444k
  return 0 == hb_memcmp (arrayZ, o.arrayZ, length);
438
444k
}
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
928k
{
452
928k
  uint32_t current = 0;
453
928k
  unsigned i = 0;
454
455
928k
#if defined(__OPTIMIZE__) && !defined(HB_NO_PACKED) && \
456
928k
    ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__))
457
928k
  struct __attribute__((packed)) packed_uint32_t { uint32_t v; };
458
3.36M
  for (; i + 4 <= this->length; i += 4)
459
2.43M
    current = current * 31 + hb_hash ((uint32_t) ((packed_uint32_t *) &this->arrayZ[i])->v);
460
928k
#endif
461
462
1.62M
  for (; i < this->length; i++)
463
701k
    current = current * 31 + hb_hash (this->arrayZ[i]);
464
928k
  return current;
465
928k
}
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 */