Coverage Report

Created: 2024-01-17 16:55

/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
77.5M
  hb_array_t () = default;
hb_array_t<char const>::hb_array_t()
Line
Count
Source
53
65.1M
  hb_array_t () = default;
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::hb_array_t()
Line
Count
Source
53
1.69M
  hb_array_t () = default;
hb_array_t<int>::hb_array_t()
Line
Count
Source
53
250k
  hb_array_t () = default;
hb_array_t<unsigned char const>::hb_array_t()
Line
Count
Source
53
10.5M
  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
1.83G
  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
14.0k
  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
1.58M
  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
397k
  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
794k
  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
397k
  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
853M
  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
488k
  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
4.41M
  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
552k
  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.45M
  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
71.0k
  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
180M
  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
6.85M
  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
81.8M
  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
915k
  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
462k
  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
263k
  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
1.16M
  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
15.1M
  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
5.49k
  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
7.49M
  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
17.1M
  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
388k
  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
1.19M
  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
797k
  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
3.22M
  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
4.97M
  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
77.9k
  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
13.4M
  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
68.3k
  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
559k
  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
408k
  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
794k
  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
397k
  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
400k
  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.02k
  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.93M
  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
32.6M
  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.35M
  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
8.89M
  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
561k
  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
45.5k
  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
42.2k
  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
35.2M
  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
4.37M
  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
1.18M
  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
1.03M
  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
249
  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
27.9M
  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
21.4M
  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
798k
  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
70.3k
  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
56.9M
  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
48.3k
  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
794k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::Tag const>::hb_array_t(OT::Tag const*, unsigned int)
Line
Count
Source
59
5.17k
  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
210M
  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
210M
  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
794k
  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
397k
  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
794k
  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
397k
  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
397k
  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
452k
  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
390k
  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
6.25M
  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
1.24M
  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
584k
  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
451k
  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
67.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
67.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
26.8k
  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
59.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*>::hb_array_t(hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t**, unsigned int)
Line
Count
Source
59
24.1k
  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
24.1k
  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
88.3k
  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
198k
  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
590k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
60
  template <unsigned int length_>
61
622k
  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
622k
  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
28.1M
    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
4.16M
    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
552k
    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
17.1M
    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
6.25M
    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
11.7k
    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
5.35G
  {
80
5.35G
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
5.34G
    return arrayZ[i];
82
5.35G
  }
hb_array_t<OT::IntType<short, 2u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
5.44k
  {
80
5.44k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
3.90k
    return arrayZ[i];
82
5.44k
  }
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
229
  {
80
229
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
229
    return arrayZ[i];
82
229
  }
hb_array_t<AAT::FeatureName const>::__item_at__(unsigned int) const
Line
Count
Source
79
229
  {
80
229
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
229
    return arrayZ[i];
82
229
  }
hb_array_t<AAT::SettingName const>::__item_at__(unsigned int) const
Line
Count
Source
79
240
  {
80
240
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
239
    return arrayZ[i];
82
240
  }
hb_array_t<hb_aat_layout_feature_selector_info_t>::__item_at__(unsigned int) const
Line
Count
Source
79
121
  {
80
121
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
121
    return arrayZ[i];
82
121
  }
hb_array_t<hb_aat_map_t::range_flags_t const>::__item_at__(unsigned int) const
Line
Count
Source
79
493k
  {
80
493k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
493k
    return arrayZ[i];
82
493k
  }
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
125M
  {
80
125M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
125M
    return arrayZ[i];
82
125M
  }
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
27.6k
  {
80
27.6k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
27.6k
    return arrayZ[i];
82
27.6k
  }
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
245k
  {
80
245k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
245k
    return arrayZ[i];
82
245k
  }
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
111M
  {
80
111M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
111M
    return arrayZ[i];
82
111M
  }
hb_array_t<OT::IntType<unsigned int, 3u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
110
  {
80
110
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
110
    return arrayZ[i];
82
110
  }
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
4.40G
  {
80
4.40G
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
4.40G
    return arrayZ[i];
82
4.40G
  }
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
284M
  {
80
284M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
284M
    return arrayZ[i];
82
284M
  }
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
35.2M
  {
80
35.2M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
35.2M
    return arrayZ[i];
82
35.2M
  }
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
4.68k
  {
80
4.68k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
4.68k
    return arrayZ[i];
82
4.68k
  }
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
51.5M
  {
80
51.5M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
51.5M
    return arrayZ[i];
82
51.5M
  }
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
12.0k
  {
80
12.0k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
12.0k
    return arrayZ[i];
82
12.0k
  }
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.61M
  {
80
1.61M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
1.61M
    return arrayZ[i];
82
1.61M
  }
hb_array_t<OT::contour_point_t>::__item_at__(unsigned int) const
Line
Count
Source
79
185M
  {
80
185M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
185M
    return arrayZ[i];
82
185M
  }
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
5.49k
  {
80
5.49k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
5.49k
    return arrayZ[i];
82
5.49k
  }
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
28.0k
  {
80
28.0k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
28.0k
    return arrayZ[i];
82
28.0k
  }
hb_array_t<OT::IntType<unsigned int, 4u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
11.3k
  {
80
11.3k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
10.4k
    return arrayZ[i];
82
11.3k
  }
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
817k
  {
80
817k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
15.0k
    return arrayZ[i];
82
817k
  }
hb_array_t<OT::IntType<unsigned char, 1u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
33.6k
  {
80
33.6k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
14.8k
    return arrayZ[i];
82
33.6k
  }
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
20.4M
  {
80
20.4M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
20.4M
    return arrayZ[i];
82
20.4M
  }
hb_array_t<OT::HBGlyphID16 const>::__item_at__(unsigned int) const
Line
Count
Source
79
426k
  {
80
426k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
426k
    return arrayZ[i];
82
426k
  }
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
5.44M
  {
80
5.44M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
5.44M
    return arrayZ[i];
82
5.44M
  }
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
157
  {
80
157
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
157
    return arrayZ[i];
82
157
  }
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
291
  {
80
291
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
291
    return arrayZ[i];
82
291
  }
hb_array_t<hb_ot_math_glyph_variant_t>::__item_at__(unsigned int) const
Line
Count
Source
79
291
  {
80
291
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
291
    return arrayZ[i];
82
291
  }
hb_array_t<OT::MathGlyphPartRecord const>::__item_at__(unsigned int) const
Line
Count
Source
79
224
  {
80
224
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
224
    return arrayZ[i];
82
224
  }
hb_array_t<hb_ot_math_glyph_part_t>::__item_at__(unsigned int) const
Line
Count
Source
79
224
  {
80
224
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
224
    return arrayZ[i];
82
224
  }
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
3.93M
  {
80
3.93M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
3.93M
    return arrayZ[i];
82
3.93M
  }
hb_array_t<hb_glyph_info_t>::__item_at__(unsigned int) const
Line
Count
Source
79
122M
  {
80
122M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
114M
    return arrayZ[i];
82
122M
  }
83
  void __forward__ (unsigned n)
84
4.88G
  {
85
4.88G
    if (unlikely (n > length))
86
24.9k
      n = length;
87
4.88G
    length -= n;
88
4.88G
    backwards_length += n;
89
4.88G
    arrayZ += n;
90
4.88G
  }
hb_array_t<hb_aat_layout_feature_type_t>::__forward__(unsigned int)
Line
Count
Source
84
229
  {
85
229
    if (unlikely (n > length))
86
0
      n = length;
87
229
    length -= n;
88
229
    backwards_length += n;
89
229
    arrayZ += n;
90
229
  }
hb_array_t<AAT::FeatureName const>::__forward__(unsigned int)
Line
Count
Source
84
229
  {
85
229
    if (unlikely (n > length))
86
0
      n = length;
87
229
    length -= n;
88
229
    backwards_length += n;
89
229
    arrayZ += n;
90
229
  }
hb_array_t<hb_aat_layout_feature_selector_info_t>::__forward__(unsigned int)
Line
Count
Source
84
121
  {
85
121
    if (unlikely (n > length))
86
0
      n = length;
87
121
    length -= n;
88
121
    backwards_length += n;
89
121
    arrayZ += n;
90
121
  }
hb_array_t<AAT::SettingName const>::__forward__(unsigned int)
Line
Count
Source
84
121
  {
85
121
    if (unlikely (n > length))
86
0
      n = length;
87
121
    length -= n;
88
121
    backwards_length += n;
89
121
    arrayZ += n;
90
121
  }
hb_array_t<hb_aat_map_t::range_flags_t const>::__forward__(unsigned int)
Line
Count
Source
84
68.9k
  {
85
68.9k
    if (unlikely (n > length))
86
0
      n = length;
87
68.9k
    length -= n;
88
68.9k
    backwards_length += n;
89
68.9k
    arrayZ += n;
90
68.9k
  }
Unexecuted instantiation: hb_array_t<unsigned long long const>::__forward__(unsigned int)
hb_array_t<unsigned int>::__forward__(unsigned int)
Line
Count
Source
84
124M
  {
85
124M
    if (unlikely (n > length))
86
0
      n = length;
87
124M
    length -= n;
88
124M
    backwards_length += n;
89
124M
    arrayZ += n;
90
124M
  }
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
27.6k
  {
85
27.6k
    if (unlikely (n > length))
86
0
      n = length;
87
27.6k
    length -= n;
88
27.6k
    backwards_length += n;
89
27.6k
    arrayZ += n;
90
27.6k
  }
hb_array_t<hb_serialize_context_t::object_t* const>::__forward__(unsigned int)
Line
Count
Source
84
67.2k
  {
85
67.2k
    if (unlikely (n > length))
86
24.9k
      n = length;
87
67.2k
    length -= n;
88
67.2k
    backwards_length += n;
89
67.2k
    arrayZ += n;
90
67.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
63.1k
  {
85
63.1k
    if (unlikely (n > length))
86
0
      n = length;
87
63.1k
    length -= n;
88
63.1k
    backwards_length += n;
89
63.1k
    arrayZ += n;
90
63.1k
  }
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
111M
  {
85
111M
    if (unlikely (n > length))
86
0
      n = length;
87
111M
    length -= n;
88
111M
    backwards_length += n;
89
111M
    arrayZ += n;
90
111M
  }
hb_array_t<OT::IntType<unsigned int, 3u> const>::__forward__(unsigned int)
Line
Count
Source
84
110
  {
85
110
    if (unlikely (n > length))
86
0
      n = length;
87
110
    length -= n;
88
110
    backwards_length += n;
89
110
    arrayZ += n;
90
110
  }
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
4.40G
  {
85
4.40G
    if (unlikely (n > length))
86
0
      n = length;
87
4.40G
    length -= n;
88
4.40G
    backwards_length += n;
89
4.40G
    arrayZ += n;
90
4.40G
  }
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
165M
  {
85
165M
    if (unlikely (n > length))
86
0
      n = length;
87
165M
    length -= n;
88
165M
    backwards_length += n;
89
165M
    arrayZ += n;
90
165M
  }
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
9.42M
  {
85
9.42M
    if (unlikely (n > length))
86
0
      n = length;
87
9.42M
    length -= n;
88
9.42M
    backwards_length += n;
89
9.42M
    arrayZ += n;
90
9.42M
  }
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
2.06k
  {
85
2.06k
    if (unlikely (n > length))
86
0
      n = length;
87
2.06k
    length -= n;
88
2.06k
    backwards_length += n;
89
2.06k
    arrayZ += n;
90
2.06k
  }
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
11.3M
  {
85
11.3M
    if (unlikely (n > length))
86
0
      n = length;
87
11.3M
    length -= n;
88
11.3M
    backwards_length += n;
89
11.3M
    arrayZ += n;
90
11.3M
  }
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
4.32k
  {
85
4.32k
    if (unlikely (n > length))
86
0
      n = length;
87
4.32k
    length -= n;
88
4.32k
    backwards_length += n;
89
4.32k
    arrayZ += n;
90
4.32k
  }
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
14.3M
  {
85
14.3M
    if (unlikely (n > length))
86
0
      n = length;
87
14.3M
    length -= n;
88
14.3M
    backwards_length += n;
89
14.3M
    arrayZ += n;
90
14.3M
  }
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
10.3k
  {
85
10.3k
    if (unlikely (n > length))
86
0
      n = length;
87
10.3k
    length -= n;
88
10.3k
    backwards_length += n;
89
10.3k
    arrayZ += n;
90
10.3k
  }
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
488k
  {
85
488k
    if (unlikely (n > length))
86
0
      n = length;
87
488k
    length -= n;
88
488k
    backwards_length += n;
89
488k
    arrayZ += n;
90
488k
  }
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
5.43M
  {
85
5.43M
    if (unlikely (n > length))
86
0
      n = length;
87
5.43M
    length -= n;
88
5.43M
    backwards_length += n;
89
5.43M
    arrayZ += n;
90
5.43M
  }
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
145
  {
85
145
    if (unlikely (n > length))
86
0
      n = length;
87
145
    length -= n;
88
145
    backwards_length += n;
89
145
    arrayZ += n;
90
145
  }
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
397k
  {
85
397k
    if (unlikely (n > length))
86
0
      n = length;
87
397k
    length -= n;
88
397k
    backwards_length += n;
89
397k
    arrayZ += n;
90
397k
  }
hb_array_t<hb_ot_math_glyph_variant_t>::__forward__(unsigned int)
Line
Count
Source
84
397k
  {
85
397k
    if (unlikely (n > length))
86
0
      n = length;
87
397k
    length -= n;
88
397k
    backwards_length += n;
89
397k
    arrayZ += n;
90
397k
  }
hb_array_t<OT::MathGlyphPartRecord const>::__forward__(unsigned int)
Line
Count
Source
84
397k
  {
85
397k
    if (unlikely (n > length))
86
0
      n = length;
87
397k
    length -= n;
88
397k
    backwards_length += n;
89
397k
    arrayZ += n;
90
397k
  }
hb_array_t<hb_ot_math_glyph_part_t>::__forward__(unsigned int)
Line
Count
Source
84
397k
  {
85
397k
    if (unlikely (n > length))
86
0
      n = length;
87
397k
    length -= n;
88
397k
    backwards_length += n;
89
397k
    arrayZ += n;
90
397k
  }
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
3.95M
  {
85
3.95M
    if (unlikely (n > length))
86
0
      n = length;
87
3.95M
    length -= n;
88
3.95M
    backwards_length += n;
89
3.95M
    arrayZ += n;
90
3.95M
  }
hb_array_t<hb_glyph_info_t>::__forward__(unsigned int)
Line
Count
Source
84
26.6M
  {
85
26.6M
    if (unlikely (n > length))
86
0
      n = length;
87
26.6M
    length -= n;
88
26.6M
    backwards_length += n;
89
26.6M
    arrayZ += n;
90
26.6M
  }
91
  void __rewind__ (unsigned n)
92
3.99M
  {
93
3.99M
    if (unlikely (n > backwards_length))
94
0
      n = backwards_length;
95
3.99M
    length += n;
96
3.99M
    backwards_length -= n;
97
3.99M
    arrayZ -= n;
98
3.99M
  }
99
5.13G
  unsigned __len__ () const { return length; }
hb_array_t<AAT::FeatureName const>::__len__() const
Line
Count
Source
99
397k
  unsigned __len__ () const { return length; }
hb_array_t<AAT::SettingName const>::__len__() const
Line
Count
Source
99
397k
  unsigned __len__ () const { return length; }
hb_array_t<hb_aat_map_t::range_flags_t const>::__len__() const
Line
Count
Source
99
621k
  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
13.2M
  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
51.7k
  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
118M
  unsigned __len__ () const { return length; }
hb_array_t<OT::IntType<unsigned int, 3u> const>::__len__() const
Line
Count
Source
99
397k
  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
901k
  unsigned __len__ () const { return length; }
hb_array_t<OT::HBGlyphID24 const>::__len__() const
Line
Count
Source
99
37.7k
  unsigned __len__ () const { return length; }
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::__len__() const
Line
Count
Source
99
375M
  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
37.3M
  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
72.4k
  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
68.3M
  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
52.6k
  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
4.40G
  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
12.5M
  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
32.5k
  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
6.47M
  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
394
  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
397k
  unsigned __len__ () const { return length; }
hb_array_t<hb_ot_math_glyph_variant_t>::__len__() const
Line
Count
Source
99
397k
  unsigned __len__ () const { return length; }
hb_array_t<OT::MathGlyphPartRecord const>::__len__() const
Line
Count
Source
99
397k
  unsigned __len__ () const { return length; }
hb_array_t<hb_ot_math_glyph_part_t>::__len__() const
Line
Count
Source
99
397k
  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.16M
  unsigned __len__ () const { return length; }
hb_array_t<hb_glyph_info_t>::__len__() const
Line
Count
Source
99
85.7M
  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
1.51M
  { 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
397k
  { 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
291
  { 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
397k
  { 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
224
  { 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
724k
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
109
110
  /* Faster range-based for loop without bounds-check. */
111
8.75M
  Type *begin () const { return arrayZ; }
hb_array_t<hb_serialize_context_t::object_t* const>::begin() const
Line
Count
Source
111
67.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
26.8k
  Type *begin () const { return arrayZ; }
hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::begin() const
Line
Count
Source
111
388k
  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
80
  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
8.27M
  Type *begin () const { return arrayZ; }
112
8.75M
  Type *end () const { return arrayZ + length; }
hb_array_t<hb_serialize_context_t::object_t* const>::end() const
Line
Count
Source
112
67.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
26.8k
  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
388k
  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
80
  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
8.27M
  Type *end () const { return arrayZ + length; }
113
114
115
  /* Extra operators.
116
   */
117
58.2M
  Type * operator & () const { return arrayZ; }
hb_array_t<AAT::Feature const>::operator&() const
Line
Count
Source
117
488k
  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
713k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::HBGlyphID24 const>::operator&() const
Line
Count
Source
117
37.7k
  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
21.4M
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<unsigned short, 2u> const>::operator&() const
Line
Count
Source
117
35.2M
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<unsigned int, 3u> const>::operator&() const
Line
Count
Source
117
4.68k
  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
23.8k
  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
213k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<short, 2u> const>::operator&() const
Line
Count
Source
117
14.0k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<unsigned char, 1u> const>::operator&() const
Line
Count
Source
117
28.1k
  Type * operator & () const { return arrayZ; }
118
210M
  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
24.2k
  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
24.1k
  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
67.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
23.5k
  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
210M
  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
23.5k
  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
224M
  {
138
224M
    if (length != a.length)
139
103M
      return (int) a.length - (int) length;
140
120M
    return hb_memcmp (a.arrayZ, arrayZ, get_size ());
141
224M
  }
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
1.82M
  {
152
1.82M
    unsigned i;
153
1.82M
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
1.82M
  }
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
765k
  {
152
765k
    unsigned i;
153
765k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
765k
  }
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
402k
  {
152
402k
    unsigned i;
153
402k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
402k
  }
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
256k
  {
152
256k
    unsigned i;
153
256k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
256k
  }
OT::DataMap const* hb_array_t<OT::DataMap const>::lsearch<unsigned int>(unsigned int const&, OT::DataMap const*)
Line
Count
Source
151
397k
  {
152
397k
    unsigned i;
153
397k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
397k
  }
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
14.5M
  {
166
122M
    for (unsigned i = 0; i < length; ++i)
167
110M
      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
11.8M
    if (pos)
175
11.8M
    {
176
11.8M
      switch (not_found)
177
11.8M
      {
178
1.06M
  case HB_NOT_FOUND_DONT_STORE:
179
1.06M
    break;
180
181
10.7M
  case HB_NOT_FOUND_STORE:
182
10.7M
    *pos = to_store;
183
10.7M
    break;
184
185
0
  case HB_NOT_FOUND_STORE_CLOSEST:
186
0
    *pos = length;
187
0
    break;
188
11.8M
      }
189
11.8M
    }
190
11.8M
    return false;
191
11.8M
  }
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
765k
  {
166
765k
    for (unsigned i = 0; i < length; ++i)
167
756k
      if (hb_equal (x, this->arrayZ[i]))
168
756k
      {
169
756k
  if (pos)
170
756k
    *pos = i;
171
756k
  return true;
172
756k
      }
173
174
9.04k
    if (pos)
175
9.04k
    {
176
9.04k
      switch (not_found)
177
9.04k
      {
178
9.04k
  case HB_NOT_FOUND_DONT_STORE:
179
9.04k
    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
9.04k
      }
189
9.04k
    }
190
9.04k
    return false;
191
9.04k
  }
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
402k
  {
166
402k
    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
402k
    if (pos)
175
402k
    {
176
402k
      switch (not_found)
177
402k
      {
178
402k
  case HB_NOT_FOUND_DONT_STORE:
179
402k
    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
402k
      }
189
402k
    }
190
402k
    return false;
191
402k
  }
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
256k
  {
166
256k
    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
256k
    if (pos)
175
256k
    {
176
256k
      switch (not_found)
177
256k
      {
178
256k
  case HB_NOT_FOUND_DONT_STORE:
179
256k
    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
256k
      }
189
256k
    }
190
256k
    return false;
191
256k
  }
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
12.7M
  {
166
120M
    for (unsigned i = 0; i < length; ++i)
167
109M
      if (hb_equal (x, this->arrayZ[i]))
168
2.02M
      {
169
2.02M
  if (pos)
170
2.02M
    *pos = i;
171
2.02M
  return true;
172
2.02M
      }
173
174
10.7M
    if (pos)
175
10.7M
    {
176
10.7M
      switch (not_found)
177
10.7M
      {
178
0
  case HB_NOT_FOUND_DONT_STORE:
179
0
    break;
180
181
10.7M
  case HB_NOT_FOUND_STORE:
182
10.7M
    *pos = to_store;
183
10.7M
    break;
184
185
0
  case HB_NOT_FOUND_STORE_CLOSEST:
186
0
    *pos = length;
187
0
    break;
188
10.7M
      }
189
10.7M
    }
190
10.7M
    return false;
191
10.7M
  }
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
397k
  {
166
397k
    for (unsigned i = 0; i < length; ++i)
167
1.08k
      if (hb_equal (x, this->arrayZ[i]))
168
550
      {
169
550
  if (pos)
170
550
    *pos = i;
171
550
  return true;
172
550
      }
173
174
396k
    if (pos)
175
396k
    {
176
396k
      switch (not_found)
177
396k
      {
178
396k
  case HB_NOT_FOUND_DONT_STORE:
179
396k
    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
396k
      }
189
396k
    }
190
396k
    return false;
191
396k
  }
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
1.26M
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
1.26M
    if (likely (length))
197
689k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
1.26M
    return hb_sorted_array_t<Type> (*this);
199
1.26M
  }
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
263k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
263k
    if (likely (length))
197
0
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
263k
    return hb_sorted_array_t<Type> (*this);
199
263k
  }
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
22.7k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
22.7k
    if (likely (length))
197
22.7k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
22.7k
    return hb_sorted_array_t<Type> (*this);
199
22.7k
  }
hb_array_t<hb_ot_name_entry_t>::qsort(int (*)(void const*, void const*))
Line
Count
Source
194
390k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
390k
    if (likely (length))
197
82.0k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
390k
    return hb_sorted_array_t<Type> (*this);
199
390k
  }
hb_array_t<hb_ot_map_builder_t::feature_info_t>::qsort(int (*)(void const*, void const*))
Line
Count
Source
194
584k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
584k
    if (likely (length))
197
584k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
584k
    return hb_sorted_array_t<Type> (*this);
199
584k
  }
200
  hb_sorted_array_t<Type> qsort ()
201
213k
  {
202
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
203
213k
    if (likely (length))
204
213k
      hb_qsort (arrayZ, length, this->get_item_size (), Type::cmp);
205
213k
    return hb_sorted_array_t<Type> (*this);
206
213k
  }
Unexecuted instantiation: hb_array_t<OT::NameRecord>::qsort()
hb_array_t<hb_ot_map_t::lookup_map_t>::qsort()
Line
Count
Source
201
213k
  {
202
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
203
213k
    if (likely (length))
204
213k
      hb_qsort (arrayZ, length, this->get_item_size (), Type::cmp);
205
213k
    return hb_sorted_array_t<Type> (*this);
206
213k
  }
207
208
  /*
209
   * Other methods.
210
   */
211
212
179M
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<AAT::Feature const>::get_size() const
Line
Count
Source
212
488k
  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
21.4M
  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
35.2M
  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
4.68k
  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
48.9k
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<char const>::get_size() const
Line
Count
Source
212
120M
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<OT::AxisRecord const>::get_size() const
Line
Count
Source
212
23.8k
  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
28.1k
  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
14.0k
  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.51M
  {
219
1.51M
    start = hb_min (start, length);
220
1.51M
    end = hb_min (end, length);
221
222
1.51M
    if (end < start + 2)
223
1.21M
      return;
224
225
227M
    for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--)
226
226M
      hb_swap (arrayZ[rhs], arrayZ[lhs]);
227
302k
  }
hb_array_t<hb_glyph_info_t>::reverse(unsigned int, unsigned int)
Line
Count
Source
218
1.44M
  {
219
1.44M
    start = hb_min (start, length);
220
1.44M
    end = hb_min (end, length);
221
222
1.44M
    if (end < start + 2)
223
1.19M
      return;
224
225
224M
    for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--)
226
223M
      hb_swap (arrayZ[rhs], arrayZ[lhs]);
227
245k
  }
hb_array_t<hb_glyph_position_t>::reverse(unsigned int, unsigned int)
Line
Count
Source
218
71.0k
  {
219
71.0k
    start = hb_min (start, length);
220
71.0k
    end = hb_min (end, length);
221
222
71.0k
    if (end < start + 2)
223
14.8k
      return;
224
225
3.22M
    for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--)
226
3.16M
      hb_swap (arrayZ[rhs], arrayZ[lhs]);
227
56.1k
  }
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
27.9M
  {
231
27.9M
    if (!start_offset && !seg_count)
232
168k
      return *this;
233
234
27.8M
    unsigned int count = length;
235
27.8M
    if (unlikely (start_offset > count))
236
31.9k
      count = 0;
237
27.7M
    else
238
27.7M
      count -= start_offset;
239
27.8M
    if (seg_count)
240
16.0M
      count = *seg_count = hb_min (count, *seg_count);
241
27.8M
    return hb_array_t (arrayZ + start_offset, count);
242
27.9M
  }
hb_array_t<AAT::FeatureName const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
397k
  {
231
397k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
397k
    unsigned int count = length;
235
397k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
397k
    else
238
397k
      count -= start_offset;
239
397k
    if (seg_count)
240
397k
      count = *seg_count = hb_min (count, *seg_count);
241
397k
    return hb_array_t (arrayZ + start_offset, count);
242
397k
  }
hb_array_t<AAT::SettingName const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
397k
  {
231
397k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
397k
    unsigned int count = length;
235
397k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
397k
    else
238
397k
      count -= start_offset;
239
397k
    if (seg_count)
240
397k
      count = *seg_count = hb_min (count, *seg_count);
241
397k
    return hb_array_t (arrayZ + start_offset, count);
242
397k
  }
hb_array_t<hb_ot_map_t::lookup_map_t const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
24.2k
  {
231
24.2k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
24.2k
    unsigned int count = length;
235
24.2k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
24.2k
    else
238
24.2k
      count -= start_offset;
239
24.2k
    if (seg_count)
240
24.2k
      count = *seg_count = hb_min (count, *seg_count);
241
24.2k
    return hb_array_t (arrayZ + start_offset, count);
242
24.2k
  }
hb_array_t<OT::Index const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
6.73M
  {
231
6.73M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
6.73M
    unsigned int count = length;
235
6.73M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
6.73M
    else
238
6.73M
      count -= start_offset;
239
6.73M
    if (seg_count)
240
6.73M
      count = *seg_count = hb_min (count, *seg_count);
241
6.73M
    return hb_array_t (arrayZ + start_offset, count);
242
6.73M
  }
hb_array_t<OT::IntType<unsigned int, 3u> const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
397k
  {
231
397k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
397k
    unsigned int count = length;
235
397k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
397k
    else
238
397k
      count -= start_offset;
239
397k
    if (seg_count)
240
397k
      count = *seg_count = hb_min (count, *seg_count);
241
397k
    return hb_array_t (arrayZ + start_offset, count);
242
397k
  }
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
397k
  {
231
397k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
397k
    unsigned int count = length;
235
397k
    if (unlikely (start_offset > count))
236
91
      count = 0;
237
397k
    else
238
397k
      count -= start_offset;
239
397k
    if (seg_count)
240
397k
      count = *seg_count = hb_min (count, *seg_count);
241
397k
    return hb_array_t (arrayZ + start_offset, count);
242
397k
  }
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
640k
  {
231
640k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
640k
    unsigned int count = length;
235
640k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
640k
    else
238
640k
      count -= start_offset;
239
640k
    if (seg_count)
240
640k
      count = *seg_count = hb_min (count, *seg_count);
241
640k
    return hb_array_t (arrayZ + start_offset, count);
242
640k
  }
hb_array_t<char const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
319k
  {
231
319k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
319k
    unsigned int count = length;
235
319k
    if (unlikely (start_offset > count))
236
16.9k
      count = 0;
237
303k
    else
238
303k
      count -= start_offset;
239
319k
    if (seg_count)
240
319k
      count = *seg_count = hb_min (count, *seg_count);
241
319k
    return hb_array_t (arrayZ + start_offset, count);
242
319k
  }
hb_array_t<OT::contour_point_t>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
15.6M
  {
231
15.6M
    if (!start_offset && !seg_count)
232
168k
      return *this;
233
234
15.4M
    unsigned int count = length;
235
15.4M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
15.4M
    else
238
15.4M
      count -= start_offset;
239
15.4M
    if (seg_count)
240
3.63M
      count = *seg_count = hb_min (count, *seg_count);
241
15.4M
    return hb_array_t (arrayZ + start_offset, count);
242
15.6M
  }
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
44.7k
  {
231
44.7k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
44.7k
    unsigned int count = length;
235
44.7k
    if (unlikely (start_offset > count))
236
14.8k
      count = 0;
237
29.9k
    else
238
29.9k
      count -= start_offset;
239
44.7k
    if (seg_count)
240
44.7k
      count = *seg_count = hb_min (count, *seg_count);
241
44.7k
    return hb_array_t (arrayZ + start_offset, count);
242
44.7k
  }
hb_array_t<unsigned char const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
1.08M
  {
231
1.08M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
1.08M
    unsigned int count = length;
235
1.08M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
1.08M
    else
238
1.08M
      count -= start_offset;
239
1.08M
    if (seg_count)
240
1.08M
      count = *seg_count = hb_min (count, *seg_count);
241
1.08M
    return hb_array_t (arrayZ + start_offset, count);
242
1.08M
  }
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
245k
  {
231
245k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
245k
    unsigned int count = length;
235
245k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
245k
    else
238
245k
      count -= start_offset;
239
245k
    if (seg_count)
240
245k
      count = *seg_count = hb_min (count, *seg_count);
241
245k
    return hb_array_t (arrayZ + start_offset, count);
242
245k
  }
hb_array_t<unsigned int const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
64.8k
  {
231
64.8k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
64.8k
    unsigned int count = length;
235
64.8k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
64.8k
    else
238
64.8k
      count -= start_offset;
239
64.8k
    if (seg_count)
240
64.8k
      count = *seg_count = hb_min (count, *seg_count);
241
64.8k
    return hb_array_t (arrayZ + start_offset, count);
242
64.8k
  }
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
397k
  {
231
397k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
397k
    unsigned int count = length;
235
397k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
397k
    else
238
397k
      count -= start_offset;
239
397k
    if (seg_count)
240
397k
      count = *seg_count = hb_min (count, *seg_count);
241
397k
    return hb_array_t (arrayZ + start_offset, count);
242
397k
  }
hb_array_t<OT::MathGlyphPartRecord const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
397k
  {
231
397k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
397k
    unsigned int count = length;
235
397k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
397k
    else
238
397k
      count -= start_offset;
239
397k
    if (seg_count)
240
397k
      count = *seg_count = hb_min (count, *seg_count);
241
397k
    return hb_array_t (arrayZ + start_offset, count);
242
397k
  }
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
622k
  {
231
622k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
622k
    unsigned int count = length;
235
622k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
622k
    else
238
622k
      count -= start_offset;
239
622k
    if (seg_count)
240
622k
      count = *seg_count = hb_min (count, *seg_count);
241
622k
    return hb_array_t (arrayZ + start_offset, count);
242
622k
  }
hb_array_t<hb_ot_map_t::lookup_map_t>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
213k
  {
231
213k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
213k
    unsigned int count = length;
235
213k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
213k
    else
238
213k
      count -= start_offset;
239
213k
    if (seg_count)
240
213k
      count = *seg_count = hb_min (count, *seg_count);
241
213k
    return hb_array_t (arrayZ + start_offset, count);
242
213k
  }
243
  hb_array_t sub_array (unsigned int start_offset, unsigned int seg_count) const
244
7.26M
  { 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
24.2k
  { 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
397k
  { 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
640k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<char const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
319k
  { 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.63M
  { 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
22.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.08M
  { return sub_array (start_offset, &seg_count); }
hb_array_t<OT::HBGlyphID16 const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
245k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<unsigned int const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
64.8k
  { 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
622k
  { 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
213k
  { 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
455M
  { 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
18.0M
  { 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
4.49M
  { 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
1.10M
  { 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
727k
  { 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
683k
  { 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
92.8k
  { 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
589k
  { 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
1.19M
  { 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
73.9M
  { 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
1.17M
  { 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
1.17M
  { 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
2.02M
  { 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
781k
  { 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
2.22M
  { 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
1.61M
  { 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
2.49M
  { 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
389k
  { 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
508k
  { 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
2.45M
  { 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
22.1M
  { 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
86.1k
  { 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.09M
  { 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.25M
  { 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
862k
  { 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
15.1M
  { 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
2.40M
  { 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
1.19M
  { 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
1.19M
  { 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
1.66M
  { 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
1.65M
  { 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
295
  { 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
2.82M
  { 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
4.45k
  { 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
387k
  { 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
347k
  { 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
794k
  { 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
2.46M
  { 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
479k
  { 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
245M
  { 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
8.18M
  { 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.28k
  { 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
395k
  { 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
659k
  { 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
397k
  { 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
27.7M
  { 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
31.4M
  {
259
31.4M
    return arrayZ <= ((const char *) p)
260
31.4M
  && ((const char *) p) <= arrayZ + length
261
31.4M
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
31.4M
  }
bool hb_array_t<char const>::check_range<OT::TupleVariationHeader, 1u, (void*)0>(OT::TupleVariationHeader const*, unsigned int) const
Line
Count
Source
258
1.48M
  {
259
1.48M
    return arrayZ <= ((const char *) p)
260
1.48M
  && ((const char *) p) <= arrayZ + length
261
1.48M
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
1.48M
  }
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
160k
  {
259
160k
    return arrayZ <= ((const char *) p)
260
160k
  && ((const char *) p) <= arrayZ + length
261
160k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
160k
  }
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
182k
  {
259
182k
    return arrayZ <= ((const char *) p)
260
182k
  && ((const char *) p) <= arrayZ + length
261
182k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
182k
  }
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.00M
  {
259
4.00M
    return arrayZ <= ((const char *) p)
260
4.00M
  && ((const char *) p) <= arrayZ + length
261
4.00M
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
4.00M
  }
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
25.5M
  {
259
25.5M
    return arrayZ <= ((const char *) p)
260
25.5M
  && ((const char *) p) <= arrayZ + length
261
25.5M
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
25.5M
  }
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
2.13M
  { 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
25.9k
  { 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
2.11M
  { 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
436M
{ 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
14.0k
{ 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
397k
{ 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
397k
{ 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
397k
{ 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
488k
{ 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
4.41M
{ 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
552k
{ 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
1.16M
{ 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
6.25M
{ 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
150k
{ 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
237k
{ 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
17.1M
{ 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
24.1k
{ 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
67.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
6.73M
{ return hb_array_t<T> (array, length); }
hb_array_t<unsigned int> hb_array<unsigned int>(unsigned int*, unsigned int)
Line
Count
Source
308
7.49M
{ 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
401k
{ 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
35.2M
{ 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.93M
{ 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
21.4M
{ 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
210M
{ 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
27.9M
{ 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
70.3k
{ 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
56.9M
{ 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
48.3k
{ 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
263k
{ 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
397k
{ 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
1.71M
{ 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
17.1M
{ 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
12.7M
{ 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
5.49k
{ 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
77.9k
{ 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
987
{ 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
42.2k
{ 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
45.5k
{ 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
397k
{ 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
390k
{ 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
1.03M
{ 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
249
{ 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
397k
{ 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
397k
{ 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
397k
{ 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
397k
{ 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
584k
{ return hb_array_t<T> (array, length); }
hb_array_t<OT::HBGlyphID16> hb_array<OT::HBGlyphID16>(OT::HBGlyphID16*, unsigned int)
Line
Count
Source
308
35.8k
{ 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
293M
  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
1.19M
  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
180M
  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
6.85M
  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
81.5M
  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
915k
  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
462k
  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.41M
  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
1.19M
  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
797k
  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
3.22M
  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
4.97M
  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
559k
  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
408k
  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
397k
  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
400k
  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.02k
  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
561k
  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
4.37M
  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
1.18M
  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
794k
  constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {}
hb_sorted_array_t<OT::Tag const>::hb_sorted_array_t(OT::Tag const*, unsigned int)
Line
Count
Source
329
5.17k
  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
24.1k
  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
590k
  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
30.3M
    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
397k
    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
4.16M
    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
552k
    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
263k
    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
256k
    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
17.1M
    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
68.3k
    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
390k
    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
6.25M
    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
584k
    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
213k
    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
16.1k
    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
11.7k
    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
740k
  { 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
740k
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
348
349
  /* Faster range-based for loop without bounds-check. */
350
803k
  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
9.17k
  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
397k
  Type *begin () const { return this->arrayZ; }
hb_sorted_array_t<OT::VariationSelectorRecord const>::begin() const
Line
Count
Source
350
397k
  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
803k
  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
9.17k
  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
397k
  Type *end () const { return this->arrayZ + this->length; }
hb_sorted_array_t<OT::VariationSelectorRecord const>::end() const
Line
Count
Source
351
397k
  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
397k
  { 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
397k
  { 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
210M
  {
364
210M
    unsigned int i;
365
210M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
210M
  }
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
794k
  {
364
794k
    unsigned int i;
365
794k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
794k
  }
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
4.16M
  {
364
4.16M
    unsigned int i;
365
4.16M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
4.16M
  }
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
180M
  {
364
180M
    unsigned int i;
365
180M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
180M
  }
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
6.85M
  {
364
6.85M
    unsigned int i;
365
6.85M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
6.85M
  }
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
462k
  {
364
462k
    unsigned int i;
365
462k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
462k
  }
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
6.25M
  {
364
6.25M
    unsigned int i;
365
6.25M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
6.25M
  }
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
400k
  {
364
400k
    unsigned int i;
365
400k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
400k
  }
OT::VariationSelectorRecord const* hb_sorted_array_t<OT::VariationSelectorRecord const>::bsearch<unsigned int>(unsigned int const&, OT::VariationSelectorRecord const*)
Line
Count
Source
363
797k
  {
364
797k
    unsigned int i;
365
797k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
797k
  }
OT::CmapSubtableLongGroup const* hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bsearch<unsigned int>(unsigned int const&, OT::CmapSubtableLongGroup const*)
Line
Count
Source
363
4.97M
  {
364
4.97M
    unsigned int i;
365
4.97M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
4.97M
  }
OT::EncodingRecord const* hb_sorted_array_t<OT::EncodingRecord const>::bsearch<OT::EncodingRecord>(OT::EncodingRecord const&, OT::EncodingRecord const*)
Line
Count
Source
363
3.22M
  {
364
3.22M
    unsigned int i;
365
3.22M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
3.22M
  }
OT::ClipRecord const* hb_sorted_array_t<OT::ClipRecord const>::bsearch<unsigned int>(unsigned int const&, OT::ClipRecord const*)
Line
Count
Source
363
561k
  {
364
561k
    unsigned int i;
365
561k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
561k
  }
OT::BaseGlyphRecord const* hb_sorted_array_t<OT::BaseGlyphRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseGlyphRecord const*)
Line
Count
Source
363
408k
  {
364
408k
    unsigned int i;
365
408k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
408k
  }
OT::BaseGlyphPaintRecord const* hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseGlyphPaintRecord const*)
Line
Count
Source
363
559k
  {
364
559k
    unsigned int i;
365
559k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
559k
  }
OT::SVGDocumentIndexEntry const* hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bsearch<unsigned int>(unsigned int const&, OT::SVGDocumentIndexEntry const*)
Line
Count
Source
363
397k
  {
364
397k
    unsigned int i;
365
397k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
397k
  }
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
22.7k
  {
364
22.7k
    unsigned int i;
365
22.7k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
22.7k
  }
OT::BaseScriptRecord const* hb_sorted_array_t<OT::BaseScriptRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseScriptRecord const*)
Line
Count
Source
363
794k
  {
364
794k
    unsigned int i;
365
794k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
794k
  }
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
318M
  {
378
318M
    unsigned pos;
379
380
318M
    if (bsearch_impl (x, &pos))
381
219M
    {
382
219M
      if (i)
383
219M
  *i = pos;
384
219M
      return true;
385
219M
    }
386
387
98.8M
    if (i)
388
98.4M
    {
389
98.4M
      switch (not_found)
390
98.4M
      {
391
63.9M
  case HB_NOT_FOUND_DONT_STORE:
392
63.9M
    break;
393
394
21.9M
  case HB_NOT_FOUND_STORE:
395
21.9M
    *i = to_store;
396
21.9M
    break;
397
398
12.6M
  case HB_NOT_FOUND_STORE_CLOSEST:
399
12.6M
    *i = pos;
400
12.6M
    break;
401
98.4M
      }
402
98.4M
    }
403
98.8M
    return false;
404
98.8M
  }
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
794k
  {
378
794k
    unsigned pos;
379
380
794k
    if (bsearch_impl (x, &pos))
381
124
    {
382
124
      if (i)
383
124
  *i = pos;
384
124
      return true;
385
124
    }
386
387
793k
    if (i)
388
793k
    {
389
793k
      switch (not_found)
390
793k
      {
391
793k
  case HB_NOT_FOUND_DONT_STORE:
392
793k
    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
793k
      }
402
793k
    }
403
793k
    return false;
404
793k
  }
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
4.16M
  {
378
4.16M
    unsigned pos;
379
380
4.16M
    if (bsearch_impl (x, &pos))
381
0
    {
382
0
      if (i)
383
0
  *i = pos;
384
0
      return true;
385
0
    }
386
387
4.16M
    if (i)
388
4.16M
    {
389
4.16M
      switch (not_found)
390
4.16M
      {
391
4.16M
  case HB_NOT_FOUND_DONT_STORE:
392
4.16M
    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.16M
      }
402
4.16M
    }
403
4.16M
    return false;
404
4.16M
  }
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
180M
  {
378
180M
    unsigned pos;
379
380
180M
    if (bsearch_impl (x, &pos))
381
139M
    {
382
139M
      if (i)
383
139M
  *i = pos;
384
139M
      return true;
385
139M
    }
386
387
40.7M
    if (i)
388
40.7M
    {
389
40.7M
      switch (not_found)
390
40.7M
      {
391
40.7M
  case HB_NOT_FOUND_DONT_STORE:
392
40.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
40.7M
      }
402
40.7M
    }
403
40.7M
    return false;
404
40.7M
  }
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
6.85M
  {
378
6.85M
    unsigned pos;
379
380
6.85M
    if (bsearch_impl (x, &pos))
381
3.86M
    {
382
3.86M
      if (i)
383
3.86M
  *i = pos;
384
3.86M
      return true;
385
3.86M
    }
386
387
2.99M
    if (i)
388
2.99M
    {
389
2.99M
      switch (not_found)
390
2.99M
      {
391
2.99M
  case HB_NOT_FOUND_DONT_STORE:
392
2.99M
    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.99M
      }
402
2.99M
    }
403
2.99M
    return false;
404
2.99M
  }
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
80.8M
  {
378
80.8M
    unsigned pos;
379
380
80.8M
    if (bsearch_impl (x, &pos))
381
66.3M
    {
382
66.3M
      if (i)
383
66.3M
  *i = pos;
384
66.3M
      return true;
385
66.3M
    }
386
387
14.4M
    if (i)
388
14.4M
    {
389
14.4M
      switch (not_found)
390
14.4M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
14.4M
  case HB_NOT_FOUND_STORE:
395
14.4M
    *i = to_store;
396
14.4M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
14.4M
      }
402
14.4M
    }
403
14.4M
    return false;
404
14.4M
  }
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
877k
  {
378
877k
    unsigned pos;
379
380
877k
    if (bsearch_impl (x, &pos))
381
408k
    {
382
408k
      if (i)
383
408k
  *i = pos;
384
408k
      return true;
385
408k
    }
386
387
469k
    if (i)
388
469k
    {
389
469k
      switch (not_found)
390
469k
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
469k
  case HB_NOT_FOUND_STORE:
395
469k
    *i = to_store;
396
469k
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
469k
      }
402
469k
    }
403
469k
    return false;
404
469k
  }
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
462k
  {
378
462k
    unsigned pos;
379
380
462k
    if (bsearch_impl (x, &pos))
381
42.0k
    {
382
42.0k
      if (i)
383
42.0k
  *i = pos;
384
42.0k
      return true;
385
42.0k
    }
386
387
420k
    if (i)
388
420k
    {
389
420k
      switch (not_found)
390
420k
      {
391
420k
  case HB_NOT_FOUND_DONT_STORE:
392
420k
    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
420k
      }
402
420k
    }
403
420k
    return false;
404
420k
  }
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
6.25M
  {
378
6.25M
    unsigned pos;
379
380
6.25M
    if (bsearch_impl (x, &pos))
381
2.10M
    {
382
2.10M
      if (i)
383
2.10M
  *i = pos;
384
2.10M
      return true;
385
2.10M
    }
386
387
4.15M
    if (i)
388
4.15M
    {
389
4.15M
      switch (not_found)
390
4.15M
      {
391
4.15M
  case HB_NOT_FOUND_DONT_STORE:
392
4.15M
    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.15M
      }
402
4.15M
    }
403
4.15M
    return false;
404
4.15M
  }
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
17.1M
  {
378
17.1M
    unsigned pos;
379
380
17.1M
    if (bsearch_impl (x, &pos))
381
4.54M
    {
382
4.54M
      if (i)
383
4.54M
  *i = pos;
384
4.54M
      return true;
385
4.54M
    }
386
387
12.6M
    if (i)
388
12.6M
    {
389
12.6M
      switch (not_found)
390
12.6M
      {
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.6M
  case HB_NOT_FOUND_STORE_CLOSEST:
399
12.6M
    *i = pos;
400
12.6M
    break;
401
12.6M
      }
402
12.6M
    }
403
12.6M
    return false;
404
12.6M
  }
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
1.18M
  {
378
1.18M
    unsigned pos;
379
380
1.18M
    if (bsearch_impl (x, &pos))
381
207
    {
382
207
      if (i)
383
207
  *i = pos;
384
207
      return true;
385
207
    }
386
387
1.18M
    if (i)
388
1.18M
    {
389
1.18M
      switch (not_found)
390
1.18M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
1.18M
  case HB_NOT_FOUND_STORE:
395
1.18M
    *i = to_store;
396
1.18M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
1.18M
      }
402
1.18M
    }
403
1.18M
    return false;
404
1.18M
  }
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
4.37M
  {
378
4.37M
    unsigned pos;
379
380
4.37M
    if (bsearch_impl (x, &pos))
381
217k
    {
382
217k
      if (i)
383
217k
  *i = pos;
384
217k
      return true;
385
217k
    }
386
387
4.15M
    if (i)
388
4.15M
    {
389
4.15M
      switch (not_found)
390
4.15M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
4.15M
  case HB_NOT_FOUND_STORE:
395
4.15M
    *i = to_store;
396
4.15M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
4.15M
      }
402
4.15M
    }
403
4.15M
    return false;
404
4.15M
  }
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
400k
  {
378
400k
    unsigned pos;
379
380
400k
    if (bsearch_impl (x, &pos))
381
88
    {
382
88
      if (i)
383
0
  *i = pos;
384
88
      return true;
385
88
    }
386
387
400k
    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
400k
    return false;
404
400k
  }
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
400k
  {
378
400k
    unsigned pos;
379
380
400k
    if (bsearch_impl (x, &pos))
381
21
    {
382
21
      if (i)
383
21
  *i = pos;
384
21
      return true;
385
21
    }
386
387
400k
    if (i)
388
400k
    {
389
400k
      switch (not_found)
390
400k
      {
391
400k
  case HB_NOT_FOUND_DONT_STORE:
392
400k
    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
400k
      }
402
400k
    }
403
400k
    return false;
404
400k
  }
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
797k
  {
378
797k
    unsigned pos;
379
380
797k
    if (bsearch_impl (x, &pos))
381
402
    {
382
402
      if (i)
383
402
  *i = pos;
384
402
      return true;
385
402
    }
386
387
797k
    if (i)
388
797k
    {
389
797k
      switch (not_found)
390
797k
      {
391
797k
  case HB_NOT_FOUND_DONT_STORE:
392
797k
    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
797k
      }
402
797k
    }
403
797k
    return false;
404
797k
  }
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
4.97M
  {
378
4.97M
    unsigned pos;
379
380
4.97M
    if (bsearch_impl (x, &pos))
381
1.37M
    {
382
1.37M
      if (i)
383
1.37M
  *i = pos;
384
1.37M
      return true;
385
1.37M
    }
386
387
3.60M
    if (i)
388
3.60M
    {
389
3.60M
      switch (not_found)
390
3.60M
      {
391
3.60M
  case HB_NOT_FOUND_DONT_STORE:
392
3.60M
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
3.60M
      }
402
3.60M
    }
403
3.60M
    return false;
404
3.60M
  }
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
3.22M
  {
378
3.22M
    unsigned pos;
379
380
3.22M
    if (bsearch_impl (x, &pos))
381
153k
    {
382
153k
      if (i)
383
153k
  *i = pos;
384
153k
      return true;
385
153k
    }
386
387
3.07M
    if (i)
388
3.07M
    {
389
3.07M
      switch (not_found)
390
3.07M
      {
391
3.07M
  case HB_NOT_FOUND_DONT_STORE:
392
3.07M
    break;
393
394
0
  case HB_NOT_FOUND_STORE:
395
0
    *i = to_store;
396
0
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
3.07M
      }
402
3.07M
    }
403
3.07M
    return false;
404
3.07M
  }
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
561k
  {
378
561k
    unsigned pos;
379
380
561k
    if (bsearch_impl (x, &pos))
381
3.08k
    {
382
3.08k
      if (i)
383
3.08k
  *i = pos;
384
3.08k
      return true;
385
3.08k
    }
386
387
558k
    if (i)
388
558k
    {
389
558k
      switch (not_found)
390
558k
      {
391
558k
  case HB_NOT_FOUND_DONT_STORE:
392
558k
    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
558k
      }
402
558k
    }
403
558k
    return false;
404
558k
  }
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
408k
  {
378
408k
    unsigned pos;
379
380
408k
    if (bsearch_impl (x, &pos))
381
252
    {
382
252
      if (i)
383
252
  *i = pos;
384
252
      return true;
385
252
    }
386
387
407k
    if (i)
388
407k
    {
389
407k
      switch (not_found)
390
407k
      {
391
407k
  case HB_NOT_FOUND_DONT_STORE:
392
407k
    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
407k
      }
402
407k
    }
403
407k
    return false;
404
407k
  }
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
559k
  {
378
559k
    unsigned pos;
379
380
559k
    if (bsearch_impl (x, &pos))
381
491k
    {
382
491k
      if (i)
383
491k
  *i = pos;
384
491k
      return true;
385
491k
    }
386
387
68.8k
    if (i)
388
68.8k
    {
389
68.8k
      switch (not_found)
390
68.8k
      {
391
68.8k
  case HB_NOT_FOUND_DONT_STORE:
392
68.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
68.8k
      }
402
68.8k
    }
403
68.8k
    return false;
404
68.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.41M
  {
378
2.41M
    unsigned pos;
379
380
2.41M
    if (bsearch_impl (x, &pos))
381
748k
    {
382
748k
      if (i)
383
748k
  *i = pos;
384
748k
      return true;
385
748k
    }
386
387
1.66M
    if (i)
388
1.66M
    {
389
1.66M
      switch (not_found)
390
1.66M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
1.66M
  case HB_NOT_FOUND_STORE:
395
1.66M
    *i = to_store;
396
1.66M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
1.66M
      }
402
1.66M
    }
403
1.66M
    return false;
404
1.66M
  }
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
397k
  {
378
397k
    unsigned pos;
379
380
397k
    if (bsearch_impl (x, &pos))
381
266
    {
382
266
      if (i)
383
266
  *i = pos;
384
266
      return true;
385
266
    }
386
387
396k
    if (i)
388
396k
    {
389
396k
      switch (not_found)
390
396k
      {
391
396k
  case HB_NOT_FOUND_DONT_STORE:
392
396k
    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
396k
      }
402
396k
    }
403
396k
    return false;
404
396k
  }
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
22.7k
  {
378
22.7k
    unsigned pos;
379
380
22.7k
    if (bsearch_impl (x, &pos))
381
1.06k
    {
382
1.06k
      if (i)
383
1.06k
  *i = pos;
384
1.06k
      return true;
385
1.06k
    }
386
387
21.7k
    if (i)
388
21.7k
    {
389
21.7k
      switch (not_found)
390
21.7k
      {
391
21.7k
  case HB_NOT_FOUND_DONT_STORE:
392
21.7k
    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
21.7k
      }
402
21.7k
    }
403
21.7k
    return false;
404
21.7k
  }
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.02k
  {
378
2.02k
    unsigned pos;
379
380
2.02k
    if (bsearch_impl (x, &pos))
381
40
    {
382
40
      if (i)
383
40
  *i = pos;
384
40
      return true;
385
40
    }
386
387
1.98k
    if (i)
388
1.98k
    {
389
1.98k
      switch (not_found)
390
1.98k
      {
391
1.98k
  case HB_NOT_FOUND_DONT_STORE:
392
1.98k
    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.98k
      }
402
1.98k
    }
403
1.98k
    return false;
404
1.98k
  }
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
794k
  {
378
794k
    unsigned pos;
379
380
794k
    if (bsearch_impl (x, &pos))
381
5.84k
    {
382
5.84k
      if (i)
383
5.84k
  *i = pos;
384
5.84k
      return true;
385
5.84k
    }
386
387
788k
    if (i)
388
788k
    {
389
788k
      switch (not_found)
390
788k
      {
391
788k
  case HB_NOT_FOUND_DONT_STORE:
392
788k
    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
788k
      }
402
788k
    }
403
788k
    return false;
404
788k
  }
bool hb_sorted_array_t<OT::Tag const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const
Line
Count
Source
377
5.17k
  {
378
5.17k
    unsigned pos;
379
380
5.17k
    if (bsearch_impl (x, &pos))
381
7
    {
382
7
      if (i)
383
7
  *i = pos;
384
7
      return true;
385
7
    }
386
387
5.16k
    if (i)
388
5.16k
    {
389
5.16k
      switch (not_found)
390
5.16k
      {
391
5.16k
  case HB_NOT_FOUND_DONT_STORE:
392
5.16k
    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.16k
      }
402
5.16k
    }
403
5.16k
    return false;
404
5.16k
  }
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
590k
  {
378
590k
    unsigned pos;
379
380
590k
    if (bsearch_impl (x, &pos))
381
0
    {
382
0
      if (i)
383
0
  *i = pos;
384
0
      return true;
385
0
    }
386
387
590k
    if (i)
388
590k
    {
389
590k
      switch (not_found)
390
590k
      {
391
590k
  case HB_NOT_FOUND_DONT_STORE:
392
590k
    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
590k
      }
402
590k
    }
403
590k
    return false;
404
590k
  }
405
  template <typename T, typename ...Ts>
406
  bool bsearch_impl (const T &x, unsigned *pos, Ts... ds) const
407
318M
  {
408
318M
    return hb_bsearch_impl (pos,
409
318M
          x,
410
318M
          this->arrayZ,
411
318M
          this->length,
412
318M
          sizeof (Type),
413
318M
          _hb_cmp_method<T, Type, Ts...>,
414
318M
          std::forward<Ts> (ds)...);
415
318M
  }
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
794k
  {
408
794k
    return hb_bsearch_impl (pos,
409
794k
          x,
410
794k
          this->arrayZ,
411
794k
          this->length,
412
794k
          sizeof (Type),
413
794k
          _hb_cmp_method<T, Type, Ts...>,
414
794k
          std::forward<Ts> (ds)...);
415
794k
  }
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
4.16M
  {
408
4.16M
    return hb_bsearch_impl (pos,
409
4.16M
          x,
410
4.16M
          this->arrayZ,
411
4.16M
          this->length,
412
4.16M
          sizeof (Type),
413
4.16M
          _hb_cmp_method<T, Type, Ts...>,
414
4.16M
          std::forward<Ts> (ds)...);
415
4.16M
  }
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
180M
  {
408
180M
    return hb_bsearch_impl (pos,
409
180M
          x,
410
180M
          this->arrayZ,
411
180M
          this->length,
412
180M
          sizeof (Type),
413
180M
          _hb_cmp_method<T, Type, Ts...>,
414
180M
          std::forward<Ts> (ds)...);
415
180M
  }
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
6.85M
  {
408
6.85M
    return hb_bsearch_impl (pos,
409
6.85M
          x,
410
6.85M
          this->arrayZ,
411
6.85M
          this->length,
412
6.85M
          sizeof (Type),
413
6.85M
          _hb_cmp_method<T, Type, Ts...>,
414
6.85M
          std::forward<Ts> (ds)...);
415
6.85M
  }
bool hb_sorted_array_t<OT::HBGlyphID16 const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
80.8M
  {
408
80.8M
    return hb_bsearch_impl (pos,
409
80.8M
          x,
410
80.8M
          this->arrayZ,
411
80.8M
          this->length,
412
80.8M
          sizeof (Type),
413
80.8M
          _hb_cmp_method<T, Type, Ts...>,
414
80.8M
          std::forward<Ts> (ds)...);
415
80.8M
  }
bool hb_sorted_array_t<OT::HBGlyphID24 const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
877k
  {
408
877k
    return hb_bsearch_impl (pos,
409
877k
          x,
410
877k
          this->arrayZ,
411
877k
          this->length,
412
877k
          sizeof (Type),
413
877k
          _hb_cmp_method<T, Type, Ts...>,
414
877k
          std::forward<Ts> (ds)...);
415
877k
  }
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
462k
  {
408
462k
    return hb_bsearch_impl (pos,
409
462k
          x,
410
462k
          this->arrayZ,
411
462k
          this->length,
412
462k
          sizeof (Type),
413
462k
          _hb_cmp_method<T, Type, Ts...>,
414
462k
          std::forward<Ts> (ds)...);
415
462k
  }
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
6.25M
  {
408
6.25M
    return hb_bsearch_impl (pos,
409
6.25M
          x,
410
6.25M
          this->arrayZ,
411
6.25M
          this->length,
412
6.25M
          sizeof (Type),
413
6.25M
          _hb_cmp_method<T, Type, Ts...>,
414
6.25M
          std::forward<Ts> (ds)...);
415
6.25M
  }
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
17.1M
  {
408
17.1M
    return hb_bsearch_impl (pos,
409
17.1M
          x,
410
17.1M
          this->arrayZ,
411
17.1M
          this->length,
412
17.1M
          sizeof (Type),
413
17.1M
          _hb_cmp_method<T, Type, Ts...>,
414
17.1M
          std::forward<Ts> (ds)...);
415
17.1M
  }
bool hb_sorted_array_t<OT::Record<OT::LangSys> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
1.18M
  {
408
1.18M
    return hb_bsearch_impl (pos,
409
1.18M
          x,
410
1.18M
          this->arrayZ,
411
1.18M
          this->length,
412
1.18M
          sizeof (Type),
413
1.18M
          _hb_cmp_method<T, Type, Ts...>,
414
1.18M
          std::forward<Ts> (ds)...);
415
1.18M
  }
bool hb_sorted_array_t<OT::Record<OT::Script> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
4.37M
  {
408
4.37M
    return hb_bsearch_impl (pos,
409
4.37M
          x,
410
4.37M
          this->arrayZ,
411
4.37M
          this->length,
412
4.37M
          sizeof (Type),
413
4.37M
          _hb_cmp_method<T, Type, Ts...>,
414
4.37M
          std::forward<Ts> (ds)...);
415
4.37M
  }
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
400k
  {
408
400k
    return hb_bsearch_impl (pos,
409
400k
          x,
410
400k
          this->arrayZ,
411
400k
          this->length,
412
400k
          sizeof (Type),
413
400k
          _hb_cmp_method<T, Type, Ts...>,
414
400k
          std::forward<Ts> (ds)...);
415
400k
  }
bool hb_sorted_array_t<OT::UVSMapping const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
400k
  {
408
400k
    return hb_bsearch_impl (pos,
409
400k
          x,
410
400k
          this->arrayZ,
411
400k
          this->length,
412
400k
          sizeof (Type),
413
400k
          _hb_cmp_method<T, Type, Ts...>,
414
400k
          std::forward<Ts> (ds)...);
415
400k
  }
bool hb_sorted_array_t<OT::VariationSelectorRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
797k
  {
408
797k
    return hb_bsearch_impl (pos,
409
797k
          x,
410
797k
          this->arrayZ,
411
797k
          this->length,
412
797k
          sizeof (Type),
413
797k
          _hb_cmp_method<T, Type, Ts...>,
414
797k
          std::forward<Ts> (ds)...);
415
797k
  }
bool hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
4.97M
  {
408
4.97M
    return hb_bsearch_impl (pos,
409
4.97M
          x,
410
4.97M
          this->arrayZ,
411
4.97M
          this->length,
412
4.97M
          sizeof (Type),
413
4.97M
          _hb_cmp_method<T, Type, Ts...>,
414
4.97M
          std::forward<Ts> (ds)...);
415
4.97M
  }
bool hb_sorted_array_t<OT::EncodingRecord const>::bsearch_impl<OT::EncodingRecord>(OT::EncodingRecord const&, unsigned int*) const
Line
Count
Source
407
3.22M
  {
408
3.22M
    return hb_bsearch_impl (pos,
409
3.22M
          x,
410
3.22M
          this->arrayZ,
411
3.22M
          this->length,
412
3.22M
          sizeof (Type),
413
3.22M
          _hb_cmp_method<T, Type, Ts...>,
414
3.22M
          std::forward<Ts> (ds)...);
415
3.22M
  }
bool hb_sorted_array_t<OT::ClipRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
561k
  {
408
561k
    return hb_bsearch_impl (pos,
409
561k
          x,
410
561k
          this->arrayZ,
411
561k
          this->length,
412
561k
          sizeof (Type),
413
561k
          _hb_cmp_method<T, Type, Ts...>,
414
561k
          std::forward<Ts> (ds)...);
415
561k
  }
bool hb_sorted_array_t<OT::BaseGlyphRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
408k
  {
408
408k
    return hb_bsearch_impl (pos,
409
408k
          x,
410
408k
          this->arrayZ,
411
408k
          this->length,
412
408k
          sizeof (Type),
413
408k
          _hb_cmp_method<T, Type, Ts...>,
414
408k
          std::forward<Ts> (ds)...);
415
408k
  }
bool hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
559k
  {
408
559k
    return hb_bsearch_impl (pos,
409
559k
          x,
410
559k
          this->arrayZ,
411
559k
          this->length,
412
559k
          sizeof (Type),
413
559k
          _hb_cmp_method<T, Type, Ts...>,
414
559k
          std::forward<Ts> (ds)...);
415
559k
  }
bool hb_sorted_array_t<OT::TableRecord const>::bsearch_impl<OT::Tag>(OT::Tag const&, unsigned int*) const
Line
Count
Source
407
2.41M
  {
408
2.41M
    return hb_bsearch_impl (pos,
409
2.41M
          x,
410
2.41M
          this->arrayZ,
411
2.41M
          this->length,
412
2.41M
          sizeof (Type),
413
2.41M
          _hb_cmp_method<T, Type, Ts...>,
414
2.41M
          std::forward<Ts> (ds)...);
415
2.41M
  }
bool hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
397k
  {
408
397k
    return hb_bsearch_impl (pos,
409
397k
          x,
410
397k
          this->arrayZ,
411
397k
          this->length,
412
397k
          sizeof (Type),
413
397k
          _hb_cmp_method<T, Type, Ts...>,
414
397k
          std::forward<Ts> (ds)...);
415
397k
  }
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
22.7k
  {
408
22.7k
    return hb_bsearch_impl (pos,
409
22.7k
          x,
410
22.7k
          this->arrayZ,
411
22.7k
          this->length,
412
22.7k
          sizeof (Type),
413
22.7k
          _hb_cmp_method<T, Type, Ts...>,
414
22.7k
          std::forward<Ts> (ds)...);
415
22.7k
  }
bool hb_sorted_array_t<OT::VertOriginMetric const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
2.02k
  {
408
2.02k
    return hb_bsearch_impl (pos,
409
2.02k
          x,
410
2.02k
          this->arrayZ,
411
2.02k
          this->length,
412
2.02k
          sizeof (Type),
413
2.02k
          _hb_cmp_method<T, Type, Ts...>,
414
2.02k
          std::forward<Ts> (ds)...);
415
2.02k
  }
bool hb_sorted_array_t<OT::BaseScriptRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
794k
  {
408
794k
    return hb_bsearch_impl (pos,
409
794k
          x,
410
794k
          this->arrayZ,
411
794k
          this->length,
412
794k
          sizeof (Type),
413
794k
          _hb_cmp_method<T, Type, Ts...>,
414
794k
          std::forward<Ts> (ds)...);
415
794k
  }
bool hb_sorted_array_t<OT::Tag const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
5.17k
  {
408
5.17k
    return hb_bsearch_impl (pos,
409
5.17k
          x,
410
5.17k
          this->arrayZ,
411
5.17k
          this->length,
412
5.17k
          sizeof (Type),
413
5.17k
          _hb_cmp_method<T, Type, Ts...>,
414
5.17k
          std::forward<Ts> (ds)...);
415
5.17k
  }
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
590k
  {
408
590k
    return hb_bsearch_impl (pos,
409
590k
          x,
410
590k
          this->arrayZ,
411
590k
          this->length,
412
590k
          sizeof (Type),
413
590k
          _hb_cmp_method<T, Type, Ts...>,
414
590k
          std::forward<Ts> (ds)...);
415
590k
  }
416
};
417
template <typename T> inline hb_sorted_array_t<T>
418
hb_sorted_array (T *array, unsigned int length)
419
293M
{ 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
1.19M
{ 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
180M
{ 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
6.85M
{ 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
81.5M
{ 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
915k
{ 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
462k
{ 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
1.18M
{ 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
4.37M
{ 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
400k
{ 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
797k
{ 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
1.19M
{ 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
4.97M
{ 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
3.22M
{ 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
561k
{ 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
559k
{ 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
408k
{ 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.41M
{ 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
397k
{ 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.02k
{ 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
794k
{ return hb_sorted_array_t<T> (array, length); }
hb_sorted_array_t<OT::Tag const> hb_sorted_array<OT::Tag const>(OT::Tag const*, unsigned int)
Line
Count
Source
419
5.17k
{ 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
24.1k
{ 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
590k
{ 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
167k
{
436
167k
  if (o.length != this->length) return false;
437
167k
  return 0 == hb_memcmp (arrayZ, o.arrayZ, length);
438
167k
}
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
564k
{
452
564k
  uint32_t current = 0;
453
564k
  unsigned i = 0;
454
455
564k
#if defined(__OPTIMIZE__) && !defined(HB_NO_PACKED) && \
456
564k
    ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__))
457
564k
  struct __attribute__((packed)) packed_uint32_t { uint32_t v; };
458
2.11M
  for (; i + 4 <= this->length; i += 4)
459
1.55M
    current = current * 31 + hb_hash ((uint32_t) ((packed_uint32_t *) &this->arrayZ[i])->v);
460
564k
#endif
461
462
988k
  for (; i < this->length; i++)
463
423k
    current = current * 31 + hb_hash (this->arrayZ[i]);
464
564k
  return current;
465
564k
}
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 */