Coverage Report

Created: 2024-01-17 16:54

/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
58.1M
  hb_array_t () = default;
hb_array_t<char const>::hb_array_t()
Line
Count
Source
53
45.2M
  hb_array_t () = default;
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::hb_array_t()
Line
Count
Source
53
876k
  hb_array_t () = default;
hb_array_t<int>::hb_array_t()
Line
Count
Source
53
246k
  hb_array_t () = default;
hb_array_t<unsigned char const>::hb_array_t()
Line
Count
Source
53
11.7M
  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.59G
  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
5.20k
  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.33M
  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
333k
  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
666k
  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
333k
  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
710M
  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
421k
  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.56M
  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
472k
  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.23M
  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
60.9k
  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
159M
  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.39M
  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
101M
  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
2.87M
  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
314k
  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
233k
  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
978k
  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
12.7M
  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.66k
  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
5.66M
  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
10.3M
  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
326k
  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.00M
  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
667k
  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
2.67M
  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.63M
  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
63.7k
  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
10.0M
  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
122k
  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
621k
  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
343k
  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
666k
  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
333k
  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
334k
  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
1.61k
  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
2.08M
  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
37.0M
  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
1.41M
  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
7.41M
  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
622k
  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
38.2k
  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
15.6k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
hb_array_t<OT::IntType<unsigned short, 2u> const>::hb_array_t(OT::IntType<unsigned short, 2u> const*, unsigned int)
Line
Count
Source
59
32.1M
  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
3.67M
  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
994k
  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
775k
  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
225
  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
28.3M
  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
19.3M
  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
2.79M
  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
1.47M
  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
38.2M
  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
65.8k
  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
666k
  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
4.11k
  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
182M
  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
182M
  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
666k
  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
333k
  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
666k
  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
333k
  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
333k
  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
376k
  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
327k
  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
5.28M
  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
956k
  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
491k
  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
391k
  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
55.3k
  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
55.3k
  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
22.2k
  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
49.6k
  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
19.8k
  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
19.8k
  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
73.7k
  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
166k
  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
497k
  constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {}
60
  template <unsigned int length_>
61
478k
  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
478k
  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
20.4M
    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.34M
    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
472k
    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
10.3M
    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
5.28M
    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
9.87k
    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
2.22G
  {
80
2.22G
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
2.22G
    return arrayZ[i];
82
2.22G
  }
hb_array_t<OT::IntType<short, 2u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
3.04k
  {
80
3.04k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
2.05k
    return arrayZ[i];
82
3.04k
  }
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
170
  {
80
170
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
170
    return arrayZ[i];
82
170
  }
hb_array_t<AAT::FeatureName const>::__item_at__(unsigned int) const
Line
Count
Source
79
170
  {
80
170
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
170
    return arrayZ[i];
82
170
  }
hb_array_t<AAT::SettingName const>::__item_at__(unsigned int) const
Line
Count
Source
79
167
  {
80
167
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
167
    return arrayZ[i];
82
167
  }
hb_array_t<hb_aat_layout_feature_selector_info_t>::__item_at__(unsigned int) const
Line
Count
Source
79
85
  {
80
85
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
85
    return arrayZ[i];
82
85
  }
hb_array_t<hb_aat_map_t::range_flags_t const>::__item_at__(unsigned int) const
Line
Count
Source
79
423k
  {
80
423k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
423k
    return arrayZ[i];
82
423k
  }
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
81.3M
  {
80
81.3M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
81.3M
    return arrayZ[i];
82
81.3M
  }
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
22.8k
  {
80
22.8k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
22.8k
    return arrayZ[i];
82
22.8k
  }
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
207k
  {
80
207k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
207k
    return arrayZ[i];
82
207k
  }
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
72.9M
  {
80
72.9M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
72.9M
    return arrayZ[i];
82
72.9M
  }
hb_array_t<OT::IntType<unsigned int, 3u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
54
  {
80
54
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
54
    return arrayZ[i];
82
54
  }
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
1.45G
  {
80
1.45G
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
1.45G
    return arrayZ[i];
82
1.45G
  }
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
301M
  {
80
301M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
301M
    return arrayZ[i];
82
301M
  }
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Line
Count
Source
79
32.1M
  {
80
32.1M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
32.1M
    return arrayZ[i];
82
32.1M
  }
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
2.13M
  {
80
2.13M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
2.13M
    return arrayZ[i];
82
2.13M
  }
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
29.7M
  {
80
29.7M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
29.7M
    return arrayZ[i];
82
29.7M
  }
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
18.8k
  {
80
18.8k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
18.8k
    return arrayZ[i];
82
18.8k
  }
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
843k
  {
80
843k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
843k
    return arrayZ[i];
82
843k
  }
hb_array_t<OT::contour_point_t>::__item_at__(unsigned int) const
Line
Count
Source
79
129M
  {
80
129M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
129M
    return arrayZ[i];
82
129M
  }
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.66k
  {
80
5.66k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
5.66k
    return arrayZ[i];
82
5.66k
  }
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
21.4k
  {
80
21.4k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
21.4k
    return arrayZ[i];
82
21.4k
  }
hb_array_t<OT::IntType<unsigned int, 4u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
21.7k
  {
80
21.7k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
21.0k
    return arrayZ[i];
82
21.7k
  }
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
549k
  {
80
549k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
13.9k
    return arrayZ[i];
82
549k
  }
hb_array_t<OT::IntType<unsigned char, 1u> const>::__item_at__(unsigned int) const
Line
Count
Source
79
13.4k
  {
80
13.4k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
6.50k
    return arrayZ[i];
82
13.4k
  }
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
18.0M
  {
80
18.0M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
18.0M
    return arrayZ[i];
82
18.0M
  }
hb_array_t<OT::HBGlyphID16 const>::__item_at__(unsigned int) const
Line
Count
Source
79
362k
  {
80
362k
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
362k
    return arrayZ[i];
82
362k
  }
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
4.27M
  {
80
4.27M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
4.27M
    return arrayZ[i];
82
4.27M
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::VertOriginMetric const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::__item_at__(unsigned int) const
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::__item_at__(unsigned int) const
hb_array_t<OT::MathGlyphVariantRecord const>::__item_at__(unsigned int) const
Line
Count
Source
79
127
  {
80
127
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
127
    return arrayZ[i];
82
127
  }
hb_array_t<hb_ot_math_glyph_variant_t>::__item_at__(unsigned int) const
Line
Count
Source
79
127
  {
80
127
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
127
    return arrayZ[i];
82
127
  }
hb_array_t<OT::MathGlyphPartRecord const>::__item_at__(unsigned int) const
Line
Count
Source
79
128
  {
80
128
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
128
    return arrayZ[i];
82
128
  }
hb_array_t<hb_ot_math_glyph_part_t>::__item_at__(unsigned int) const
Line
Count
Source
79
128
  {
80
128
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
128
    return arrayZ[i];
82
128
  }
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.33M
  {
80
3.33M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
3.33M
    return arrayZ[i];
82
3.33M
  }
hb_array_t<hb_glyph_info_t>::__item_at__(unsigned int) const
Line
Count
Source
79
96.1M
  {
80
96.1M
    if (unlikely (i >= length)) return CrapOrNull (Type);
81
89.5M
    return arrayZ[i];
82
96.1M
  }
83
  void __forward__ (unsigned n)
84
1.85G
  {
85
1.85G
    if (unlikely (n > length))
86
20.5k
      n = length;
87
1.85G
    length -= n;
88
1.85G
    backwards_length += n;
89
1.85G
    arrayZ += n;
90
1.85G
  }
hb_array_t<hb_aat_layout_feature_type_t>::__forward__(unsigned int)
Line
Count
Source
84
170
  {
85
170
    if (unlikely (n > length))
86
0
      n = length;
87
170
    length -= n;
88
170
    backwards_length += n;
89
170
    arrayZ += n;
90
170
  }
hb_array_t<AAT::FeatureName const>::__forward__(unsigned int)
Line
Count
Source
84
170
  {
85
170
    if (unlikely (n > length))
86
0
      n = length;
87
170
    length -= n;
88
170
    backwards_length += n;
89
170
    arrayZ += n;
90
170
  }
hb_array_t<hb_aat_layout_feature_selector_info_t>::__forward__(unsigned int)
Line
Count
Source
84
85
  {
85
85
    if (unlikely (n > length))
86
0
      n = length;
87
85
    length -= n;
88
85
    backwards_length += n;
89
85
    arrayZ += n;
90
85
  }
hb_array_t<AAT::SettingName const>::__forward__(unsigned int)
Line
Count
Source
84
85
  {
85
85
    if (unlikely (n > length))
86
0
      n = length;
87
85
    length -= n;
88
85
    backwards_length += n;
89
85
    arrayZ += n;
90
85
  }
hb_array_t<hb_aat_map_t::range_flags_t const>::__forward__(unsigned int)
Line
Count
Source
84
59.0k
  {
85
59.0k
    if (unlikely (n > length))
86
0
      n = length;
87
59.0k
    length -= n;
88
59.0k
    backwards_length += n;
89
59.0k
    arrayZ += n;
90
59.0k
  }
Unexecuted instantiation: hb_array_t<unsigned long long const>::__forward__(unsigned int)
hb_array_t<unsigned int>::__forward__(unsigned int)
Line
Count
Source
84
80.2M
  {
85
80.2M
    if (unlikely (n > length))
86
0
      n = length;
87
80.2M
    length -= n;
88
80.2M
    backwards_length += n;
89
80.2M
    arrayZ += n;
90
80.2M
  }
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
22.8k
  {
85
22.8k
    if (unlikely (n > length))
86
0
      n = length;
87
22.8k
    length -= n;
88
22.8k
    backwards_length += n;
89
22.8k
    arrayZ += n;
90
22.8k
  }
hb_array_t<hb_serialize_context_t::object_t* const>::__forward__(unsigned int)
Line
Count
Source
84
55.3k
  {
85
55.3k
    if (unlikely (n > length))
86
20.5k
      n = length;
87
55.3k
    length -= n;
88
55.3k
    backwards_length += n;
89
55.3k
    arrayZ += n;
90
55.3k
  }
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
52.4k
  {
85
52.4k
    if (unlikely (n > length))
86
0
      n = length;
87
52.4k
    length -= n;
88
52.4k
    backwards_length += n;
89
52.4k
    arrayZ += n;
90
52.4k
  }
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
72.9M
  {
85
72.9M
    if (unlikely (n > length))
86
0
      n = length;
87
72.9M
    length -= n;
88
72.9M
    backwards_length += n;
89
72.9M
    arrayZ += n;
90
72.9M
  }
hb_array_t<OT::IntType<unsigned int, 3u> const>::__forward__(unsigned int)
Line
Count
Source
84
54
  {
85
54
    if (unlikely (n > length))
86
0
      n = length;
87
54
    length -= n;
88
54
    backwards_length += n;
89
54
    arrayZ += n;
90
54
  }
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
1.45G
  {
85
1.45G
    if (unlikely (n > length))
86
0
      n = length;
87
1.45G
    length -= n;
88
1.45G
    backwards_length += n;
89
1.45G
    arrayZ += n;
90
1.45G
  }
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
197M
  {
85
197M
    if (unlikely (n > length))
86
0
      n = length;
87
197M
    length -= n;
88
197M
    backwards_length += n;
89
197M
    arrayZ += n;
90
197M
  }
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
6.30M
  {
85
6.30M
    if (unlikely (n > length))
86
0
      n = length;
87
6.30M
    length -= n;
88
6.30M
    backwards_length += n;
89
6.30M
    arrayZ += n;
90
6.30M
  }
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
666k
  {
85
666k
    if (unlikely (n > length))
86
0
      n = length;
87
666k
    length -= n;
88
666k
    backwards_length += n;
89
666k
    arrayZ += n;
90
666k
  }
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
4.89M
  {
85
4.89M
    if (unlikely (n > length))
86
0
      n = length;
87
4.89M
    length -= n;
88
4.89M
    backwards_length += n;
89
4.89M
    arrayZ += n;
90
4.89M
  }
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
14.5k
  {
85
14.5k
    if (unlikely (n > length))
86
0
      n = length;
87
14.5k
    length -= n;
88
14.5k
    backwards_length += n;
89
14.5k
    arrayZ += n;
90
14.5k
  }
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
11.5M
  {
85
11.5M
    if (unlikely (n > length))
86
0
      n = length;
87
11.5M
    length -= n;
88
11.5M
    backwards_length += n;
89
11.5M
    arrayZ += n;
90
11.5M
  }
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
20.9k
  {
85
20.9k
    if (unlikely (n > length))
86
0
      n = length;
87
20.9k
    length -= n;
88
20.9k
    backwards_length += n;
89
20.9k
    arrayZ += n;
90
20.9k
  }
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
413k
  {
85
413k
    if (unlikely (n > length))
86
0
      n = length;
87
413k
    length -= n;
88
413k
    backwards_length += n;
89
413k
    arrayZ += n;
90
413k
  }
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
4.25M
  {
85
4.25M
    if (unlikely (n > length))
86
0
      n = length;
87
4.25M
    length -= n;
88
4.25M
    backwards_length += n;
89
4.25M
    arrayZ += n;
90
4.25M
  }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::VertOriginMetric const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::__forward__(unsigned int)
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::__forward__(unsigned int)
hb_array_t<OT::MathGlyphVariantRecord const>::__forward__(unsigned int)
Line
Count
Source
84
333k
  {
85
333k
    if (unlikely (n > length))
86
0
      n = length;
87
333k
    length -= n;
88
333k
    backwards_length += n;
89
333k
    arrayZ += n;
90
333k
  }
hb_array_t<hb_ot_math_glyph_variant_t>::__forward__(unsigned int)
Line
Count
Source
84
333k
  {
85
333k
    if (unlikely (n > length))
86
0
      n = length;
87
333k
    length -= n;
88
333k
    backwards_length += n;
89
333k
    arrayZ += n;
90
333k
  }
hb_array_t<OT::MathGlyphPartRecord const>::__forward__(unsigned int)
Line
Count
Source
84
333k
  {
85
333k
    if (unlikely (n > length))
86
0
      n = length;
87
333k
    length -= n;
88
333k
    backwards_length += n;
89
333k
    arrayZ += n;
90
333k
  }
hb_array_t<hb_ot_math_glyph_part_t>::__forward__(unsigned int)
Line
Count
Source
84
333k
  {
85
333k
    if (unlikely (n > length))
86
0
      n = length;
87
333k
    length -= n;
88
333k
    backwards_length += n;
89
333k
    arrayZ += n;
90
333k
  }
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.34M
  {
85
3.34M
    if (unlikely (n > length))
86
0
      n = length;
87
3.34M
    length -= n;
88
3.34M
    backwards_length += n;
89
3.34M
    arrayZ += n;
90
3.34M
  }
hb_array_t<hb_glyph_info_t>::__forward__(unsigned int)
Line
Count
Source
84
20.8M
  {
85
20.8M
    if (unlikely (n > length))
86
0
      n = length;
87
20.8M
    length -= n;
88
20.8M
    backwards_length += n;
89
20.8M
    arrayZ += n;
90
20.8M
  }
91
  void __rewind__ (unsigned n)
92
3.09M
  {
93
3.09M
    if (unlikely (n > backwards_length))
94
0
      n = backwards_length;
95
3.09M
    length += n;
96
3.09M
    backwards_length -= n;
97
3.09M
    arrayZ -= n;
98
3.09M
  }
99
2.09G
  unsigned __len__ () const { return length; }
hb_array_t<AAT::FeatureName const>::__len__() const
Line
Count
Source
99
333k
  unsigned __len__ () const { return length; }
hb_array_t<AAT::SettingName const>::__len__() const
Line
Count
Source
99
333k
  unsigned __len__ () const { return length; }
hb_array_t<hb_aat_map_t::range_flags_t const>::__len__() const
Line
Count
Source
99
531k
  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
7.33M
  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
42.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
77.9M
  unsigned __len__ () const { return length; }
hb_array_t<OT::IntType<unsigned int, 3u> const>::__len__() const
Line
Count
Source
99
333k
  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
849k
  unsigned __len__ () const { return length; }
hb_array_t<OT::HBGlyphID24 const>::__len__() const
Line
Count
Source
99
52.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
379M
  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
34.6M
  unsigned __len__ () const { return length; }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const
Line
Count
Source
99
2.14M
  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
43.1M
  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
80.4k
  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
1.46G
  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
14.2M
  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
61.3k
  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
5.02M
  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
225
  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
333k
  unsigned __len__ () const { return length; }
hb_array_t<hb_ot_math_glyph_variant_t>::__len__() const
Line
Count
Source
99
333k
  unsigned __len__ () const { return length; }
hb_array_t<OT::MathGlyphPartRecord const>::__len__() const
Line
Count
Source
99
333k
  unsigned __len__ () const { return length; }
hb_array_t<hb_ot_math_glyph_part_t>::__len__() const
Line
Count
Source
99
333k
  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
959k
  unsigned __len__ () const { return length; }
hb_array_t<hb_glyph_info_t>::__len__() const
Line
Count
Source
99
67.3M
  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.29M
  { 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
333k
  { 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
127
  { 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
333k
  { 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
128
  { 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
632k
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
109
110
  /* Faster range-based for loop without bounds-check. */
111
6.66M
  Type *begin () const { return arrayZ; }
hb_array_t<hb_serialize_context_t::object_t* const>::begin() const
Line
Count
Source
111
55.3k
  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
22.2k
  Type *begin () const { return arrayZ; }
hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::begin() const
Line
Count
Source
111
326k
  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
201
  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
6.25M
  Type *begin () const { return arrayZ; }
112
6.66M
  Type *end () const { return arrayZ + length; }
hb_array_t<hb_serialize_context_t::object_t* const>::end() const
Line
Count
Source
112
55.3k
  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
22.2k
  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
326k
  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
201
  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
6.25M
  Type *end () const { return arrayZ + length; }
113
114
115
  /* Extra operators.
116
   */
117
55.1M
  Type * operator & () const { return arrayZ; }
hb_array_t<AAT::Feature const>::operator&() const
Line
Count
Source
117
421k
  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
689k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::HBGlyphID24 const>::operator&() const
Line
Count
Source
117
52.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
19.3M
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<unsigned short, 2u> const>::operator&() const
Line
Count
Source
117
32.1M
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<unsigned int, 3u> const>::operator&() const
Line
Count
Source
117
2.13M
  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
20.2k
  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
277k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<short, 2u> const>::operator&() const
Line
Count
Source
117
5.20k
  Type * operator & () const { return arrayZ; }
hb_array_t<OT::IntType<unsigned char, 1u> const>::operator&() const
Line
Count
Source
117
10.4k
  Type * operator & () const { return arrayZ; }
118
182M
  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
20.9k
  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
19.8k
  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
55.3k
  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
19.7k
  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
182M
  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
19.7k
  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
181M
  {
138
181M
    if (length != a.length)
139
82.5M
      return (int) a.length - (int) length;
140
98.5M
    return hb_memcmp (a.arrayZ, arrayZ, get_size ());
141
181M
  }
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.53M
  {
152
1.53M
    unsigned i;
153
1.53M
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
1.53M
  }
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
642k
  {
152
642k
    unsigned i;
153
642k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
642k
  }
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
336k
  {
152
336k
    unsigned i;
153
336k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
336k
  }
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
227k
  {
152
227k
    unsigned i;
153
227k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
227k
  }
OT::DataMap const* hb_array_t<OT::DataMap const>::lsearch<unsigned int>(unsigned int const&, OT::DataMap const*)
Line
Count
Source
151
333k
  {
152
333k
    unsigned i;
153
333k
    return lfind (x, &i) ? &this->arrayZ[i] : not_found;
154
333k
  }
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
12.1M
  {
166
101M
    for (unsigned i = 0; i < length; ++i)
167
91.9M
      if (hb_equal (x, this->arrayZ[i]))
168
2.30M
      {
169
2.30M
  if (pos)
170
2.30M
    *pos = i;
171
2.30M
  return true;
172
2.30M
      }
173
174
9.81M
    if (pos)
175
9.81M
    {
176
9.81M
      switch (not_found)
177
9.81M
      {
178
903k
  case HB_NOT_FOUND_DONT_STORE:
179
903k
    break;
180
181
8.90M
  case HB_NOT_FOUND_STORE:
182
8.90M
    *pos = to_store;
183
8.90M
    break;
184
185
0
  case HB_NOT_FOUND_STORE_CLOSEST:
186
0
    *pos = length;
187
0
    break;
188
9.81M
      }
189
9.81M
    }
190
9.81M
    return false;
191
9.81M
  }
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
642k
  {
166
642k
    for (unsigned i = 0; i < length; ++i)
167
635k
      if (hb_equal (x, this->arrayZ[i]))
168
635k
      {
169
635k
  if (pos)
170
635k
    *pos = i;
171
635k
  return true;
172
635k
      }
173
174
6.82k
    if (pos)
175
6.82k
    {
176
6.82k
      switch (not_found)
177
6.82k
      {
178
6.82k
  case HB_NOT_FOUND_DONT_STORE:
179
6.82k
    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
6.82k
      }
189
6.82k
    }
190
6.82k
    return false;
191
6.82k
  }
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
336k
  {
166
336k
    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
336k
    if (pos)
175
336k
    {
176
336k
      switch (not_found)
177
336k
      {
178
336k
  case HB_NOT_FOUND_DONT_STORE:
179
336k
    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
336k
      }
189
336k
    }
190
336k
    return false;
191
336k
  }
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
227k
  {
166
227k
    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
227k
    if (pos)
175
227k
    {
176
227k
      switch (not_found)
177
227k
      {
178
227k
  case HB_NOT_FOUND_DONT_STORE:
179
227k
    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
227k
      }
189
227k
    }
190
227k
    return false;
191
227k
  }
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
10.5M
  {
166
100M
    for (unsigned i = 0; i < length; ++i)
167
91.3M
      if (hb_equal (x, this->arrayZ[i]))
168
1.67M
      {
169
1.67M
  if (pos)
170
1.67M
    *pos = i;
171
1.67M
  return true;
172
1.67M
      }
173
174
8.90M
    if (pos)
175
8.90M
    {
176
8.90M
      switch (not_found)
177
8.90M
      {
178
0
  case HB_NOT_FOUND_DONT_STORE:
179
0
    break;
180
181
8.90M
  case HB_NOT_FOUND_STORE:
182
8.90M
    *pos = to_store;
183
8.90M
    break;
184
185
0
  case HB_NOT_FOUND_STORE_CLOSEST:
186
0
    *pos = length;
187
0
    break;
188
8.90M
      }
189
8.90M
    }
190
8.90M
    return false;
191
8.90M
  }
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
333k
  {
166
333k
    for (unsigned i = 0; i < length; ++i)
167
682
      if (hb_equal (x, this->arrayZ[i]))
168
444
      {
169
444
  if (pos)
170
444
    *pos = i;
171
444
  return true;
172
444
      }
173
174
332k
    if (pos)
175
332k
    {
176
332k
      switch (not_found)
177
332k
      {
178
332k
  case HB_NOT_FOUND_DONT_STORE:
179
332k
    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
332k
      }
189
332k
    }
190
332k
    return false;
191
332k
  }
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.07M
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
1.07M
    if (likely (length))
197
579k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
1.07M
    return hb_sorted_array_t<Type> (*this);
199
1.07M
  }
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
233k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
233k
    if (likely (length))
197
0
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
233k
    return hb_sorted_array_t<Type> (*this);
199
233k
  }
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
19.1k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
19.1k
    if (likely (length))
197
19.1k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
19.1k
    return hb_sorted_array_t<Type> (*this);
199
19.1k
  }
hb_array_t<hb_ot_name_entry_t>::qsort(int (*)(void const*, void const*))
Line
Count
Source
194
327k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
327k
    if (likely (length))
197
68.2k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
327k
    return hb_sorted_array_t<Type> (*this);
199
327k
  }
hb_array_t<hb_ot_map_builder_t::feature_info_t>::qsort(int (*)(void const*, void const*))
Line
Count
Source
194
491k
  {
195
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
196
491k
    if (likely (length))
197
491k
      hb_qsort (arrayZ, length, this->get_item_size (), cmp_);
198
491k
    return hb_sorted_array_t<Type> (*this);
199
491k
  }
200
  hb_sorted_array_t<Type> qsort ()
201
185k
  {
202
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
203
185k
    if (likely (length))
204
185k
      hb_qsort (arrayZ, length, this->get_item_size (), Type::cmp);
205
185k
    return hb_sorted_array_t<Type> (*this);
206
185k
  }
Unexecuted instantiation: hb_array_t<OT::NameRecord>::qsort()
hb_array_t<hb_ot_map_t::lookup_map_t>::qsort()
Line
Count
Source
201
185k
  {
202
    //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), "");
203
185k
    if (likely (length))
204
185k
      hb_qsort (arrayZ, length, this->get_item_size (), Type::cmp);
205
185k
    return hb_sorted_array_t<Type> (*this);
206
185k
  }
207
208
  /*
209
   * Other methods.
210
   */
211
212
153M
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<AAT::Feature const>::get_size() const
Line
Count
Source
212
421k
  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
19.3M
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<OT::IntType<unsigned short, 2u> const>::get_size() const
Line
Count
Source
212
32.1M
  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
2.13M
  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
653k
  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
45.3k
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<char const>::get_size() const
Line
Count
Source
212
98.5M
  unsigned int get_size () const { return length * this->get_item_size (); }
hb_array_t<OT::AxisRecord const>::get_size() const
Line
Count
Source
212
20.2k
  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
10.4k
  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
5.20k
  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.28M
  {
219
1.28M
    start = hb_min (start, length);
220
1.28M
    end = hb_min (end, length);
221
222
1.28M
    if (end < start + 2)
223
1.02M
      return;
224
225
160M
    for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--)
226
160M
      hb_swap (arrayZ[rhs], arrayZ[lhs]);
227
259k
  }
hb_array_t<hb_glyph_info_t>::reverse(unsigned int, unsigned int)
Line
Count
Source
218
1.22M
  {
219
1.22M
    start = hb_min (start, length);
220
1.22M
    end = hb_min (end, length);
221
222
1.22M
    if (end < start + 2)
223
1.00M
      return;
224
225
157M
    for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--)
226
156M
      hb_swap (arrayZ[rhs], arrayZ[lhs]);
227
212k
  }
hb_array_t<hb_glyph_position_t>::reverse(unsigned int, unsigned int)
Line
Count
Source
218
60.9k
  {
219
60.9k
    start = hb_min (start, length);
220
60.9k
    end = hb_min (end, length);
221
222
60.9k
    if (end < start + 2)
223
13.9k
      return;
224
225
3.81M
    for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--)
226
3.76M
      hb_swap (arrayZ[rhs], arrayZ[lhs]);
227
47.0k
  }
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.4M
  {
231
27.4M
    if (!start_offset && !seg_count)
232
132k
      return *this;
233
234
27.3M
    unsigned int count = length;
235
27.3M
    if (unlikely (start_offset > count))
236
38.4k
      count = 0;
237
27.2M
    else
238
27.2M
      count -= start_offset;
239
27.3M
    if (seg_count)
240
13.9M
      count = *seg_count = hb_min (count, *seg_count);
241
27.3M
    return hb_array_t (arrayZ + start_offset, count);
242
27.4M
  }
hb_array_t<AAT::FeatureName const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
333k
  {
231
333k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
333k
    unsigned int count = length;
235
333k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
333k
    else
238
333k
      count -= start_offset;
239
333k
    if (seg_count)
240
333k
      count = *seg_count = hb_min (count, *seg_count);
241
333k
    return hb_array_t (arrayZ + start_offset, count);
242
333k
  }
hb_array_t<AAT::SettingName const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
333k
  {
231
333k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
333k
    unsigned int count = length;
235
333k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
333k
    else
238
333k
      count -= start_offset;
239
333k
    if (seg_count)
240
333k
      count = *seg_count = hb_min (count, *seg_count);
241
333k
    return hb_array_t (arrayZ + start_offset, count);
242
333k
  }
hb_array_t<hb_ot_map_t::lookup_map_t const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
20.9k
  {
231
20.9k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
20.9k
    unsigned int count = length;
235
20.9k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
20.9k
    else
238
20.9k
      count -= start_offset;
239
20.9k
    if (seg_count)
240
20.9k
      count = *seg_count = hb_min (count, *seg_count);
241
20.9k
    return hb_array_t (arrayZ + start_offset, count);
242
20.9k
  }
hb_array_t<OT::Index const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
5.02M
  {
231
5.02M
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
5.02M
    unsigned int count = length;
235
5.02M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
5.02M
    else
238
5.02M
      count -= start_offset;
239
5.02M
    if (seg_count)
240
5.02M
      count = *seg_count = hb_min (count, *seg_count);
241
5.02M
    return hb_array_t (arrayZ + start_offset, count);
242
5.02M
  }
hb_array_t<OT::IntType<unsigned int, 3u> const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
333k
  {
231
333k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
333k
    unsigned int count = length;
235
333k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
333k
    else
238
333k
      count -= start_offset;
239
333k
    if (seg_count)
240
333k
      count = *seg_count = hb_min (count, *seg_count);
241
333k
    return hb_array_t (arrayZ + start_offset, count);
242
333k
  }
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
333k
  {
231
333k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
333k
    unsigned int count = length;
235
333k
    if (unlikely (start_offset > count))
236
102
      count = 0;
237
333k
    else
238
333k
      count -= start_offset;
239
333k
    if (seg_count)
240
333k
      count = *seg_count = hb_min (count, *seg_count);
241
333k
    return hb_array_t (arrayZ + start_offset, count);
242
333k
  }
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
383k
  {
231
383k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
383k
    unsigned int count = length;
235
383k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
383k
    else
238
383k
      count -= start_offset;
239
383k
    if (seg_count)
240
383k
      count = *seg_count = hb_min (count, *seg_count);
241
383k
    return hb_array_t (arrayZ + start_offset, count);
242
383k
  }
hb_array_t<char const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
311k
  {
231
311k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
311k
    unsigned int count = length;
235
311k
    if (unlikely (start_offset > count))
236
10.2k
      count = 0;
237
301k
    else
238
301k
      count -= start_offset;
239
311k
    if (seg_count)
240
311k
      count = *seg_count = hb_min (count, *seg_count);
241
311k
    return hb_array_t (arrayZ + start_offset, count);
242
311k
  }
hb_array_t<OT::contour_point_t>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
17.8M
  {
231
17.8M
    if (!start_offset && !seg_count)
232
132k
      return *this;
233
234
17.6M
    unsigned int count = length;
235
17.6M
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
17.6M
    else
238
17.6M
      count -= start_offset;
239
17.6M
    if (seg_count)
240
4.35M
      count = *seg_count = hb_min (count, *seg_count);
241
17.6M
    return hb_array_t (arrayZ + start_offset, count);
242
17.8M
  }
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
81.1k
  {
231
81.1k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
81.1k
    unsigned int count = length;
235
81.1k
    if (unlikely (start_offset > count))
236
28.1k
      count = 0;
237
52.9k
    else
238
52.9k
      count -= start_offset;
239
81.1k
    if (seg_count)
240
81.1k
      count = *seg_count = hb_min (count, *seg_count);
241
81.1k
    return hb_array_t (arrayZ + start_offset, count);
242
81.1k
  }
hb_array_t<unsigned char const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
872k
  {
231
872k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
872k
    unsigned int count = length;
235
872k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
872k
    else
238
872k
      count -= start_offset;
239
872k
    if (seg_count)
240
872k
      count = *seg_count = hb_min (count, *seg_count);
241
872k
    return hb_array_t (arrayZ + start_offset, count);
242
872k
  }
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
207k
  {
231
207k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
207k
    unsigned int count = length;
235
207k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
207k
    else
238
207k
      count -= start_offset;
239
207k
    if (seg_count)
240
207k
      count = *seg_count = hb_min (count, *seg_count);
241
207k
    return hb_array_t (arrayZ + start_offset, count);
242
207k
  }
hb_array_t<unsigned int const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
53.9k
  {
231
53.9k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
53.9k
    unsigned int count = length;
235
53.9k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
53.9k
    else
238
53.9k
      count -= start_offset;
239
53.9k
    if (seg_count)
240
53.9k
      count = *seg_count = hb_min (count, *seg_count);
241
53.9k
    return hb_array_t (arrayZ + start_offset, count);
242
53.9k
  }
Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::sub_array(unsigned int, unsigned int*) const
Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::sub_array(unsigned int, unsigned int*) const
hb_array_t<OT::MathGlyphVariantRecord const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
333k
  {
231
333k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
333k
    unsigned int count = length;
235
333k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
333k
    else
238
333k
      count -= start_offset;
239
333k
    if (seg_count)
240
333k
      count = *seg_count = hb_min (count, *seg_count);
241
333k
    return hb_array_t (arrayZ + start_offset, count);
242
333k
  }
hb_array_t<OT::MathGlyphPartRecord const>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
333k
  {
231
333k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
333k
    unsigned int count = length;
235
333k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
333k
    else
238
333k
      count -= start_offset;
239
333k
    if (seg_count)
240
333k
      count = *seg_count = hb_min (count, *seg_count);
241
333k
    return hb_array_t (arrayZ + start_offset, count);
242
333k
  }
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
478k
  {
231
478k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
478k
    unsigned int count = length;
235
478k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
478k
    else
238
478k
      count -= start_offset;
239
478k
    if (seg_count)
240
478k
      count = *seg_count = hb_min (count, *seg_count);
241
478k
    return hb_array_t (arrayZ + start_offset, count);
242
478k
  }
hb_array_t<hb_ot_map_t::lookup_map_t>::sub_array(unsigned int, unsigned int*) const
Line
Count
Source
230
185k
  {
231
185k
    if (!start_offset && !seg_count)
232
0
      return *this;
233
234
185k
    unsigned int count = length;
235
185k
    if (unlikely (start_offset > count))
236
0
      count = 0;
237
185k
    else
238
185k
      count -= start_offset;
239
185k
    if (seg_count)
240
185k
      count = *seg_count = hb_min (count, *seg_count);
241
185k
    return hb_array_t (arrayZ + start_offset, count);
242
185k
  }
243
  hb_array_t sub_array (unsigned int start_offset, unsigned int seg_count) const
244
7.24M
  { 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
20.9k
  { 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
333k
  { 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
383k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<char const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
311k
  { 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
4.35M
  { 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
40.7k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<unsigned char const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
872k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<OT::HBGlyphID16 const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
207k
  { return sub_array (start_offset, &seg_count); }
hb_array_t<unsigned int const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
53.9k
  { return sub_array (start_offset, &seg_count); }
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::sub_array(unsigned int, unsigned int) const
hb_array_t<CFF::number_t const>::sub_array(unsigned int, unsigned int) const
Line
Count
Source
244
478k
  { 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
185k
  { 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
380M
  { 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
15.1M
  { 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.31M
  { 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
957k
  { 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
614k
  { 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
571k
  { 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
74.7k
  { 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
496k
  { 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
999k
  { 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
70.2M
  { 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
980k
  { 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
985k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::MVAR const* hb_array_t<char const>::as<OT::MVAR, 1u, (void*)0>() const
Line
Count
Source
252
1.70M
  { 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
655k
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::OS2 const* hb_array_t<char const>::as<OT::OS2, 1u, (void*)0>() const
Line
Count
Source
252
1.86M
  { 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.42M
  { 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.08M
  { 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
324k
  { 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
514k
  { 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.66M
  { 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
19.9M
  { 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
74.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.30M
  { 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.38M
  { 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
871k
  { 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
12.7M
  { 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.01M
  { 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
998k
  { 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
999k
  { 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.46M
  { 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.52M
  { 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
169
  { 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.52M
  { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); }
OT::sbix::accelerator_t::PNGHeader const* hb_array_t<char const>::as<OT::sbix::accelerator_t::PNGHeader, 1u, (void*)0>() const
Line
Count
Source
252
2.98k
  { 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
322k
  { 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
289k
  { 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
666k
  { 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.06M
  { 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
399k
  { 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
192M
  { 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
6.84M
  { 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
4.40k
  { 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
330k
  { 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
511k
  { 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
333k
  { 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
23.3M
  { 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
34.0M
  {
259
34.0M
    return arrayZ <= ((const char *) p)
260
34.0M
  && ((const char *) p) <= arrayZ + length
261
34.0M
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
34.0M
  }
bool hb_array_t<char const>::check_range<OT::TupleVariationHeader, 1u, (void*)0>(OT::TupleVariationHeader const*, unsigned int) const
Line
Count
Source
258
818k
  {
259
818k
    return arrayZ <= ((const char *) p)
260
818k
  && ((const char *) p) <= arrayZ + length
261
818k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
818k
  }
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
164k
  {
259
164k
    return arrayZ <= ((const char *) p)
260
164k
  && ((const char *) p) <= arrayZ + length
261
164k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
164k
  }
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
206k
  {
259
206k
    return arrayZ <= ((const char *) p)
260
206k
  && ((const char *) p) <= arrayZ + length
261
206k
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
206k
  }
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
3.81M
  {
259
3.81M
    return arrayZ <= ((const char *) p)
260
3.81M
  && ((const char *) p) <= arrayZ + length
261
3.81M
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
3.81M
  }
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
29.0M
  {
259
29.0M
    return arrayZ <= ((const char *) p)
260
29.0M
  && ((const char *) p) <= arrayZ + length
261
29.0M
  && (unsigned int) (arrayZ + length - (const char *) p) >= size;
262
29.0M
  }
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
1.71M
  { return c->check_array (arrayZ, length); }
bool hb_array_t<OT::AxisRecord const>::sanitize<hb_sanitize_context_t>(hb_sanitize_context_t*) const
Line
Count
Source
295
21.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
1.69M
  { 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
375M
{ 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
5.20k
{ 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
333k
{ 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
333k
{ 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
333k
{ 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
421k
{ 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.56M
{ 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
472k
{ 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
978k
{ 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
5.28M
{ 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
125k
{ 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
206k
{ 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
10.3M
{ 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
19.8k
{ 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
55.3k
{ 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
5.02M
{ return hb_array_t<T> (array, length); }
hb_array_t<unsigned int> hb_array<unsigned int>(unsigned int*, unsigned int)
Line
Count
Source
308
5.66M
{ 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
2.46M
{ return hb_array_t<T> (array, length); }
Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> > hb_array<hb_pair_t<unsigned int, unsigned int> >(hb_pair_t<unsigned int, unsigned int>*, unsigned int)
hb_array_t<OT::IntType<unsigned short, 2u> const> hb_array<OT::IntType<unsigned short, 2u> const>(OT::IntType<unsigned short, 2u> const*, unsigned int)
Line
Count
Source
308
32.1M
{ 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
2.08M
{ 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
19.3M
{ 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
182M
{ 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
28.3M
{ 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
1.47M
{ 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
38.2M
{ 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
65.8k
{ 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
233k
{ 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
333k
{ 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.02M
{ 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
19.3M
{ 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
10.5M
{ 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.66k
{ 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
63.7k
{ 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
734
{ 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
15.6k
{ 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
38.2k
{ 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
333k
{ 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
327k
{ 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
775k
{ 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
225
{ 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
333k
{ 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
333k
{ 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
333k
{ 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
333k
{ 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
491k
{ return hb_array_t<T> (array, length); }
hb_array_t<OT::HBGlyphID16> hb_array<OT::HBGlyphID16>(OT::HBGlyphID16*, unsigned int)
Line
Count
Source
308
29.7k
{ 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
291M
  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
999k
  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
159M
  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.39M
  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
101M
  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
2.87M
  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
314k
  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.12M
  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.00M
  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
667k
  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
2.67M
  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.63M
  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
621k
  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
343k
  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
333k
  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
334k
  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
1.61k
  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
622k
  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
3.67M
  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
994k
  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
666k
  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
4.11k
  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
19.8k
  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
497k
  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
22.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
333k
    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.34M
    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
472k
    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
233k
    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
227k
    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
10.3M
    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
57.4k
    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
327k
    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
5.28M
    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
491k
    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
185k
    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
13.4k
    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
9.87k
    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
645k
  { 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
645k
  { return this->arrayZ != o.arrayZ || this->length != o.length; }
348
349
  /* Faster range-based for loop without bounds-check. */
350
674k
  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
7.61k
  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
333k
  Type *begin () const { return this->arrayZ; }
hb_sorted_array_t<OT::VariationSelectorRecord const>::begin() const
Line
Count
Source
350
333k
  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
674k
  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
7.61k
  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
333k
  Type *end () const { return this->arrayZ + this->length; }
hb_sorted_array_t<OT::VariationSelectorRecord const>::end() const
Line
Count
Source
351
333k
  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
333k
  { 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
333k
  { 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
187M
  {
364
187M
    unsigned int i;
365
187M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
187M
  }
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
666k
  {
364
666k
    unsigned int i;
365
666k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
666k
  }
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.34M
  {
364
4.34M
    unsigned int i;
365
4.34M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
4.34M
  }
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
159M
  {
364
159M
    unsigned int i;
365
159M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
159M
  }
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.39M
  {
364
6.39M
    unsigned int i;
365
6.39M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
6.39M
  }
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
314k
  {
364
314k
    unsigned int i;
365
314k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
314k
  }
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
5.28M
  {
364
5.28M
    unsigned int i;
365
5.28M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
5.28M
  }
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
334k
  {
364
334k
    unsigned int i;
365
334k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
334k
  }
OT::VariationSelectorRecord const* hb_sorted_array_t<OT::VariationSelectorRecord const>::bsearch<unsigned int>(unsigned int const&, OT::VariationSelectorRecord const*)
Line
Count
Source
363
667k
  {
364
667k
    unsigned int i;
365
667k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
667k
  }
OT::CmapSubtableLongGroup const* hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bsearch<unsigned int>(unsigned int const&, OT::CmapSubtableLongGroup const*)
Line
Count
Source
363
4.63M
  {
364
4.63M
    unsigned int i;
365
4.63M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
4.63M
  }
OT::EncodingRecord const* hb_sorted_array_t<OT::EncodingRecord const>::bsearch<OT::EncodingRecord>(OT::EncodingRecord const&, OT::EncodingRecord const*)
Line
Count
Source
363
2.67M
  {
364
2.67M
    unsigned int i;
365
2.67M
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
2.67M
  }
OT::ClipRecord const* hb_sorted_array_t<OT::ClipRecord const>::bsearch<unsigned int>(unsigned int const&, OT::ClipRecord const*)
Line
Count
Source
363
622k
  {
364
622k
    unsigned int i;
365
622k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
622k
  }
OT::BaseGlyphRecord const* hb_sorted_array_t<OT::BaseGlyphRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseGlyphRecord const*)
Line
Count
Source
363
343k
  {
364
343k
    unsigned int i;
365
343k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
343k
  }
OT::BaseGlyphPaintRecord const* hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseGlyphPaintRecord const*)
Line
Count
Source
363
621k
  {
364
621k
    unsigned int i;
365
621k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
621k
  }
OT::SVGDocumentIndexEntry const* hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bsearch<unsigned int>(unsigned int const&, OT::SVGDocumentIndexEntry const*)
Line
Count
Source
363
333k
  {
364
333k
    unsigned int i;
365
333k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
333k
  }
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
19.1k
  {
364
19.1k
    unsigned int i;
365
19.1k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
19.1k
  }
OT::BaseScriptRecord const* hb_sorted_array_t<OT::BaseScriptRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseScriptRecord const*)
Line
Count
Source
363
666k
  {
364
666k
    unsigned int i;
365
666k
    return bfind (x, &i) ? &this->arrayZ[i] : not_found;
366
666k
  }
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
309M
  {
378
309M
    unsigned pos;
379
380
309M
    if (bsearch_impl (x, &pos))
381
201M
    {
382
201M
      if (i)
383
201M
  *i = pos;
384
201M
      return true;
385
201M
    }
386
387
107M
    if (i)
388
107M
    {
389
107M
      switch (not_found)
390
107M
      {
391
51.0M
  case HB_NOT_FOUND_DONT_STORE:
392
51.0M
    break;
393
394
48.4M
  case HB_NOT_FOUND_STORE:
395
48.4M
    *i = to_store;
396
48.4M
    break;
397
398
7.98M
  case HB_NOT_FOUND_STORE_CLOSEST:
399
7.98M
    *i = pos;
400
7.98M
    break;
401
107M
      }
402
107M
    }
403
107M
    return false;
404
107M
  }
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
666k
  {
378
666k
    unsigned pos;
379
380
666k
    if (bsearch_impl (x, &pos))
381
86
    {
382
86
      if (i)
383
86
  *i = pos;
384
86
      return true;
385
86
    }
386
387
666k
    if (i)
388
666k
    {
389
666k
      switch (not_found)
390
666k
      {
391
666k
  case HB_NOT_FOUND_DONT_STORE:
392
666k
    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
666k
      }
402
666k
    }
403
666k
    return false;
404
666k
  }
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.34M
  {
378
4.34M
    unsigned pos;
379
380
4.34M
    if (bsearch_impl (x, &pos))
381
0
    {
382
0
      if (i)
383
0
  *i = pos;
384
0
      return true;
385
0
    }
386
387
4.34M
    if (i)
388
4.34M
    {
389
4.34M
      switch (not_found)
390
4.34M
      {
391
4.34M
  case HB_NOT_FOUND_DONT_STORE:
392
4.34M
    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.34M
      }
402
4.34M
    }
403
4.34M
    return false;
404
4.34M
  }
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
159M
  {
378
159M
    unsigned pos;
379
380
159M
    if (bsearch_impl (x, &pos))
381
130M
    {
382
130M
      if (i)
383
130M
  *i = pos;
384
130M
      return true;
385
130M
    }
386
387
29.7M
    if (i)
388
29.7M
    {
389
29.7M
      switch (not_found)
390
29.7M
      {
391
29.7M
  case HB_NOT_FOUND_DONT_STORE:
392
29.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
29.7M
      }
402
29.7M
    }
403
29.7M
    return false;
404
29.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.39M
  {
378
6.39M
    unsigned pos;
379
380
6.39M
    if (bsearch_impl (x, &pos))
381
3.35M
    {
382
3.35M
      if (i)
383
3.35M
  *i = pos;
384
3.35M
      return true;
385
3.35M
    }
386
387
3.03M
    if (i)
388
3.03M
    {
389
3.03M
      switch (not_found)
390
3.03M
      {
391
3.03M
  case HB_NOT_FOUND_DONT_STORE:
392
3.03M
    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.03M
      }
402
3.03M
    }
403
3.03M
    return false;
404
3.03M
  }
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
100M
  {
378
100M
    unsigned pos;
379
380
100M
    if (bsearch_impl (x, &pos))
381
60.6M
    {
382
60.6M
      if (i)
383
60.6M
  *i = pos;
384
60.6M
      return true;
385
60.6M
    }
386
387
40.0M
    if (i)
388
40.0M
    {
389
40.0M
      switch (not_found)
390
40.0M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
40.0M
  case HB_NOT_FOUND_STORE:
395
40.0M
    *i = to_store;
396
40.0M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
40.0M
      }
402
40.0M
    }
403
40.0M
    return false;
404
40.0M
  }
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
2.82M
  {
378
2.82M
    unsigned pos;
379
380
2.82M
    if (bsearch_impl (x, &pos))
381
299k
    {
382
299k
      if (i)
383
299k
  *i = pos;
384
299k
      return true;
385
299k
    }
386
387
2.52M
    if (i)
388
2.52M
    {
389
2.52M
      switch (not_found)
390
2.52M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
2.52M
  case HB_NOT_FOUND_STORE:
395
2.52M
    *i = to_store;
396
2.52M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
2.52M
      }
402
2.52M
    }
403
2.52M
    return false;
404
2.52M
  }
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
314k
  {
378
314k
    unsigned pos;
379
380
314k
    if (bsearch_impl (x, &pos))
381
34.8k
    {
382
34.8k
      if (i)
383
34.8k
  *i = pos;
384
34.8k
      return true;
385
34.8k
    }
386
387
279k
    if (i)
388
279k
    {
389
279k
      switch (not_found)
390
279k
      {
391
279k
  case HB_NOT_FOUND_DONT_STORE:
392
279k
    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
279k
      }
402
279k
    }
403
279k
    return false;
404
279k
  }
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
5.28M
  {
378
5.28M
    unsigned pos;
379
380
5.28M
    if (bsearch_impl (x, &pos))
381
1.77M
    {
382
1.77M
      if (i)
383
1.77M
  *i = pos;
384
1.77M
      return true;
385
1.77M
    }
386
387
3.50M
    if (i)
388
3.50M
    {
389
3.50M
      switch (not_found)
390
3.50M
      {
391
3.50M
  case HB_NOT_FOUND_DONT_STORE:
392
3.50M
    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.50M
      }
402
3.50M
    }
403
3.50M
    return false;
404
3.50M
  }
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
10.3M
  {
378
10.3M
    unsigned pos;
379
380
10.3M
    if (bsearch_impl (x, &pos))
381
2.39M
    {
382
2.39M
      if (i)
383
2.39M
  *i = pos;
384
2.39M
      return true;
385
2.39M
    }
386
387
7.98M
    if (i)
388
7.98M
    {
389
7.98M
      switch (not_found)
390
7.98M
      {
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
7.98M
  case HB_NOT_FOUND_STORE_CLOSEST:
399
7.98M
    *i = pos;
400
7.98M
    break;
401
7.98M
      }
402
7.98M
    }
403
7.98M
    return false;
404
7.98M
  }
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
994k
  {
378
994k
    unsigned pos;
379
380
994k
    if (bsearch_impl (x, &pos))
381
167
    {
382
167
      if (i)
383
167
  *i = pos;
384
167
      return true;
385
167
    }
386
387
993k
    if (i)
388
993k
    {
389
993k
      switch (not_found)
390
993k
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
993k
  case HB_NOT_FOUND_STORE:
395
993k
    *i = to_store;
396
993k
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
993k
      }
402
993k
    }
403
993k
    return false;
404
993k
  }
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
3.67M
  {
378
3.67M
    unsigned pos;
379
380
3.67M
    if (bsearch_impl (x, &pos))
381
186k
    {
382
186k
      if (i)
383
186k
  *i = pos;
384
186k
      return true;
385
186k
    }
386
387
3.48M
    if (i)
388
3.48M
    {
389
3.48M
      switch (not_found)
390
3.48M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
3.48M
  case HB_NOT_FOUND_STORE:
395
3.48M
    *i = to_store;
396
3.48M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
3.48M
      }
402
3.48M
    }
403
3.48M
    return false;
404
3.48M
  }
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
334k
  {
378
334k
    unsigned pos;
379
380
334k
    if (bsearch_impl (x, &pos))
381
12
    {
382
12
      if (i)
383
0
  *i = pos;
384
12
      return true;
385
12
    }
386
387
334k
    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
334k
    return false;
404
334k
  }
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
334k
  {
378
334k
    unsigned pos;
379
380
334k
    if (bsearch_impl (x, &pos))
381
9
    {
382
9
      if (i)
383
9
  *i = pos;
384
9
      return true;
385
9
    }
386
387
334k
    if (i)
388
334k
    {
389
334k
      switch (not_found)
390
334k
      {
391
334k
  case HB_NOT_FOUND_DONT_STORE:
392
334k
    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
334k
      }
402
334k
    }
403
334k
    return false;
404
334k
  }
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
667k
  {
378
667k
    unsigned pos;
379
380
667k
    if (bsearch_impl (x, &pos))
381
152
    {
382
152
      if (i)
383
152
  *i = pos;
384
152
      return true;
385
152
    }
386
387
667k
    if (i)
388
667k
    {
389
667k
      switch (not_found)
390
667k
      {
391
667k
  case HB_NOT_FOUND_DONT_STORE:
392
667k
    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
667k
      }
402
667k
    }
403
667k
    return false;
404
667k
  }
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.63M
  {
378
4.63M
    unsigned pos;
379
380
4.63M
    if (bsearch_impl (x, &pos))
381
1.27M
    {
382
1.27M
      if (i)
383
1.27M
  *i = pos;
384
1.27M
      return true;
385
1.27M
    }
386
387
3.35M
    if (i)
388
3.35M
    {
389
3.35M
      switch (not_found)
390
3.35M
      {
391
3.35M
  case HB_NOT_FOUND_DONT_STORE:
392
3.35M
    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.35M
      }
402
3.35M
    }
403
3.35M
    return false;
404
3.35M
  }
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
2.67M
  {
378
2.67M
    unsigned pos;
379
380
2.67M
    if (bsearch_impl (x, &pos))
381
132k
    {
382
132k
      if (i)
383
132k
  *i = pos;
384
132k
      return true;
385
132k
    }
386
387
2.54M
    if (i)
388
2.54M
    {
389
2.54M
      switch (not_found)
390
2.54M
      {
391
2.54M
  case HB_NOT_FOUND_DONT_STORE:
392
2.54M
    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.54M
      }
402
2.54M
    }
403
2.54M
    return false;
404
2.54M
  }
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
622k
  {
378
622k
    unsigned pos;
379
380
622k
    if (bsearch_impl (x, &pos))
381
2.59k
    {
382
2.59k
      if (i)
383
2.59k
  *i = pos;
384
2.59k
      return true;
385
2.59k
    }
386
387
620k
    if (i)
388
620k
    {
389
620k
      switch (not_found)
390
620k
      {
391
620k
  case HB_NOT_FOUND_DONT_STORE:
392
620k
    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
620k
      }
402
620k
    }
403
620k
    return false;
404
620k
  }
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
343k
  {
378
343k
    unsigned pos;
379
380
343k
    if (bsearch_impl (x, &pos))
381
536
    {
382
536
      if (i)
383
536
  *i = pos;
384
536
      return true;
385
536
    }
386
387
342k
    if (i)
388
342k
    {
389
342k
      switch (not_found)
390
342k
      {
391
342k
  case HB_NOT_FOUND_DONT_STORE:
392
342k
    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
342k
      }
402
342k
    }
403
342k
    return false;
404
342k
  }
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
621k
  {
378
621k
    unsigned pos;
379
380
621k
    if (bsearch_impl (x, &pos))
381
561k
    {
382
561k
      if (i)
383
561k
  *i = pos;
384
561k
      return true;
385
561k
    }
386
387
60.4k
    if (i)
388
60.4k
    {
389
60.4k
      switch (not_found)
390
60.4k
      {
391
60.4k
  case HB_NOT_FOUND_DONT_STORE:
392
60.4k
    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
60.4k
      }
402
60.4k
    }
403
60.4k
    return false;
404
60.4k
  }
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.12M
  {
378
2.12M
    unsigned pos;
379
380
2.12M
    if (bsearch_impl (x, &pos))
381
659k
    {
382
659k
      if (i)
383
659k
  *i = pos;
384
659k
      return true;
385
659k
    }
386
387
1.46M
    if (i)
388
1.46M
    {
389
1.46M
      switch (not_found)
390
1.46M
      {
391
0
  case HB_NOT_FOUND_DONT_STORE:
392
0
    break;
393
394
1.46M
  case HB_NOT_FOUND_STORE:
395
1.46M
    *i = to_store;
396
1.46M
    break;
397
398
0
  case HB_NOT_FOUND_STORE_CLOSEST:
399
0
    *i = pos;
400
0
    break;
401
1.46M
      }
402
1.46M
    }
403
1.46M
    return false;
404
1.46M
  }
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
333k
  {
378
333k
    unsigned pos;
379
380
333k
    if (bsearch_impl (x, &pos))
381
133
    {
382
133
      if (i)
383
133
  *i = pos;
384
133
      return true;
385
133
    }
386
387
333k
    if (i)
388
333k
    {
389
333k
      switch (not_found)
390
333k
      {
391
333k
  case HB_NOT_FOUND_DONT_STORE:
392
333k
    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
333k
      }
402
333k
    }
403
333k
    return false;
404
333k
  }
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
19.1k
  {
378
19.1k
    unsigned pos;
379
380
19.1k
    if (bsearch_impl (x, &pos))
381
1.26k
    {
382
1.26k
      if (i)
383
1.26k
  *i = pos;
384
1.26k
      return true;
385
1.26k
    }
386
387
17.8k
    if (i)
388
17.8k
    {
389
17.8k
      switch (not_found)
390
17.8k
      {
391
17.8k
  case HB_NOT_FOUND_DONT_STORE:
392
17.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
17.8k
      }
402
17.8k
    }
403
17.8k
    return false;
404
17.8k
  }
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
1.61k
  {
378
1.61k
    unsigned pos;
379
380
1.61k
    if (bsearch_impl (x, &pos))
381
25
    {
382
25
      if (i)
383
25
  *i = pos;
384
25
      return true;
385
25
    }
386
387
1.58k
    if (i)
388
1.58k
    {
389
1.58k
      switch (not_found)
390
1.58k
      {
391
1.58k
  case HB_NOT_FOUND_DONT_STORE:
392
1.58k
    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.58k
      }
402
1.58k
    }
403
1.58k
    return false;
404
1.58k
  }
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
666k
  {
378
666k
    unsigned pos;
379
380
666k
    if (bsearch_impl (x, &pos))
381
4.66k
    {
382
4.66k
      if (i)
383
4.66k
  *i = pos;
384
4.66k
      return true;
385
4.66k
    }
386
387
661k
    if (i)
388
661k
    {
389
661k
      switch (not_found)
390
661k
      {
391
661k
  case HB_NOT_FOUND_DONT_STORE:
392
661k
    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
661k
      }
402
661k
    }
403
661k
    return false;
404
661k
  }
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
4.11k
  {
378
4.11k
    unsigned pos;
379
380
4.11k
    if (bsearch_impl (x, &pos))
381
16
    {
382
16
      if (i)
383
16
  *i = pos;
384
16
      return true;
385
16
    }
386
387
4.10k
    if (i)
388
4.10k
    {
389
4.10k
      switch (not_found)
390
4.10k
      {
391
4.10k
  case HB_NOT_FOUND_DONT_STORE:
392
4.10k
    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.10k
      }
402
4.10k
    }
403
4.10k
    return false;
404
4.10k
  }
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
497k
  {
378
497k
    unsigned pos;
379
380
497k
    if (bsearch_impl (x, &pos))
381
0
    {
382
0
      if (i)
383
0
  *i = pos;
384
0
      return true;
385
0
    }
386
387
497k
    if (i)
388
497k
    {
389
497k
      switch (not_found)
390
497k
      {
391
497k
  case HB_NOT_FOUND_DONT_STORE:
392
497k
    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
497k
      }
402
497k
    }
403
497k
    return false;
404
497k
  }
405
  template <typename T, typename ...Ts>
406
  bool bsearch_impl (const T &x, unsigned *pos, Ts... ds) const
407
309M
  {
408
309M
    return hb_bsearch_impl (pos,
409
309M
          x,
410
309M
          this->arrayZ,
411
309M
          this->length,
412
309M
          sizeof (Type),
413
309M
          _hb_cmp_method<T, Type, Ts...>,
414
309M
          std::forward<Ts> (ds)...);
415
309M
  }
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
666k
  {
408
666k
    return hb_bsearch_impl (pos,
409
666k
          x,
410
666k
          this->arrayZ,
411
666k
          this->length,
412
666k
          sizeof (Type),
413
666k
          _hb_cmp_method<T, Type, Ts...>,
414
666k
          std::forward<Ts> (ds)...);
415
666k
  }
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.34M
  {
408
4.34M
    return hb_bsearch_impl (pos,
409
4.34M
          x,
410
4.34M
          this->arrayZ,
411
4.34M
          this->length,
412
4.34M
          sizeof (Type),
413
4.34M
          _hb_cmp_method<T, Type, Ts...>,
414
4.34M
          std::forward<Ts> (ds)...);
415
4.34M
  }
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
159M
  {
408
159M
    return hb_bsearch_impl (pos,
409
159M
          x,
410
159M
          this->arrayZ,
411
159M
          this->length,
412
159M
          sizeof (Type),
413
159M
          _hb_cmp_method<T, Type, Ts...>,
414
159M
          std::forward<Ts> (ds)...);
415
159M
  }
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.39M
  {
408
6.39M
    return hb_bsearch_impl (pos,
409
6.39M
          x,
410
6.39M
          this->arrayZ,
411
6.39M
          this->length,
412
6.39M
          sizeof (Type),
413
6.39M
          _hb_cmp_method<T, Type, Ts...>,
414
6.39M
          std::forward<Ts> (ds)...);
415
6.39M
  }
bool hb_sorted_array_t<OT::HBGlyphID16 const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
100M
  {
408
100M
    return hb_bsearch_impl (pos,
409
100M
          x,
410
100M
          this->arrayZ,
411
100M
          this->length,
412
100M
          sizeof (Type),
413
100M
          _hb_cmp_method<T, Type, Ts...>,
414
100M
          std::forward<Ts> (ds)...);
415
100M
  }
bool hb_sorted_array_t<OT::HBGlyphID24 const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
2.82M
  {
408
2.82M
    return hb_bsearch_impl (pos,
409
2.82M
          x,
410
2.82M
          this->arrayZ,
411
2.82M
          this->length,
412
2.82M
          sizeof (Type),
413
2.82M
          _hb_cmp_method<T, Type, Ts...>,
414
2.82M
          std::forward<Ts> (ds)...);
415
2.82M
  }
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
314k
  {
408
314k
    return hb_bsearch_impl (pos,
409
314k
          x,
410
314k
          this->arrayZ,
411
314k
          this->length,
412
314k
          sizeof (Type),
413
314k
          _hb_cmp_method<T, Type, Ts...>,
414
314k
          std::forward<Ts> (ds)...);
415
314k
  }
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
5.28M
  {
408
5.28M
    return hb_bsearch_impl (pos,
409
5.28M
          x,
410
5.28M
          this->arrayZ,
411
5.28M
          this->length,
412
5.28M
          sizeof (Type),
413
5.28M
          _hb_cmp_method<T, Type, Ts...>,
414
5.28M
          std::forward<Ts> (ds)...);
415
5.28M
  }
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
10.3M
  {
408
10.3M
    return hb_bsearch_impl (pos,
409
10.3M
          x,
410
10.3M
          this->arrayZ,
411
10.3M
          this->length,
412
10.3M
          sizeof (Type),
413
10.3M
          _hb_cmp_method<T, Type, Ts...>,
414
10.3M
          std::forward<Ts> (ds)...);
415
10.3M
  }
bool hb_sorted_array_t<OT::Record<OT::LangSys> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
994k
  {
408
994k
    return hb_bsearch_impl (pos,
409
994k
          x,
410
994k
          this->arrayZ,
411
994k
          this->length,
412
994k
          sizeof (Type),
413
994k
          _hb_cmp_method<T, Type, Ts...>,
414
994k
          std::forward<Ts> (ds)...);
415
994k
  }
bool hb_sorted_array_t<OT::Record<OT::Script> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
3.67M
  {
408
3.67M
    return hb_bsearch_impl (pos,
409
3.67M
          x,
410
3.67M
          this->arrayZ,
411
3.67M
          this->length,
412
3.67M
          sizeof (Type),
413
3.67M
          _hb_cmp_method<T, Type, Ts...>,
414
3.67M
          std::forward<Ts> (ds)...);
415
3.67M
  }
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
334k
  {
408
334k
    return hb_bsearch_impl (pos,
409
334k
          x,
410
334k
          this->arrayZ,
411
334k
          this->length,
412
334k
          sizeof (Type),
413
334k
          _hb_cmp_method<T, Type, Ts...>,
414
334k
          std::forward<Ts> (ds)...);
415
334k
  }
bool hb_sorted_array_t<OT::UVSMapping const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
334k
  {
408
334k
    return hb_bsearch_impl (pos,
409
334k
          x,
410
334k
          this->arrayZ,
411
334k
          this->length,
412
334k
          sizeof (Type),
413
334k
          _hb_cmp_method<T, Type, Ts...>,
414
334k
          std::forward<Ts> (ds)...);
415
334k
  }
bool hb_sorted_array_t<OT::VariationSelectorRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
667k
  {
408
667k
    return hb_bsearch_impl (pos,
409
667k
          x,
410
667k
          this->arrayZ,
411
667k
          this->length,
412
667k
          sizeof (Type),
413
667k
          _hb_cmp_method<T, Type, Ts...>,
414
667k
          std::forward<Ts> (ds)...);
415
667k
  }
bool hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
4.63M
  {
408
4.63M
    return hb_bsearch_impl (pos,
409
4.63M
          x,
410
4.63M
          this->arrayZ,
411
4.63M
          this->length,
412
4.63M
          sizeof (Type),
413
4.63M
          _hb_cmp_method<T, Type, Ts...>,
414
4.63M
          std::forward<Ts> (ds)...);
415
4.63M
  }
bool hb_sorted_array_t<OT::EncodingRecord const>::bsearch_impl<OT::EncodingRecord>(OT::EncodingRecord const&, unsigned int*) const
Line
Count
Source
407
2.67M
  {
408
2.67M
    return hb_bsearch_impl (pos,
409
2.67M
          x,
410
2.67M
          this->arrayZ,
411
2.67M
          this->length,
412
2.67M
          sizeof (Type),
413
2.67M
          _hb_cmp_method<T, Type, Ts...>,
414
2.67M
          std::forward<Ts> (ds)...);
415
2.67M
  }
bool hb_sorted_array_t<OT::ClipRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
622k
  {
408
622k
    return hb_bsearch_impl (pos,
409
622k
          x,
410
622k
          this->arrayZ,
411
622k
          this->length,
412
622k
          sizeof (Type),
413
622k
          _hb_cmp_method<T, Type, Ts...>,
414
622k
          std::forward<Ts> (ds)...);
415
622k
  }
bool hb_sorted_array_t<OT::BaseGlyphRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
343k
  {
408
343k
    return hb_bsearch_impl (pos,
409
343k
          x,
410
343k
          this->arrayZ,
411
343k
          this->length,
412
343k
          sizeof (Type),
413
343k
          _hb_cmp_method<T, Type, Ts...>,
414
343k
          std::forward<Ts> (ds)...);
415
343k
  }
bool hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
621k
  {
408
621k
    return hb_bsearch_impl (pos,
409
621k
          x,
410
621k
          this->arrayZ,
411
621k
          this->length,
412
621k
          sizeof (Type),
413
621k
          _hb_cmp_method<T, Type, Ts...>,
414
621k
          std::forward<Ts> (ds)...);
415
621k
  }
bool hb_sorted_array_t<OT::TableRecord const>::bsearch_impl<OT::Tag>(OT::Tag const&, unsigned int*) const
Line
Count
Source
407
2.12M
  {
408
2.12M
    return hb_bsearch_impl (pos,
409
2.12M
          x,
410
2.12M
          this->arrayZ,
411
2.12M
          this->length,
412
2.12M
          sizeof (Type),
413
2.12M
          _hb_cmp_method<T, Type, Ts...>,
414
2.12M
          std::forward<Ts> (ds)...);
415
2.12M
  }
bool hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
333k
  {
408
333k
    return hb_bsearch_impl (pos,
409
333k
          x,
410
333k
          this->arrayZ,
411
333k
          this->length,
412
333k
          sizeof (Type),
413
333k
          _hb_cmp_method<T, Type, Ts...>,
414
333k
          std::forward<Ts> (ds)...);
415
333k
  }
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
19.1k
  {
408
19.1k
    return hb_bsearch_impl (pos,
409
19.1k
          x,
410
19.1k
          this->arrayZ,
411
19.1k
          this->length,
412
19.1k
          sizeof (Type),
413
19.1k
          _hb_cmp_method<T, Type, Ts...>,
414
19.1k
          std::forward<Ts> (ds)...);
415
19.1k
  }
bool hb_sorted_array_t<OT::VertOriginMetric const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
1.61k
  {
408
1.61k
    return hb_bsearch_impl (pos,
409
1.61k
          x,
410
1.61k
          this->arrayZ,
411
1.61k
          this->length,
412
1.61k
          sizeof (Type),
413
1.61k
          _hb_cmp_method<T, Type, Ts...>,
414
1.61k
          std::forward<Ts> (ds)...);
415
1.61k
  }
bool hb_sorted_array_t<OT::BaseScriptRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
666k
  {
408
666k
    return hb_bsearch_impl (pos,
409
666k
          x,
410
666k
          this->arrayZ,
411
666k
          this->length,
412
666k
          sizeof (Type),
413
666k
          _hb_cmp_method<T, Type, Ts...>,
414
666k
          std::forward<Ts> (ds)...);
415
666k
  }
bool hb_sorted_array_t<OT::Tag const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const
Line
Count
Source
407
4.11k
  {
408
4.11k
    return hb_bsearch_impl (pos,
409
4.11k
          x,
410
4.11k
          this->arrayZ,
411
4.11k
          this->length,
412
4.11k
          sizeof (Type),
413
4.11k
          _hb_cmp_method<T, Type, Ts...>,
414
4.11k
          std::forward<Ts> (ds)...);
415
4.11k
  }
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
497k
  {
408
497k
    return hb_bsearch_impl (pos,
409
497k
          x,
410
497k
          this->arrayZ,
411
497k
          this->length,
412
497k
          sizeof (Type),
413
497k
          _hb_cmp_method<T, Type, Ts...>,
414
497k
          std::forward<Ts> (ds)...);
415
497k
  }
416
};
417
template <typename T> inline hb_sorted_array_t<T>
418
hb_sorted_array (T *array, unsigned int length)
419
291M
{ 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
999k
{ 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
159M
{ 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.39M
{ 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
101M
{ 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
2.87M
{ 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
314k
{ 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
994k
{ 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
3.67M
{ 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
334k
{ 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
667k
{ 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.00M
{ 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.63M
{ 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
2.67M
{ 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
622k
{ 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
621k
{ 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
343k
{ 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.12M
{ 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
333k
{ 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
1.61k
{ 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
666k
{ 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
4.11k
{ 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
19.8k
{ 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
497k
{ 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
134k
{
436
134k
  if (o.length != this->length) return false;
437
134k
  return 0 == hb_memcmp (arrayZ, o.arrayZ, length);
438
134k
}
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
475k
{
452
475k
  uint32_t current = 0;
453
475k
  unsigned i = 0;
454
455
475k
#if defined(__OPTIMIZE__) && !defined(HB_NO_PACKED) && \
456
475k
    ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__))
457
475k
  struct __attribute__((packed)) packed_uint32_t { uint32_t v; };
458
1.79M
  for (; i + 4 <= this->length; i += 4)
459
1.31M
    current = current * 31 + hb_hash ((uint32_t) ((packed_uint32_t *) &this->arrayZ[i])->v);
460
475k
#endif
461
462
832k
  for (; i < this->length; i++)
463
356k
    current = current * 31 + hb_hash (this->arrayZ[i]);
464
475k
  return current;
465
475k
}
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 */