/src/harfbuzz/src/hb-array.hh
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright © 2018 Google, Inc. |
3 | | * |
4 | | * This is part of HarfBuzz, a text shaping library. |
5 | | * |
6 | | * Permission is hereby granted, without written agreement and without |
7 | | * license or royalty fees, to use, copy, modify, and distribute this |
8 | | * software and its documentation for any purpose, provided that the |
9 | | * above copyright notice and the following two paragraphs appear in |
10 | | * all copies of this software. |
11 | | * |
12 | | * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR |
13 | | * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES |
14 | | * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN |
15 | | * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH |
16 | | * DAMAGE. |
17 | | * |
18 | | * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, |
19 | | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND |
20 | | * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS |
21 | | * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO |
22 | | * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
23 | | * |
24 | | * Google Author(s): Behdad Esfahbod |
25 | | */ |
26 | | |
27 | | #ifndef HB_ARRAY_HH |
28 | | #define HB_ARRAY_HH |
29 | | |
30 | | #include "hb.hh" |
31 | | #include "hb-algs.hh" |
32 | | #include "hb-iter.hh" |
33 | | #include "hb-null.hh" |
34 | | |
35 | | |
36 | | template <typename Type> |
37 | | struct hb_sorted_array_t; |
38 | | |
39 | | enum hb_not_found_t |
40 | | { |
41 | | HB_NOT_FOUND_DONT_STORE, |
42 | | HB_NOT_FOUND_STORE, |
43 | | HB_NOT_FOUND_STORE_CLOSEST, |
44 | | }; |
45 | | |
46 | | |
47 | | template <typename Type> |
48 | | struct hb_array_t : hb_iter_with_fallback_t<hb_array_t<Type>, Type&> |
49 | | { |
50 | | /* |
51 | | * Constructors. |
52 | | */ |
53 | 50.8M | hb_array_t () = default; hb_array_t<char const>::hb_array_t() Line | Count | Source | 53 | 40.2M | hb_array_t () = default; |
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::hb_array_t() Line | Count | Source | 53 | 1.71M | hb_array_t () = default; |
hb_array_t<int>::hb_array_t() Line | Count | Source | 53 | 487k | hb_array_t () = default; |
hb_array_t<unsigned char const>::hb_array_t() Line | Count | Source | 53 | 8.38M | hb_array_t () = default; |
|
54 | | hb_array_t (const hb_array_t&) = default; |
55 | | ~hb_array_t () = default; |
56 | | hb_array_t& operator= (const hb_array_t&) = default; |
57 | | hb_array_t& operator= (hb_array_t&&) = default; |
58 | | |
59 | 3.78G | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} hb_array_t<OT::IntType<short, 2u> const>::hb_array_t(OT::IntType<short, 2u> const*, unsigned int) Line | Count | Source | 59 | 32.9k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::hb_array_t(OT::HBFixed<OT::IntType<int, 4u>, 16u> const*, unsigned int) hb_array_t<AAT::FeatureName const>::hb_array_t(AAT::FeatureName const*, unsigned int) Line | Count | Source | 59 | 21.4M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_aat_layout_feature_type_t>::hb_array_t(hb_aat_layout_feature_type_t*, unsigned int) Line | Count | Source | 59 | 5.37M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<AAT::SettingName const>::hb_array_t(AAT::SettingName const*, unsigned int) Line | Count | Source | 59 | 10.7M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_aat_layout_feature_selector_info_t>::hb_array_t(hb_aat_layout_feature_selector_info_t*, unsigned int) Line | Count | Source | 59 | 5.37M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<char const>::hb_array_t(char const*, unsigned int) Line | Count | Source | 59 | 2.48G | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<hb_aat_feature_mapping_t const>::hb_array_t(hb_aat_feature_mapping_t const*, unsigned int) hb_array_t<AAT::Feature const>::hb_array_t(AAT::Feature const*, unsigned int) Line | Count | Source | 59 | 657k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_aat_map_builder_t::feature_info_t>::hb_array_t(hb_aat_map_builder_t::feature_info_t*, unsigned int) Line | Count | Source | 59 | 2.21M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_aat_map_t::range_flags_t>::hb_array_t(hb_aat_map_t::range_flags_t*, unsigned int) Line | Count | Source | 59 | 718k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_glyph_info_t>::hb_array_t(hb_glyph_info_t*, unsigned int) Line | Count | Source | 59 | 1.13M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_glyph_position_t>::hb_array_t(hb_glyph_position_t*, unsigned int) Line | Count | Source | 59 | 95.7k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::hb_array_t(OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const*, unsigned int) Line | Count | Source | 59 | 125M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::hb_array_t(OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const*, unsigned int) Line | Count | Source | 59 | 16.4M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::HBGlyphID16 const>::hb_array_t(OT::HBGlyphID16 const*, unsigned int) Line | Count | Source | 59 | 44.4M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::HBGlyphID24 const>::hb_array_t(OT::HBGlyphID24 const*, unsigned int) Line | Count | Source | 59 | 1.06M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<AAT::KernPair const>::hb_array_t(AAT::KernPair const*, unsigned int) Line | Count | Source | 59 | 600k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_aat_map_builder_t::feature_event_t>::hb_array_t(hb_aat_map_builder_t::feature_event_t*, unsigned int) Line | Count | Source | 59 | 379k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::hb_array_t(hb_user_data_array_t::hb_user_data_item_t*, unsigned int) Line | Count | Source | 59 | 14.7M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::TableRecord const>::hb_array_t(OT::TableRecord const*, unsigned int) Line | Count | Source | 59 | 202M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::ResourceRecord const>::hb_array_t(OT::ResourceRecord const*, unsigned int) Line | Count | Source | 59 | 7.21k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<unsigned int>::hb_array_t(unsigned int*, unsigned int) Line | Count | Source | 59 | 39.9M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_bit_set_t::page_map_t>::hb_array_t(hb_bit_set_t::page_map_t*, unsigned int) Line | Count | Source | 59 | 14.7M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::hb_array_t(hb_hashmap_t<unsigned int, unsigned int, true>::item_t*, unsigned int) Line | Count | Source | 59 | 5.35M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::VariationSelectorRecord const>::hb_array_t(OT::VariationSelectorRecord const*, unsigned int) Line | Count | Source | 59 | 16.1M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::UVSMapping const>::hb_array_t(OT::UVSMapping const*, unsigned int) Line | Count | Source | 59 | 10.7M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::EncodingRecord const>::hb_array_t(OT::EncodingRecord const*, unsigned int) Line | Count | Source | 59 | 51.3M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::CmapSubtableLongGroup const>::hb_array_t(OT::CmapSubtableLongGroup const*, unsigned int) Line | Count | Source | 59 | 7.31M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::AxisRecord const>::hb_array_t(OT::AxisRecord const*, unsigned int) Line | Count | Source | 59 | 138k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::Index const>::hb_array_t(OT::Index const*, unsigned int) Line | Count | Source | 59 | 68.1M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::IntType<unsigned int, 4u> const>::hb_array_t(OT::IntType<unsigned int, 4u> const*, unsigned int) Line | Count | Source | 59 | 195k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::BaseGlyphPaintRecord const>::hb_array_t(OT::BaseGlyphPaintRecord const*, unsigned int) Line | Count | Source | 59 | 1.11M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::BaseGlyphRecord const>::hb_array_t(OT::BaseGlyphRecord const*, unsigned int) Line | Count | Source | 59 | 5.39M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::LayerRecord const>::hb_array_t(OT::LayerRecord const*, unsigned int) Line | Count | Source | 59 | 10.7M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<hb_ot_color_layer_t>::hb_array_t(hb_ot_color_layer_t*, unsigned int) hb_array_t<OT::SVGDocumentIndexEntry const>::hb_array_t(OT::SVGDocumentIndexEntry const*, unsigned int) Line | Count | Source | 59 | 5.37M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::UnicodeValueRange const>::hb_array_t(OT::UnicodeValueRange const*, unsigned int) Line | Count | Source | 59 | 5.38M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::VertOriginMetric const>::hb_array_t(OT::VertOriginMetric const*, unsigned int) Line | Count | Source | 59 | 2.04k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<int>::hb_array_t(int*, unsigned int) Line | Count | Source | 59 | 1.89M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::contour_point_t>::hb_array_t(OT::contour_point_t*, unsigned int) Line | Count | Source | 59 | 13.9M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::hb_array_t(OT::HBFixed<OT::IntType<short, 2u>, 14u> const*, unsigned int) Line | Count | Source | 59 | 2.84M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<unsigned char const>::hb_array_t(unsigned char const*, unsigned int) Line | Count | Source | 59 | 6.82M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::ClipRecord const>::hb_array_t(OT::ClipRecord const*, unsigned int) Line | Count | Source | 59 | 1.11M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::cff1::accelerator_t::gname_t>::hb_array_t(OT::cff1::accelerator_t::gname_t*, unsigned int) Line | Count | Source | 59 | 55.8k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::IntType<unsigned char, 1u> const>::hb_array_t(OT::IntType<unsigned char, 1u> const*, unsigned int) Line | Count | Source | 59 | 98.7k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::IntType<unsigned short, 2u> const>::hb_array_t(OT::IntType<unsigned short, 2u> const*, unsigned int) Line | Count | Source | 59 | 16.6M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::Record<OT::Script> const>::hb_array_t(OT::Record<OT::Script> const*, unsigned int) Line | Count | Source | 59 | 52.2M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::hb_array_t(OT::Record<OT::Feature> const*, unsigned int) hb_array_t<OT::Record<OT::LangSys> const>::hb_array_t(OT::Record<OT::LangSys> const*, unsigned int) Line | Count | Source | 59 | 13.1M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<unsigned long long const>::hb_array_t(unsigned long long const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const>::hb_array_t(OT::FeatureTableSubstitutionRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 462k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 629 | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 14.6M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 11.7M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::IntType<unsigned int, 3u> const>::hb_array_t(OT::IntType<unsigned int, 3u> const*, unsigned int) Line | Count | Source | 59 | 11.7M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 878k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 13.5M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 180k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::unique_ptr<hb_set_t>, false>::item_t>::hb_array_t(hb_hashmap_t<unsigned int, hb::unique_ptr<hb_set_t>, false>::item_t*, unsigned int) Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_set_t, false>::item_t>::hb_array_t(hb_hashmap_t<unsigned int, hb_set_t, false>::item_t*, unsigned int) hb_array_t<OT::BaseScriptRecord const>::hb_array_t(OT::BaseScriptRecord const*, unsigned int) Line | Count | Source | 59 | 10.7M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::Tag const>::hb_array_t(OT::Tag const*, unsigned int) Line | Count | Source | 59 | 12.3k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t>::hb_array_t(OT::hb_accelerate_subtables_context_t::hb_applicable_t*, unsigned int) Line | Count | Source | 59 | 154M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::hb_array_t(OT::hb_accelerate_subtables_context_t::hb_applicable_t const*, unsigned int) Line | Count | Source | 59 | 154M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::MathGlyphVariantRecord const>::hb_array_t(OT::MathGlyphVariantRecord const*, unsigned int) Line | Count | Source | 59 | 10.7M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_math_glyph_variant_t>::hb_array_t(hb_ot_math_glyph_variant_t*, unsigned int) Line | Count | Source | 59 | 5.37M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::MathGlyphPartRecord const>::hb_array_t(OT::MathGlyphPartRecord const*, unsigned int) Line | Count | Source | 59 | 10.7M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_math_glyph_part_t>::hb_array_t(hb_ot_math_glyph_part_t*, unsigned int) Line | Count | Source | 59 | 5.37M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::DataMap const>::hb_array_t(OT::DataMap const*, unsigned int) Line | Count | Source | 59 | 5.37M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<hb_ot_meta_tag_t>::hb_array_t(hb_ot_meta_tag_t*, unsigned int) hb_array_t<OT::NameRecord const>::hb_array_t(OT::NameRecord const*, unsigned int) Line | Count | Source | 59 | 5.29M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_name_entry_t>::hb_array_t(hb_ot_name_entry_t*, unsigned int) Line | Count | Source | 59 | 5.23M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_map_t::feature_map_t>::hb_array_t(hb_ot_map_t::feature_map_t*, unsigned int) Line | Count | Source | 59 | 61.2M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<sid_to_gid_t const>::hb_array_t(sid_to_gid_t const*, unsigned int) hb_array_t<CFF::number_t const>::hb_array_t(CFF::number_t const*, unsigned int) Line | Count | Source | 59 | 2.59M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_map_builder_t::feature_info_t>::hb_array_t(hb_ot_map_builder_t::feature_info_t*, unsigned int) Line | Count | Source | 59 | 6.56M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_map_t::lookup_map_t>::hb_array_t(hb_ot_map_t::lookup_map_t*, unsigned int) Line | Count | Source | 59 | 674k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_serialize_context_t::object_t*>::hb_array_t(hb_serialize_context_t::object_t**, unsigned int) Line | Count | Source | 59 | 99.2k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_serialize_context_t::object_t* const>::hb_array_t(hb_serialize_context_t::object_t* const*, unsigned int) Line | Count | Source | 59 | 99.2k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_hashmap_t<hb_serialize_context_t::object_t const*, unsigned int, false>::item_t>::hb_array_t(hb_hashmap_t<hb_serialize_context_t::object_t const*, unsigned int, false>::item_t*, unsigned int) Line | Count | Source | 59 | 37.3k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::HBGlyphID16>::hb_array_t(OT::HBGlyphID16*, unsigned int) Line | Count | Source | 59 | 88.3k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t*>::hb_array_t(hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t**, unsigned int) Line | Count | Source | 59 | 34.9k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>::hb_array_t(hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const*, unsigned int) Line | Count | Source | 59 | 34.9k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<unsigned int const>::hb_array_t(unsigned int const*, unsigned int) Line | Count | Source | 59 | 143k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_map_t::lookup_map_t const>::hb_array_t(hb_ot_map_t::lookup_map_t const*, unsigned int) Line | Count | Source | 59 | 518k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<LangTag const>::hb_array_t(LangTag const*, unsigned int) Line | Count | Source | 59 | 6.57M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
|
60 | | template <unsigned int length_> |
61 | 1.29M | constexpr hb_array_t (Type (&array_)[length_]) : hb_array_t (array_, length_) {} Unexecuted instantiation: hb_array_t<hb_aat_feature_mapping_t const>::hb_array_t<78u>(hb_aat_feature_mapping_t const (&) [78u]) Unexecuted instantiation: hb_array_t<unsigned long long const>::hb_array_t<8u>(unsigned long long const (&) [8u]) Unexecuted instantiation: hb_array_t<sid_to_gid_t const>::hb_array_t<165u>(sid_to_gid_t const (&) [165u]) Unexecuted instantiation: hb_array_t<sid_to_gid_t const>::hb_array_t<86u>(sid_to_gid_t const (&) [86u]) hb_array_t<CFF::number_t const>::hb_array_t<513u>(CFF::number_t const (&) [513u]) Line | Count | Source | 61 | 1.29M | constexpr hb_array_t (Type (&array_)[length_]) : hb_array_t (array_, length_) {} |
|
62 | | |
63 | | template <typename U, |
64 | | hb_enable_if (hb_is_cr_convertible(U, Type))> |
65 | | constexpr hb_array_t (const hb_array_t<U> &o) : |
66 | | hb_iter_with_fallback_t<hb_array_t, Type&> (), |
67 | 78.6M | arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {} hb_array_t<hb_aat_map_builder_t::feature_info_t const>::hb_array_t<hb_aat_map_builder_t::feature_info_t, (void*)0>(hb_array_t<hb_aat_map_builder_t::feature_info_t> const&) Line | Count | Source | 67 | 1.85M | arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {} |
hb_array_t<hb_aat_map_t::range_flags_t const>::hb_array_t<hb_aat_map_t::range_flags_t, (void*)0>(hb_array_t<hb_aat_map_t::range_flags_t> const&) Line | Count | Source | 67 | 718k | arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {} |
hb_array_t<hb_bit_set_t::page_map_t const>::hb_array_t<hb_bit_set_t::page_map_t, (void*)0>(hb_array_t<hb_bit_set_t::page_map_t> const&) Line | Count | Source | 67 | 14.7M | arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {} |
hb_array_t<hb_ot_map_t::feature_map_t const>::hb_array_t<hb_ot_map_t::feature_map_t, (void*)0>(hb_array_t<hb_ot_map_t::feature_map_t> const&) Line | Count | Source | 67 | 61.2M | arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {} |
hb_array_t<OT::HBGlyphID16 const>::hb_array_t<OT::HBGlyphID16, (void*)0>(hb_array_t<OT::HBGlyphID16> const&) Line | Count | Source | 67 | 18.4k | arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {} |
|
68 | | template <typename U, |
69 | | hb_enable_if (hb_is_cr_convertible(U, Type))> |
70 | | hb_array_t& operator = (const hb_array_t<U> &o) |
71 | | { arrayZ = o.arrayZ; length = o.length; backwards_length = o.backwards_length; return *this; } |
72 | | |
73 | | /* |
74 | | * Iterator implementation. |
75 | | */ |
76 | | typedef Type& __item_t__; |
77 | | static constexpr bool is_random_access_iterator = true; |
78 | | Type& __item_at__ (unsigned i) const |
79 | 1.25G | { |
80 | 1.25G | if (unlikely (i >= length)) return CrapOrNull (Type); |
81 | 1.23G | return arrayZ[i]; |
82 | 1.25G | } hb_array_t<OT::IntType<short, 2u> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 16.5k | { | 80 | 16.5k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 13.7k | return arrayZ[i]; | 82 | 16.5k | } |
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::__item_at__(unsigned int) const hb_array_t<hb_aat_layout_feature_type_t>::__item_at__(unsigned int) const Line | Count | Source | 79 | 487 | { | 80 | 487 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 487 | return arrayZ[i]; | 82 | 487 | } |
hb_array_t<AAT::FeatureName const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 487 | { | 80 | 487 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 487 | return arrayZ[i]; | 82 | 487 | } |
hb_array_t<AAT::SettingName const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 593 | { | 80 | 593 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 561 | return arrayZ[i]; | 82 | 593 | } |
hb_array_t<hb_aat_layout_feature_selector_info_t>::__item_at__(unsigned int) const Line | Count | Source | 79 | 297 | { | 80 | 297 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 297 | return arrayZ[i]; | 82 | 297 | } |
hb_array_t<hb_aat_map_t::range_flags_t const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 643k | { | 80 | 643k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 643k | return arrayZ[i]; | 82 | 643k | } |
Unexecuted instantiation: hb_array_t<unsigned long long const>::__item_at__(unsigned int) const hb_array_t<unsigned int>::__item_at__(unsigned int) const Line | Count | Source | 79 | 62.7M | { | 80 | 62.7M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 62.7M | return arrayZ[i]; | 82 | 62.7M | } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::__item_at__(unsigned int) const hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 41.9k | { | 80 | 41.9k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 41.9k | return arrayZ[i]; | 82 | 41.9k | } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t>::__item_at__(unsigned int) const hb_array_t<unsigned int const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 407k | { | 80 | 407k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 407k | return arrayZ[i]; | 82 | 407k | } |
Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::__item_at__(unsigned int) const hb_array_t<OT::Index const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 55.6M | { | 80 | 55.6M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 55.6M | return arrayZ[i]; | 82 | 55.6M | } |
hb_array_t<OT::IntType<unsigned int, 3u> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 200 | { | 80 | 200 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 200 | return arrayZ[i]; | 82 | 200 | } |
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Record<OT::LangSys> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Record<OT::Script> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<hb_inc_bimap_t const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const hb_array_t<int>::__item_at__(unsigned int) const Line | Count | Source | 79 | 697M | { | 80 | 697M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 697M | return arrayZ[i]; | 82 | 697M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 183M | { | 80 | 183M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 183M | return arrayZ[i]; | 82 | 183M | } |
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 16.6M | { | 80 | 16.6M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 16.6M | return arrayZ[i]; | 82 | 16.6M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 985k | { | 80 | 985k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 985k | return arrayZ[i]; | 82 | 985k | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 17.9M | { | 80 | 17.9M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 17.9M | return arrayZ[i]; | 82 | 17.9M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 249k | { | 80 | 249k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 249k | return arrayZ[i]; | 82 | 249k | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::UVSMapping const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::VariationSelectorRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::EncodingRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::LayerRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<hb_ot_color_layer_t>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::DeltaSetIndexMap const*>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::index_map_subset_plan_t>::__item_at__(unsigned int) const hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 1.47M | { | 80 | 1.47M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 1.47M | return arrayZ[i]; | 82 | 1.47M | } |
hb_array_t<OT::contour_point_t>::__item_at__(unsigned int) const Line | Count | Source | 79 | 19.2M | { | 80 | 19.2M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 19.2M | return arrayZ[i]; | 82 | 19.2M | } |
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> >::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> >::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t>::__item_at__(unsigned int) const hb_array_t<OT::ResourceRecord const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 7.21k | { | 80 | 7.21k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 7.21k | return arrayZ[i]; | 82 | 7.21k | } |
Unexecuted instantiation: hb_array_t<OT::TableRecord const>::__item_at__(unsigned int) const hb_array_t<OT::AxisRecord const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 53.1k | { | 80 | 53.1k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 53.1k | return arrayZ[i]; | 82 | 53.1k | } |
hb_array_t<OT::IntType<unsigned int, 4u> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 33.0k | { | 80 | 33.0k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 30.9k | return arrayZ[i]; | 82 | 33.0k | } |
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::__item_at__(unsigned int) const hb_array_t<unsigned char const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 179k | { | 80 | 179k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 26.3k | return arrayZ[i]; | 82 | 179k | } |
hb_array_t<OT::IntType<unsigned char, 1u> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 82.3k | { | 80 | 82.3k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 49.2k | return arrayZ[i]; | 82 | 82.3k | } |
Unexecuted instantiation: hb_array_t<OT::DataMap const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<hb_ot_meta_tag_t>::__item_at__(unsigned int) const hb_array_t<OT::NameRecord const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 13.3M | { | 80 | 13.3M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 13.3M | return arrayZ[i]; | 82 | 13.3M | } |
hb_array_t<OT::HBGlyphID16 const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 713k | { | 80 | 713k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 713k | return arrayZ[i]; | 82 | 713k | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 2.58M | { | 80 | 2.58M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 2.58M | return arrayZ[i]; | 82 | 2.58M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::__item_at__(unsigned int) const hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 460 | { | 80 | 460 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 460 | return arrayZ[i]; | 82 | 460 | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::VertOriginMetric const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::__item_at__(unsigned int) const hb_array_t<OT::MathGlyphVariantRecord const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 619 | { | 80 | 619 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 619 | return arrayZ[i]; | 82 | 619 | } |
hb_array_t<hb_ot_math_glyph_variant_t>::__item_at__(unsigned int) const Line | Count | Source | 79 | 619 | { | 80 | 619 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 619 | return arrayZ[i]; | 82 | 619 | } |
hb_array_t<OT::MathGlyphPartRecord const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 638 | { | 80 | 638 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 638 | return arrayZ[i]; | 82 | 638 | } |
hb_array_t<hb_ot_math_glyph_part_t>::__item_at__(unsigned int) const Line | Count | Source | 79 | 638 | { | 80 | 638 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 638 | return arrayZ[i]; | 82 | 638 | } |
Unexecuted instantiation: hb_array_t<OT::MathValueRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::MathKernInfoRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::HBGlyphID16>::__item_at__(unsigned int) const Line | Count | Source | 79 | 5.55M | { | 80 | 5.55M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 5.55M | return arrayZ[i]; | 82 | 5.55M | } |
hb_array_t<hb_glyph_info_t>::__item_at__(unsigned int) const Line | Count | Source | 79 | 173M | { | 80 | 173M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 160M | return arrayZ[i]; | 82 | 173M | } |
|
83 | | void __forward__ (unsigned n) |
84 | 1.01G | { |
85 | 1.01G | if (unlikely (n > length)) |
86 | 35.9k | n = length; |
87 | 1.01G | length -= n; |
88 | 1.01G | backwards_length += n; |
89 | 1.01G | arrayZ += n; |
90 | 1.01G | } hb_array_t<hb_aat_layout_feature_type_t>::__forward__(unsigned int) Line | Count | Source | 84 | 487 | { | 85 | 487 | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 487 | length -= n; | 88 | 487 | backwards_length += n; | 89 | 487 | arrayZ += n; | 90 | 487 | } |
hb_array_t<AAT::FeatureName const>::__forward__(unsigned int) Line | Count | Source | 84 | 487 | { | 85 | 487 | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 487 | length -= n; | 88 | 487 | backwards_length += n; | 89 | 487 | arrayZ += n; | 90 | 487 | } |
hb_array_t<hb_aat_layout_feature_selector_info_t>::__forward__(unsigned int) Line | Count | Source | 84 | 297 | { | 85 | 297 | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 297 | length -= n; | 88 | 297 | backwards_length += n; | 89 | 297 | arrayZ += n; | 90 | 297 | } |
hb_array_t<AAT::SettingName const>::__forward__(unsigned int) Line | Count | Source | 84 | 297 | { | 85 | 297 | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 297 | length -= n; | 88 | 297 | backwards_length += n; | 89 | 297 | arrayZ += n; | 90 | 297 | } |
hb_array_t<hb_aat_map_t::range_flags_t const>::__forward__(unsigned int) Line | Count | Source | 84 | 93.8k | { | 85 | 93.8k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 93.8k | length -= n; | 88 | 93.8k | backwards_length += n; | 89 | 93.8k | arrayZ += n; | 90 | 93.8k | } |
Unexecuted instantiation: hb_array_t<unsigned long long const>::__forward__(unsigned int) hb_array_t<unsigned int>::__forward__(unsigned int) Line | Count | Source | 84 | 62.4M | { | 85 | 62.4M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 62.4M | length -= n; | 88 | 62.4M | backwards_length += n; | 89 | 62.4M | arrayZ += n; | 90 | 62.4M | } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::__forward__(unsigned int) hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>::__forward__(unsigned int) Line | Count | Source | 84 | 41.9k | { | 85 | 41.9k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 41.9k | length -= n; | 88 | 41.9k | backwards_length += n; | 89 | 41.9k | arrayZ += n; | 90 | 41.9k | } |
hb_array_t<hb_serialize_context_t::object_t* const>::__forward__(unsigned int) Line | Count | Source | 84 | 99.2k | { | 85 | 99.2k | if (unlikely (n > length)) | 86 | 35.9k | n = length; | 87 | 99.2k | length -= n; | 88 | 99.2k | backwards_length += n; | 89 | 99.2k | arrayZ += n; | 90 | 99.2k | } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t>::__forward__(unsigned int) hb_array_t<unsigned int const>::__forward__(unsigned int) Line | Count | Source | 84 | 104k | { | 85 | 104k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 104k | length -= n; | 88 | 104k | backwards_length += n; | 89 | 104k | arrayZ += n; | 90 | 104k | } |
Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::__forward__(unsigned int) hb_array_t<OT::Index const>::__forward__(unsigned int) Line | Count | Source | 84 | 55.6M | { | 85 | 55.6M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 55.6M | length -= n; | 88 | 55.6M | backwards_length += n; | 89 | 55.6M | arrayZ += n; | 90 | 55.6M | } |
hb_array_t<OT::IntType<unsigned int, 3u> const>::__forward__(unsigned int) Line | Count | Source | 84 | 200 | { | 85 | 200 | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 200 | length -= n; | 88 | 200 | backwards_length += n; | 89 | 200 | arrayZ += n; | 90 | 200 | } |
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::Record<OT::LangSys> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::Record<OT::Script> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) hb_array_t<int>::__forward__(unsigned int) Line | Count | Source | 84 | 696M | { | 85 | 696M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 696M | length -= n; | 88 | 696M | backwards_length += n; | 89 | 696M | arrayZ += n; | 90 | 696M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::__forward__(unsigned int) Line | Count | Source | 84 | 115M | { | 85 | 115M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 115M | length -= n; | 88 | 115M | backwards_length += n; | 89 | 115M | arrayZ += n; | 90 | 115M | } |
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Line | Count | Source | 84 | 5.33M | { | 85 | 5.33M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 5.33M | length -= n; | 88 | 5.33M | backwards_length += n; | 89 | 5.33M | arrayZ += n; | 90 | 5.33M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Line | Count | Source | 84 | 232k | { | 85 | 232k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 232k | length -= n; | 88 | 232k | backwards_length += n; | 89 | 232k | arrayZ += n; | 90 | 232k | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Line | Count | Source | 84 | 8.32M | { | 85 | 8.32M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 8.32M | length -= n; | 88 | 8.32M | backwards_length += n; | 89 | 8.32M | arrayZ += n; | 90 | 8.32M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Line | Count | Source | 84 | 135k | { | 85 | 135k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 135k | length -= n; | 88 | 135k | backwards_length += n; | 89 | 135k | arrayZ += n; | 90 | 135k | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::UVSMapping const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::VariationSelectorRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::EncodingRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::LayerRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<hb_ot_color_layer_t>::__forward__(unsigned int) hb_array_t<OT::contour_point_t>::__forward__(unsigned int) Line | Count | Source | 84 | 2.75M | { | 85 | 2.75M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 2.75M | length -= n; | 88 | 2.75M | backwards_length += n; | 89 | 2.75M | arrayZ += n; | 90 | 2.75M | } |
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> >::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> >::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::TableRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::__forward__(unsigned int) hb_array_t<OT::IntType<unsigned int, 4u> const>::__forward__(unsigned int) Line | Count | Source | 84 | 30.8k | { | 85 | 30.8k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 30.8k | length -= n; | 88 | 30.8k | backwards_length += n; | 89 | 30.8k | arrayZ += n; | 90 | 30.8k | } |
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::DataMap const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<hb_ot_meta_tag_t>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::NameRecord const>::__forward__(unsigned int) hb_array_t<OT::HBGlyphID16 const>::__forward__(unsigned int) Line | Count | Source | 84 | 816k | { | 85 | 816k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 816k | length -= n; | 88 | 816k | backwards_length += n; | 89 | 816k | arrayZ += n; | 90 | 816k | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Line | Count | Source | 84 | 2.58M | { | 85 | 2.58M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 2.58M | length -= n; | 88 | 2.58M | backwards_length += n; | 89 | 2.58M | arrayZ += n; | 90 | 2.58M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::__forward__(unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Line | Count | Source | 84 | 460 | { | 85 | 460 | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 460 | length -= n; | 88 | 460 | backwards_length += n; | 89 | 460 | arrayZ += n; | 90 | 460 | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::VertOriginMetric const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::__forward__(unsigned int) hb_array_t<OT::MathGlyphVariantRecord const>::__forward__(unsigned int) Line | Count | Source | 84 | 5.37M | { | 85 | 5.37M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 5.37M | length -= n; | 88 | 5.37M | backwards_length += n; | 89 | 5.37M | arrayZ += n; | 90 | 5.37M | } |
hb_array_t<hb_ot_math_glyph_variant_t>::__forward__(unsigned int) Line | Count | Source | 84 | 5.37M | { | 85 | 5.37M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 5.37M | length -= n; | 88 | 5.37M | backwards_length += n; | 89 | 5.37M | arrayZ += n; | 90 | 5.37M | } |
hb_array_t<OT::MathGlyphPartRecord const>::__forward__(unsigned int) Line | Count | Source | 84 | 5.37M | { | 85 | 5.37M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 5.37M | length -= n; | 88 | 5.37M | backwards_length += n; | 89 | 5.37M | arrayZ += n; | 90 | 5.37M | } |
hb_array_t<hb_ot_math_glyph_part_t>::__forward__(unsigned int) Line | Count | Source | 84 | 5.37M | { | 85 | 5.37M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 5.37M | length -= n; | 88 | 5.37M | backwards_length += n; | 89 | 5.37M | arrayZ += n; | 90 | 5.37M | } |
Unexecuted instantiation: hb_array_t<OT::MathValueRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::MathKernInfoRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) hb_array_t<OT::HBGlyphID16>::__forward__(unsigned int) Line | Count | Source | 84 | 5.58M | { | 85 | 5.58M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 5.58M | length -= n; | 88 | 5.58M | backwards_length += n; | 89 | 5.58M | arrayZ += n; | 90 | 5.58M | } |
hb_array_t<hb_glyph_info_t>::__forward__(unsigned int) Line | Count | Source | 84 | 37.5M | { | 85 | 37.5M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 37.5M | length -= n; | 88 | 37.5M | backwards_length += n; | 89 | 37.5M | arrayZ += n; | 90 | 37.5M | } |
|
91 | | void __rewind__ (unsigned n) |
92 | 5.76M | { |
93 | 5.76M | if (unlikely (n > backwards_length)) |
94 | 0 | n = backwards_length; |
95 | 5.76M | length += n; |
96 | 5.76M | backwards_length -= n; |
97 | 5.76M | arrayZ -= n; |
98 | 5.76M | } |
99 | 1.28G | unsigned __len__ () const { return length; } hb_array_t<AAT::FeatureName const>::__len__() const Line | Count | Source | 99 | 5.37M | unsigned __len__ () const { return length; } |
hb_array_t<AAT::SettingName const>::__len__() const Line | Count | Source | 99 | 5.37M | unsigned __len__ () const { return length; } |
hb_array_t<hb_aat_map_t::range_flags_t const>::__len__() const Line | Count | Source | 99 | 812k | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<unsigned long long const>::__len__() const hb_array_t<unsigned int>::__len__() const Line | Count | Source | 99 | 6.78M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::__len__() const hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>::__len__() const Line | Count | Source | 99 | 76.9k | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t>::__len__() const Unexecuted instantiation: hb_array_t<unsigned int const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::__len__() const hb_array_t<OT::Index const>::__len__() const Line | Count | Source | 99 | 89.7M | unsigned __len__ () const { return length; } |
hb_array_t<OT::IntType<unsigned int, 3u> const>::__len__() const Line | Count | Source | 99 | 5.37M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Record<OT::LangSys> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Record<OT::Script> const>::__len__() const Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const>::__len__() const hb_array_t<OT::HBGlyphID16 const>::__len__() const Line | Count | Source | 99 | 1.13M | unsigned __len__ () const { return length; } |
hb_array_t<OT::HBGlyphID24 const>::__len__() const Line | Count | Source | 99 | 33.2k | unsigned __len__ () const { return length; } |
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::__len__() const Line | Count | Source | 99 | 270M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Line | Count | Source | 99 | 19.9M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Line | Count | Source | 99 | 1.11M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Line | Count | Source | 99 | 21.8M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Line | Count | Source | 99 | 315k | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::UVSMapping const>::__len__() const Unexecuted instantiation: hb_array_t<OT::VariationSelectorRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::EncodingRecord const>::__len__() const hb_array_t<int>::__len__() const Line | Count | Source | 99 | 701M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::LayerRecord const>::__len__() const hb_array_t<OT::contour_point_t>::__len__() const Line | Count | Source | 99 | 2.67M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t>::__len__() const Unexecuted instantiation: hb_array_t<OT::TableRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::__len__() const hb_array_t<OT::IntType<unsigned int, 4u> const>::__len__() const Line | Count | Source | 99 | 95.0k | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned char, 1u> const>::__len__() const Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::__len__() const Unexecuted instantiation: hb_array_t<unsigned char const>::__len__() const Unexecuted instantiation: hb_array_t<OT::DataMap const>::__len__() const Unexecuted instantiation: hb_array_t<OT::NameRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Line | Count | Source | 99 | 3.04M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Line | Count | Source | 99 | 1.08k | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::VertOriginMetric const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::__len__() const hb_array_t<OT::MathGlyphVariantRecord const>::__len__() const Line | Count | Source | 99 | 5.37M | unsigned __len__ () const { return length; } |
hb_array_t<hb_ot_math_glyph_variant_t>::__len__() const Line | Count | Source | 99 | 5.37M | unsigned __len__ () const { return length; } |
hb_array_t<OT::MathGlyphPartRecord const>::__len__() const Line | Count | Source | 99 | 5.37M | unsigned __len__ () const { return length; } |
hb_array_t<hb_ot_math_glyph_part_t>::__len__() const Line | Count | Source | 99 | 5.37M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::MathValueRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::MathKernInfoRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::__len__() const hb_array_t<OT::HBGlyphID16>::__len__() const Line | Count | Source | 99 | 1.90M | unsigned __len__ () const { return length; } |
hb_array_t<hb_glyph_info_t>::__len__() const Line | Count | Source | 99 | 121M | unsigned __len__ () const { return length; } |
|
100 | | /* Ouch. The operator== compares the contents of the array. For range-based for loops, |
101 | | * it's best if we can just compare arrayZ, though comparing contents is still fast, |
102 | | * but also would require that Type has operator==. As such, we optimize this operator |
103 | | * for range-based for loop and just compare arrayZ and length. |
104 | | * |
105 | | * The above comment is outdated now because we implemented separate begin/end to |
106 | | * objects that were using hb_array_t for range-based loop before. */ |
107 | | bool operator != (const hb_array_t& o) const |
108 | 11.7M | { return this->arrayZ != o.arrayZ || this->length != o.length; } Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t>::operator!=(hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t> const&) const Unexecuted instantiation: hb_array_t<OT::Index const>::operator!=(hb_array_t<OT::Index const> const&) const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::operator!=(hb_array_t<OT::IntType<unsigned short, 2u> const> const&) const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::operator!=(hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t> const&) const Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::operator!=(hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::operator!=(hb_array_t<OT::Layout::GPOS_impl::MarkRecord const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 3u> const>::operator!=(hb_array_t<OT::IntType<unsigned int, 3u> const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const> const&) const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t>::operator!=(hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t> const&) const Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::operator!=(hb_array_t<hb_array_t<unsigned char const> const> const&) const Unexecuted instantiation: hb_array_t<OT::NameRecord const>::operator!=(hb_array_t<OT::NameRecord const> const&) const Unexecuted instantiation: hb_array_t<OT::HBGlyphID16 const>::operator!=(hb_array_t<OT::HBGlyphID16 const> const&) const Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::operator!=(hb_array_t<OT::HBGlyphID24 const> const&) const hb_array_t<OT::MathGlyphVariantRecord const>::operator!=(hb_array_t<OT::MathGlyphVariantRecord const> const&) const Line | Count | Source | 108 | 5.37M | { return this->arrayZ != o.arrayZ || this->length != o.length; } |
hb_array_t<hb_ot_math_glyph_variant_t>::operator!=(hb_array_t<hb_ot_math_glyph_variant_t> const&) const Line | Count | Source | 108 | 619 | { return this->arrayZ != o.arrayZ || this->length != o.length; } |
hb_array_t<OT::MathGlyphPartRecord const>::operator!=(hb_array_t<OT::MathGlyphPartRecord const> const&) const Line | Count | Source | 108 | 5.37M | { return this->arrayZ != o.arrayZ || this->length != o.length; } |
hb_array_t<hb_ot_math_glyph_part_t>::operator!=(hb_array_t<hb_ot_math_glyph_part_t> const&) const Line | Count | Source | 108 | 638 | { return this->arrayZ != o.arrayZ || this->length != o.length; } |
hb_array_t<OT::HBGlyphID16>::operator!=(hb_array_t<OT::HBGlyphID16> const&) const Line | Count | Source | 108 | 968k | { return this->arrayZ != o.arrayZ || this->length != o.length; } |
|
109 | | |
110 | | /* Faster range-based for loop without bounds-check. */ |
111 | 9.02M | Type *begin () const { return arrayZ; } hb_array_t<hb_serialize_context_t::object_t* const>::begin() const Line | Count | Source | 111 | 99.2k | Type *begin () const { return arrayZ; } |
hb_array_t<hb_hashmap_t<hb_serialize_context_t::object_t const*, unsigned int, false>::item_t>::begin() const Line | Count | Source | 111 | 37.3k | Type *begin () const { return arrayZ; } |
hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::begin() const Line | Count | Source | 111 | 5.35M | Type *begin () const { return arrayZ; } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::unique_ptr<hb_set_t>, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb::shared_ptr<hb_map_t>, unsigned int, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::shared_ptr<hb_set_t>, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, OT::Feature const*, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_pair_t<unsigned int, int>, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::begin() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const>::begin() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_set_t, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<OT::LookupRecord const>::begin() const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::begin() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::begin() const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 3u> const>::begin() const Unexecuted instantiation: hb_array_t<OT::NoVariable<OT::ColorStop> const>::begin() const Unexecuted instantiation: hb_array_t<OT::Variable<OT::ColorStop> const>::begin() const Unexecuted instantiation: hb_array_t<OT::BaseGlyphRecord const>::begin() const hb_array_t<OT::LayerRecord const>::begin() const Line | Count | Source | 111 | 1.68k | Type *begin () const { return arrayZ; } |
Unexecuted instantiation: hb_array_t<OT::glyf_impl::SubsetGlyph>::begin() const Unexecuted instantiation: hb_array_t<OT::BitmapSizeTable const>::begin() const Unexecuted instantiation: hb_array_t<OT::Index const>::begin() const Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::begin() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, unsigned int, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<OT::NameRecord>::begin() const Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const>::begin() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::begin() const Unexecuted instantiation: hb_array_t<OT::MathGlyphPartRecord const>::begin() const Unexecuted instantiation: hb_array_t<OT::MathGlyphVariantRecord const>::begin() const hb_array_t<hb_ot_map_t::lookup_map_t const>::begin() const Line | Count | Source | 111 | 3.52M | Type *begin () const { return arrayZ; } |
|
112 | 9.02M | Type *end () const { return arrayZ + length; } hb_array_t<hb_serialize_context_t::object_t* const>::end() const Line | Count | Source | 112 | 99.2k | Type *end () const { return arrayZ + length; } |
hb_array_t<hb_hashmap_t<hb_serialize_context_t::object_t const*, unsigned int, false>::item_t>::end() const Line | Count | Source | 112 | 37.3k | Type *end () const { return arrayZ + length; } |
hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::end() const Line | Count | Source | 112 | 5.35M | Type *end () const { return arrayZ + length; } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::unique_ptr<hb_set_t>, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb::shared_ptr<hb_map_t>, unsigned int, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::shared_ptr<hb_set_t>, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, OT::Feature const*, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_pair_t<unsigned int, int>, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::end() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const>::end() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_set_t, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<OT::LookupRecord const>::end() const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::end() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::end() const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 3u> const>::end() const Unexecuted instantiation: hb_array_t<OT::NoVariable<OT::ColorStop> const>::end() const Unexecuted instantiation: hb_array_t<OT::Variable<OT::ColorStop> const>::end() const Unexecuted instantiation: hb_array_t<OT::BaseGlyphRecord const>::end() const hb_array_t<OT::LayerRecord const>::end() const Line | Count | Source | 112 | 1.68k | Type *end () const { return arrayZ + length; } |
Unexecuted instantiation: hb_array_t<OT::glyf_impl::SubsetGlyph>::end() const Unexecuted instantiation: hb_array_t<OT::BitmapSizeTable const>::end() const Unexecuted instantiation: hb_array_t<OT::Index const>::end() const Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::end() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, unsigned int, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<OT::NameRecord>::end() const Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const>::end() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::end() const Unexecuted instantiation: hb_array_t<OT::MathGlyphPartRecord const>::end() const Unexecuted instantiation: hb_array_t<OT::MathGlyphVariantRecord const>::end() const hb_array_t<hb_ot_map_t::lookup_map_t const>::end() const Line | Count | Source | 112 | 3.52M | Type *end () const { return arrayZ + length; } |
|
113 | | |
114 | | |
115 | | /* Extra operators. |
116 | | */ |
117 | 31.1M | Type * operator & () const { return arrayZ; } hb_array_t<AAT::Feature const>::operator&() const Line | Count | Source | 117 | 657k | Type * operator & () const { return arrayZ; } |
Unexecuted instantiation: hb_array_t<OT::Index const>::operator&() const hb_array_t<OT::HBGlyphID16 const>::operator&() const Line | Count | Source | 117 | 822k | Type * operator & () const { return arrayZ; } |
hb_array_t<OT::HBGlyphID24 const>::operator&() const Line | Count | Source | 117 | 33.2k | Type * operator & () const { return arrayZ; } |
hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::operator&() const Line | Count | Source | 117 | 11.7M | Type * operator & () const { return arrayZ; } |
hb_array_t<OT::IntType<unsigned short, 2u> const>::operator&() const Line | Count | Source | 117 | 16.6M | Type * operator & () const { return arrayZ; } |
hb_array_t<OT::IntType<unsigned int, 3u> const>::operator&() const Line | Count | Source | 117 | 985k | Type * operator & () const { return arrayZ; } |
Unexecuted instantiation: hb_array_t<char const>::operator&() const hb_array_t<OT::AxisRecord const>::operator&() const Line | Count | Source | 117 | 39.1k | Type * operator & () const { return arrayZ; } |
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::operator&() const hb_array_t<unsigned char const>::operator&() const Line | Count | Source | 117 | 94.5k | Type * operator & () const { return arrayZ; } |
hb_array_t<OT::IntType<short, 2u> const>::operator&() const Line | Count | Source | 117 | 32.9k | Type * operator & () const { return arrayZ; } |
hb_array_t<OT::IntType<unsigned char, 1u> const>::operator&() const Line | Count | Source | 117 | 65.8k | Type * operator & () const { return arrayZ; } |
|
118 | 155M | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } hb_array_t<hb_ot_map_t::lookup_map_t>::operator hb_array_t<hb_ot_map_t::lookup_map_t const>() Line | Count | Source | 118 | 51.8k | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } |
Unexecuted instantiation: hb_array_t<hb_serialize_context_t::object_t::link_t>::operator hb_array_t<hb_serialize_context_t::object_t::link_t const>() hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t*>::operator hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>() Line | Count | Source | 118 | 34.9k | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } |
hb_array_t<hb_serialize_context_t::object_t*>::operator hb_array_t<hb_serialize_context_t::object_t* const>() Line | Count | Source | 118 | 99.2k | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } |
hb_array_t<unsigned int>::operator hb_array_t<unsigned int const>() Line | Count | Source | 118 | 36.9k | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } |
Unexecuted instantiation: hb_array_t<hb_inc_bimap_t>::operator hb_array_t<hb_inc_bimap_t const>() hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t>::operator hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>() Line | Count | Source | 118 | 154M | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } |
Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> >::operator hb_array_t<hb_pair_t<unsigned int, unsigned int> const>() Unexecuted instantiation: hb_array_t<OT::LayerRecord>::operator hb_array_t<OT::LayerRecord const>() Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> >::operator hb_array_t<hb_array_t<unsigned char const> const>() hb_array_t<OT::HBGlyphID16>::operator hb_array_t<OT::HBGlyphID16 const>() Line | Count | Source | 118 | 36.9k | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } |
|
119 | | template <typename T> operator T * () const { return arrayZ; } |
120 | | |
121 | | HB_INTERNAL bool operator == (const hb_array_t &o) const; |
122 | | |
123 | | uint32_t hash () const |
124 | | { |
125 | | uint32_t current = 0; |
126 | | for (auto &v : *this) |
127 | | current = current * 31 + hb_hash (v); |
128 | | return current; |
129 | | } |
130 | | |
131 | | /* |
132 | | * Compare, Sort, and Search. |
133 | | */ |
134 | | |
135 | | /* Note: our compare is NOT lexicographic; it also does NOT call Type::cmp. */ |
136 | | int cmp (const hb_array_t &a) const |
137 | 114M | { |
138 | 114M | if (length != a.length) |
139 | 48.9M | return (int) a.length - (int) length; |
140 | 65.3M | return hb_memcmp (a.arrayZ, arrayZ, get_size ()); |
141 | 114M | } |
142 | | HB_INTERNAL static int cmp (const void *pa, const void *pb) |
143 | | { |
144 | | hb_array_t *a = (hb_array_t *) pa; |
145 | | hb_array_t *b = (hb_array_t *) pb; |
146 | | return b->cmp (*a); |
147 | | } |
148 | | |
149 | | template <typename T> |
150 | | Type *lsearch (const T &x, Type *not_found = nullptr) |
151 | 20.5M | { |
152 | 20.5M | unsigned i; |
153 | 20.5M | return lfind (x, &i) ? &this->arrayZ[i] : not_found; |
154 | 20.5M | } hb_user_data_array_t::hb_user_data_item_t* hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::lsearch<hb_user_data_key_t*>(hb_user_data_key_t* const&, hb_user_data_array_t::hb_user_data_item_t*) Line | Count | Source | 151 | 9.54M | { | 152 | 9.54M | unsigned i; | 153 | 9.54M | return lfind (x, &i) ? &this->arrayZ[i] : not_found; | 154 | 9.54M | } |
hb_user_data_array_t::hb_user_data_item_t* hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::lsearch<hb_user_data_array_t::hb_user_data_item_t>(hb_user_data_array_t::hb_user_data_item_t const&, hb_user_data_array_t::hb_user_data_item_t*) Line | Count | Source | 151 | 5.25M | { | 152 | 5.25M | unsigned i; | 153 | 5.25M | return lfind (x, &i) ? &this->arrayZ[i] : not_found; | 154 | 5.25M | } |
hb_aat_map_builder_t::feature_info_t* hb_array_t<hb_aat_map_builder_t::feature_info_t>::lsearch<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, hb_aat_map_builder_t::feature_info_t*) Line | Count | Source | 151 | 367k | { | 152 | 367k | unsigned i; | 153 | 367k | return lfind (x, &i) ? &this->arrayZ[i] : not_found; | 154 | 367k | } |
OT::DataMap const* hb_array_t<OT::DataMap const>::lsearch<unsigned int>(unsigned int const&, OT::DataMap const*) Line | Count | Source | 151 | 5.37M | { | 152 | 5.37M | unsigned i; | 153 | 5.37M | return lfind (x, &i) ? &this->arrayZ[i] : not_found; | 154 | 5.37M | } |
|
155 | | template <typename T> |
156 | | const Type *lsearch (const T &x, const Type *not_found = nullptr) const |
157 | | { |
158 | | unsigned i; |
159 | | return lfind (x, &i) ? &this->arrayZ[i] : not_found; |
160 | | } |
161 | | template <typename T> |
162 | | bool lfind (const T &x, unsigned *pos = nullptr, |
163 | | hb_not_found_t not_found = HB_NOT_FOUND_DONT_STORE, |
164 | | unsigned int to_store = (unsigned int) -1) const |
165 | 220M | { |
166 | 363M | for (unsigned i = 0; i < length; ++i) |
167 | 155M | if (hb_equal (x, this->arrayZ[i])) |
168 | 12.2M | { |
169 | 12.2M | if (pos) |
170 | 12.2M | *pos = i; |
171 | 12.2M | return true; |
172 | 12.2M | } |
173 | | |
174 | 208M | if (pos) |
175 | 208M | { |
176 | 208M | switch (not_found) |
177 | 208M | { |
178 | 11.0M | case HB_NOT_FOUND_DONT_STORE: |
179 | 11.0M | break; |
180 | | |
181 | 196M | case HB_NOT_FOUND_STORE: |
182 | 196M | *pos = to_store; |
183 | 196M | break; |
184 | | |
185 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: |
186 | 0 | *pos = length; |
187 | 0 | break; |
188 | 208M | } |
189 | 208M | } |
190 | 208M | return false; |
191 | 208M | } bool hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::lfind<hb_user_data_key_t*>(hb_user_data_key_t* const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 165 | 9.54M | { | 166 | 9.54M | for (unsigned i = 0; i < length; ++i) | 167 | 9.52M | if (hb_equal (x, this->arrayZ[i])) | 168 | 9.52M | { | 169 | 9.52M | if (pos) | 170 | 9.52M | *pos = i; | 171 | 9.52M | return true; | 172 | 9.52M | } | 173 | | | 174 | 18.6k | if (pos) | 175 | 18.6k | { | 176 | 18.6k | switch (not_found) | 177 | 18.6k | { | 178 | 18.6k | case HB_NOT_FOUND_DONT_STORE: | 179 | 18.6k | break; | 180 | | | 181 | 0 | case HB_NOT_FOUND_STORE: | 182 | 0 | *pos = to_store; | 183 | 0 | break; | 184 | | | 185 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 186 | 0 | *pos = length; | 187 | 0 | break; | 188 | 18.6k | } | 189 | 18.6k | } | 190 | 18.6k | return false; | 191 | 18.6k | } |
bool hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::lfind<hb_user_data_array_t::hb_user_data_item_t>(hb_user_data_array_t::hb_user_data_item_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 165 | 5.25M | { | 166 | 5.25M | for (unsigned i = 0; i < length; ++i) | 167 | 0 | if (hb_equal (x, this->arrayZ[i])) | 168 | 0 | { | 169 | 0 | if (pos) | 170 | 0 | *pos = i; | 171 | 0 | return true; | 172 | 0 | } | 173 | | | 174 | 5.25M | if (pos) | 175 | 5.25M | { | 176 | 5.25M | switch (not_found) | 177 | 5.25M | { | 178 | 5.25M | case HB_NOT_FOUND_DONT_STORE: | 179 | 5.25M | break; | 180 | | | 181 | 0 | case HB_NOT_FOUND_STORE: | 182 | 0 | *pos = to_store; | 183 | 0 | break; | 184 | | | 185 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 186 | 0 | *pos = length; | 187 | 0 | break; | 188 | 5.25M | } | 189 | 5.25M | } | 190 | 5.25M | return false; | 191 | 5.25M | } |
bool hb_array_t<hb_aat_map_builder_t::feature_info_t>::lfind<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 165 | 367k | { | 166 | 367k | for (unsigned i = 0; i < length; ++i) | 167 | 0 | if (hb_equal (x, this->arrayZ[i])) | 168 | 0 | { | 169 | 0 | if (pos) | 170 | 0 | *pos = i; | 171 | 0 | return true; | 172 | 0 | } | 173 | | | 174 | 367k | if (pos) | 175 | 367k | { | 176 | 367k | switch (not_found) | 177 | 367k | { | 178 | 367k | case HB_NOT_FOUND_DONT_STORE: | 179 | 367k | break; | 180 | | | 181 | 0 | case HB_NOT_FOUND_STORE: | 182 | 0 | *pos = to_store; | 183 | 0 | break; | 184 | | | 185 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 186 | 0 | *pos = length; | 187 | 0 | break; | 188 | 367k | } | 189 | 367k | } | 190 | 367k | return false; | 191 | 367k | } |
bool hb_array_t<OT::TableRecord const>::lfind<OT::Tag>(OT::Tag const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 165 | 199M | { | 166 | 343M | for (unsigned i = 0; i < length; ++i) | 167 | 146M | if (hb_equal (x, this->arrayZ[i])) | 168 | 2.77M | { | 169 | 2.77M | if (pos) | 170 | 2.77M | *pos = i; | 171 | 2.77M | return true; | 172 | 2.77M | } | 173 | | | 174 | 196M | if (pos) | 175 | 196M | { | 176 | 196M | switch (not_found) | 177 | 196M | { | 178 | 0 | case HB_NOT_FOUND_DONT_STORE: | 179 | 0 | break; | 180 | | | 181 | 196M | case HB_NOT_FOUND_STORE: | 182 | 196M | *pos = to_store; | 183 | 196M | break; | 184 | | | 185 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 186 | 0 | *pos = length; | 187 | 0 | break; | 188 | 196M | } | 189 | 196M | } | 190 | 196M | return false; | 191 | 196M | } |
Unexecuted instantiation: bool hb_array_t<OT::AxisRecord const>::lfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const bool hb_array_t<OT::DataMap const>::lfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 165 | 5.37M | { | 166 | 5.37M | for (unsigned i = 0; i < length; ++i) | 167 | 1.59k | if (hb_equal (x, this->arrayZ[i])) | 168 | 1.05k | { | 169 | 1.05k | if (pos) | 170 | 1.05k | *pos = i; | 171 | 1.05k | return true; | 172 | 1.05k | } | 173 | | | 174 | 5.37M | if (pos) | 175 | 5.37M | { | 176 | 5.37M | switch (not_found) | 177 | 5.37M | { | 178 | 5.37M | case HB_NOT_FOUND_DONT_STORE: | 179 | 5.37M | break; | 180 | | | 181 | 0 | case HB_NOT_FOUND_STORE: | 182 | 0 | *pos = to_store; | 183 | 0 | break; | 184 | | | 185 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 186 | 0 | *pos = length; | 187 | 0 | break; | 188 | 5.37M | } | 189 | 5.37M | } | 190 | 5.37M | return false; | 191 | 5.37M | } |
Unexecuted instantiation: bool hb_array_t<OT::StatAxisRecord const>::lfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const |
192 | | |
193 | | hb_sorted_array_t<Type> qsort (int (*cmp_)(const void*, const void*)) |
194 | 12.1M | { |
195 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); |
196 | 12.1M | if (likely (length)) |
197 | 6.69M | hb_qsort (arrayZ, length, this->get_item_size (), cmp_); |
198 | 12.1M | return hb_sorted_array_t<Type> (*this); |
199 | 12.1M | } Unexecuted instantiation: hb_array_t<unsigned int>::qsort(int (*)(void const*, void const*)) hb_array_t<hb_aat_map_builder_t::feature_event_t>::qsort(int (*)(void const*, void const*)) Line | Count | Source | 194 | 379k | { | 195 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); | 196 | 379k | if (likely (length)) | 197 | 0 | hb_qsort (arrayZ, length, this->get_item_size (), cmp_); | 198 | 379k | return hb_sorted_array_t<Type> (*this); | 199 | 379k | } |
Unexecuted instantiation: hb_array_t<hb_aat_map_builder_t::feature_info_t>::qsort(int (*)(void const*, void const*)) hb_array_t<OT::cff1::accelerator_t::gname_t>::qsort(int (*)(void const*, void const*)) Line | Count | Source | 194 | 27.9k | { | 195 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); | 196 | 27.9k | if (likely (length)) | 197 | 27.9k | hb_qsort (arrayZ, length, this->get_item_size (), cmp_); | 198 | 27.9k | return hb_sorted_array_t<Type> (*this); | 199 | 27.9k | } |
hb_array_t<hb_ot_name_entry_t>::qsort(int (*)(void const*, void const*)) Line | Count | Source | 194 | 5.23M | { | 195 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); | 196 | 5.23M | if (likely (length)) | 197 | 103k | hb_qsort (arrayZ, length, this->get_item_size (), cmp_); | 198 | 5.23M | return hb_sorted_array_t<Type> (*this); | 199 | 5.23M | } |
hb_array_t<hb_ot_map_builder_t::feature_info_t>::qsort(int (*)(void const*, void const*)) Line | Count | Source | 194 | 6.56M | { | 195 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); | 196 | 6.56M | if (likely (length)) | 197 | 6.56M | hb_qsort (arrayZ, length, this->get_item_size (), cmp_); | 198 | 6.56M | return hb_sorted_array_t<Type> (*this); | 199 | 6.56M | } |
|
200 | | hb_sorted_array_t<Type> qsort () |
201 | 311k | { |
202 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); |
203 | 311k | if (likely (length)) |
204 | 311k | hb_qsort (arrayZ, length, this->get_item_size (), Type::cmp); |
205 | 311k | return hb_sorted_array_t<Type> (*this); |
206 | 311k | } Unexecuted instantiation: hb_array_t<OT::NameRecord>::qsort() hb_array_t<hb_ot_map_t::lookup_map_t>::qsort() Line | Count | Source | 201 | 311k | { | 202 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); | 203 | 311k | if (likely (length)) | 204 | 311k | hb_qsort (arrayZ, length, this->get_item_size (), Type::cmp); | 205 | 311k | return hb_sorted_array_t<Type> (*this); | 206 | 311k | } |
|
207 | | |
208 | | /* |
209 | | * Other methods. |
210 | | */ |
211 | | |
212 | 96.9M | unsigned int get_size () const { return length * this->get_item_size (); } hb_array_t<AAT::Feature const>::get_size() const Line | Count | Source | 212 | 657k | unsigned int get_size () const { return length * this->get_item_size (); } |
hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::get_size() const Line | Count | Source | 212 | 11.7M | unsigned int get_size () const { return length * this->get_item_size (); } |
hb_array_t<OT::IntType<unsigned short, 2u> const>::get_size() const Line | Count | Source | 212 | 16.6M | unsigned int get_size () const { return length * this->get_item_size (); } |
hb_array_t<OT::IntType<unsigned int, 3u> const>::get_size() const Line | Count | Source | 212 | 985k | unsigned int get_size () const { return length * this->get_item_size (); } |
Unexecuted instantiation: hb_array_t<OT::LayerRecord const>::get_size() const hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::get_size() const Line | Count | Source | 212 | 1.31M | unsigned int get_size () const { return length * this->get_item_size (); } |
hb_array_t<OT::contour_point_t>::get_size() const Line | Count | Source | 212 | 88.1k | unsigned int get_size () const { return length * this->get_item_size (); } |
hb_array_t<char const>::get_size() const Line | Count | Source | 212 | 65.3M | unsigned int get_size () const { return length * this->get_item_size (); } |
hb_array_t<OT::AxisRecord const>::get_size() const Line | Count | Source | 212 | 39.1k | unsigned int get_size () const { return length * this->get_item_size (); } |
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::get_size() const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> const>::get_size() const Unexecuted instantiation: hb_array_t<OT::Index const>::get_size() const hb_array_t<OT::IntType<unsigned char, 1u> const>::get_size() const Line | Count | Source | 212 | 65.8k | unsigned int get_size () const { return length * this->get_item_size (); } |
Unexecuted instantiation: hb_array_t<unsigned char const>::get_size() const hb_array_t<OT::IntType<short, 2u> const>::get_size() const Line | Count | Source | 212 | 32.9k | unsigned int get_size () const { return length * this->get_item_size (); } |
|
213 | | |
214 | | /* |
215 | | * Reverse the order of items in this array in the range [start, end). |
216 | | */ |
217 | | void reverse (unsigned start = 0, unsigned end = -1) |
218 | 1.16M | { |
219 | 1.16M | start = hb_min (start, length); |
220 | 1.16M | end = hb_min (end, length); |
221 | | |
222 | 1.16M | if (end < start + 2) |
223 | 820k | return; |
224 | | |
225 | 113M | for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--) |
226 | 113M | hb_swap (arrayZ[rhs], arrayZ[lhs]); |
227 | 345k | } hb_array_t<hb_glyph_info_t>::reverse(unsigned int, unsigned int) Line | Count | Source | 218 | 1.06M | { | 219 | 1.06M | start = hb_min (start, length); | 220 | 1.06M | end = hb_min (end, length); | 221 | | | 222 | 1.06M | if (end < start + 2) | 223 | 801k | return; | 224 | | | 225 | 111M | for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--) | 226 | 110M | hb_swap (arrayZ[rhs], arrayZ[lhs]); | 227 | 268k | } |
hb_array_t<hb_glyph_position_t>::reverse(unsigned int, unsigned int) Line | Count | Source | 218 | 95.7k | { | 219 | 95.7k | start = hb_min (start, length); | 220 | 95.7k | end = hb_min (end, length); | 221 | | | 222 | 95.7k | if (end < start + 2) | 223 | 19.0k | return; | 224 | | | 225 | 2.40M | for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--) | 226 | 2.33M | hb_swap (arrayZ[rhs], arrayZ[lhs]); | 227 | 76.6k | } |
Unexecuted instantiation: hb_array_t<OT::VariationSelectorRecord>::reverse(unsigned int, unsigned int) |
228 | | |
229 | | hb_array_t sub_array (unsigned int start_offset = 0, unsigned int *seg_count = nullptr /* IN/OUT */) const |
230 | 77.1M | { |
231 | 77.1M | if (!start_offset && !seg_count) |
232 | 307k | return *this; |
233 | | |
234 | 76.8M | unsigned int count = length; |
235 | 76.8M | if (unlikely (start_offset > count)) |
236 | 91.3k | count = 0; |
237 | 76.7M | else |
238 | 76.7M | count -= start_offset; |
239 | 76.8M | if (seg_count) |
240 | 74.9M | count = *seg_count = hb_min (count, *seg_count); |
241 | 76.8M | return hb_array_t (arrayZ + start_offset, count); |
242 | 77.1M | } hb_array_t<AAT::FeatureName const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 5.37M | { | 231 | 5.37M | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 5.37M | unsigned int count = length; | 235 | 5.37M | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 5.37M | else | 238 | 5.37M | count -= start_offset; | 239 | 5.37M | if (seg_count) | 240 | 5.37M | count = *seg_count = hb_min (count, *seg_count); | 241 | 5.37M | return hb_array_t (arrayZ + start_offset, count); | 242 | 5.37M | } |
hb_array_t<AAT::SettingName const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 5.37M | { | 231 | 5.37M | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 5.37M | unsigned int count = length; | 235 | 5.37M | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 5.37M | else | 238 | 5.37M | count -= start_offset; | 239 | 5.37M | if (seg_count) | 240 | 5.37M | count = *seg_count = hb_min (count, *seg_count); | 241 | 5.37M | return hb_array_t (arrayZ + start_offset, count); | 242 | 5.37M | } |
hb_array_t<hb_ot_map_t::lookup_map_t const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 51.8k | { | 231 | 51.8k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 51.8k | unsigned int count = length; | 235 | 51.8k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 51.8k | else | 238 | 51.8k | count -= start_offset; | 239 | 51.8k | if (seg_count) | 240 | 51.8k | count = *seg_count = hb_min (count, *seg_count); | 241 | 51.8k | return hb_array_t (arrayZ + start_offset, count); | 242 | 51.8k | } |
hb_array_t<OT::Index const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 34.0M | { | 231 | 34.0M | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 34.0M | unsigned int count = length; | 235 | 34.0M | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 34.0M | else | 238 | 34.0M | count -= start_offset; | 239 | 34.0M | if (seg_count) | 240 | 34.0M | count = *seg_count = hb_min (count, *seg_count); | 241 | 34.0M | return hb_array_t (arrayZ + start_offset, count); | 242 | 34.0M | } |
hb_array_t<OT::IntType<unsigned int, 3u> const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 5.37M | { | 231 | 5.37M | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 5.37M | unsigned int count = length; | 235 | 5.37M | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 5.37M | else | 238 | 5.37M | count -= start_offset; | 239 | 5.37M | if (seg_count) | 240 | 5.37M | count = *seg_count = hb_min (count, *seg_count); | 241 | 5.37M | return hb_array_t (arrayZ + start_offset, count); | 242 | 5.37M | } |
Unexecuted instantiation: hb_array_t<OT::Record<OT::LangSys> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::Record<OT::Script> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::sub_array(unsigned int, unsigned int*) const hb_array_t<OT::LayerRecord const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 5.37M | { | 231 | 5.37M | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 5.37M | unsigned int count = length; | 235 | 5.37M | if (unlikely (start_offset > count)) | 236 | 231 | count = 0; | 237 | 5.37M | else | 238 | 5.37M | count -= start_offset; | 239 | 5.37M | if (seg_count) | 240 | 5.37M | count = *seg_count = hb_min (count, *seg_count); | 241 | 5.37M | return hb_array_t (arrayZ + start_offset, count); | 242 | 5.37M | } |
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 729k | { | 231 | 729k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 729k | unsigned int count = length; | 235 | 729k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 729k | else | 238 | 729k | count -= start_offset; | 239 | 729k | if (seg_count) | 240 | 729k | count = *seg_count = hb_min (count, *seg_count); | 241 | 729k | return hb_array_t (arrayZ + start_offset, count); | 242 | 729k | } |
hb_array_t<char const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 659k | { | 231 | 659k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 659k | unsigned int count = length; | 235 | 659k | if (unlikely (start_offset > count)) | 236 | 55.7k | count = 0; | 237 | 603k | else | 238 | 603k | count -= start_offset; | 239 | 659k | if (seg_count) | 240 | 659k | count = *seg_count = hb_min (count, *seg_count); | 241 | 659k | return hb_array_t (arrayZ + start_offset, count); | 242 | 659k | } |
hb_array_t<OT::contour_point_t>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 5.92M | { | 231 | 5.92M | if (!start_offset && !seg_count) | 232 | 307k | return *this; | 233 | | | 234 | 5.61M | unsigned int count = length; | 235 | 5.61M | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 5.61M | else | 238 | 5.61M | count -= start_offset; | 239 | 5.61M | if (seg_count) | 240 | 3.65M | count = *seg_count = hb_min (count, *seg_count); | 241 | 5.61M | return hb_array_t (arrayZ + start_offset, count); | 242 | 5.92M | } |
Unexecuted instantiation: hb_array_t<OT::TableRecord const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::AxisRecord const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::sub_array(unsigned int, unsigned int*) const hb_array_t<OT::IntType<unsigned int, 4u> const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 128k | { | 231 | 128k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 128k | unsigned int count = length; | 235 | 128k | if (unlikely (start_offset > count)) | 236 | 35.3k | count = 0; | 237 | 93.3k | else | 238 | 93.3k | count -= start_offset; | 239 | 128k | if (seg_count) | 240 | 128k | count = *seg_count = hb_min (count, *seg_count); | 241 | 128k | return hb_array_t (arrayZ + start_offset, count); | 242 | 128k | } |
hb_array_t<unsigned char const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 1.25M | { | 231 | 1.25M | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 1.25M | unsigned int count = length; | 235 | 1.25M | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 1.25M | else | 238 | 1.25M | count -= start_offset; | 239 | 1.25M | if (seg_count) | 240 | 1.25M | count = *seg_count = hb_min (count, *seg_count); | 241 | 1.25M | return hb_array_t (arrayZ + start_offset, count); | 242 | 1.25M | } |
Unexecuted instantiation: hb_array_t<OT::DataMap const>::sub_array(unsigned int, unsigned int*) const hb_array_t<OT::HBGlyphID16 const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 407k | { | 231 | 407k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 407k | unsigned int count = length; | 235 | 407k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 407k | else | 238 | 407k | count -= start_offset; | 239 | 407k | if (seg_count) | 240 | 407k | count = *seg_count = hb_min (count, *seg_count); | 241 | 407k | return hb_array_t (arrayZ + start_offset, count); | 242 | 407k | } |
hb_array_t<unsigned int const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 106k | { | 231 | 106k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 106k | unsigned int count = length; | 235 | 106k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 106k | else | 238 | 106k | count -= start_offset; | 239 | 106k | if (seg_count) | 240 | 106k | count = *seg_count = hb_min (count, *seg_count); | 241 | 106k | return hb_array_t (arrayZ + start_offset, count); | 242 | 106k | } |
Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::sub_array(unsigned int, unsigned int*) const hb_array_t<OT::MathGlyphVariantRecord const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 5.37M | { | 231 | 5.37M | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 5.37M | unsigned int count = length; | 235 | 5.37M | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 5.37M | else | 238 | 5.37M | count -= start_offset; | 239 | 5.37M | if (seg_count) | 240 | 5.37M | count = *seg_count = hb_min (count, *seg_count); | 241 | 5.37M | return hb_array_t (arrayZ + start_offset, count); | 242 | 5.37M | } |
hb_array_t<OT::MathGlyphPartRecord const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 5.37M | { | 231 | 5.37M | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 5.37M | unsigned int count = length; | 235 | 5.37M | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 5.37M | else | 238 | 5.37M | count -= start_offset; | 239 | 5.37M | if (seg_count) | 240 | 5.37M | count = *seg_count = hb_min (count, *seg_count); | 241 | 5.37M | return hb_array_t (arrayZ + start_offset, count); | 242 | 5.37M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::sub_array(unsigned int, unsigned int*) const hb_array_t<CFF::number_t const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 1.29M | { | 231 | 1.29M | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 1.29M | unsigned int count = length; | 235 | 1.29M | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 1.29M | else | 238 | 1.29M | count -= start_offset; | 239 | 1.29M | if (seg_count) | 240 | 1.29M | count = *seg_count = hb_min (count, *seg_count); | 241 | 1.29M | return hb_array_t (arrayZ + start_offset, count); | 242 | 1.29M | } |
hb_array_t<hb_ot_map_t::lookup_map_t>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 311k | { | 231 | 311k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 311k | unsigned int count = length; | 235 | 311k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 311k | else | 238 | 311k | count -= start_offset; | 239 | 311k | if (seg_count) | 240 | 311k | count = *seg_count = hb_min (count, *seg_count); | 241 | 311k | return hb_array_t (arrayZ + start_offset, count); | 242 | 311k | } |
|
243 | | hb_array_t sub_array (unsigned int start_offset, unsigned int seg_count) const |
244 | 13.9M | { return sub_array (start_offset, &seg_count); } hb_array_t<hb_ot_map_t::lookup_map_t const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 51.8k | { return sub_array (start_offset, &seg_count); } |
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::sub_array(unsigned int, unsigned int) const hb_array_t<OT::LayerRecord const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 5.37M | { return sub_array (start_offset, &seg_count); } |
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 729k | { return sub_array (start_offset, &seg_count); } |
hb_array_t<char const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 659k | { return sub_array (start_offset, &seg_count); } |
hb_array_t<OT::contour_point_t>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 3.65M | { return sub_array (start_offset, &seg_count); } |
hb_array_t<OT::IntType<unsigned int, 4u> const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 64.5k | { return sub_array (start_offset, &seg_count); } |
hb_array_t<unsigned char const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 1.25M | { return sub_array (start_offset, &seg_count); } |
hb_array_t<OT::HBGlyphID16 const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 407k | { return sub_array (start_offset, &seg_count); } |
hb_array_t<unsigned int const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 106k | { return sub_array (start_offset, &seg_count); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::sub_array(unsigned int, unsigned int) const hb_array_t<CFF::number_t const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 1.29M | { return sub_array (start_offset, &seg_count); } |
hb_array_t<hb_ot_map_t::lookup_map_t>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 311k | { return sub_array (start_offset, &seg_count); } |
|
245 | | |
246 | | hb_array_t truncate (unsigned length) const { return sub_array (0, length); } |
247 | | |
248 | | template <typename T, |
249 | | unsigned P = sizeof (Type), |
250 | | hb_enable_if (P == 1)> |
251 | | const T *as () const |
252 | 2.27G | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } OT::GDEF const* hb_array_t<char const>::as<OT::GDEF, 1u, (void*)0>() const Line | Count | Source | 252 | 224M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::ltag const* hb_array_t<char const>::as<AAT::ltag, 1u, (void*)0>() const Line | Count | Source | 252 | 1.99M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::morx const* hb_array_t<char const>::as<AAT::morx, 1u, (void*)0>() const Line | Count | Source | 252 | 7.31M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::mort const* hb_array_t<char const>::as<AAT::mort, 1u, (void*)0>() const Line | Count | Source | 252 | 6.77M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::kerx const* hb_array_t<char const>::as<AAT::kerx, 1u, (void*)0>() const Line | Count | Source | 252 | 6.69M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::ankr const* hb_array_t<char const>::as<AAT::ankr, 1u, (void*)0>() const Line | Count | Source | 252 | 126k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::trak const* hb_array_t<char const>::as<AAT::trak, 1u, (void*)0>() const Line | Count | Source | 252 | 6.56M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::feat const* hb_array_t<char const>::as<AAT::feat, 1u, (void*)0>() const Line | Count | Source | 252 | 16.1M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::Layout::GPOS const* hb_array_t<char const>::as<OT::Layout::GPOS, 1u, (void*)0>() const Line | Count | Source | 252 | 376M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::maxp const* hb_array_t<char const>::as<OT::maxp, 1u, (void*)0>() const Line | Count | Source | 252 | 15.4M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::head const* hb_array_t<char const>::as<OT::head, 1u, (void*)0>() const Line | Count | Source | 252 | 15.4M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::MVAR const* hb_array_t<char const>::as<OT::MVAR, 1u, (void*)0>() const Line | Count | Source | 252 | 17.3M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::cmap const* hb_array_t<char const>::as<OT::cmap, 1u, (void*)0>() const Line | Count | Source | 252 | 10.4M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::OS2 const* hb_array_t<char const>::as<OT::OS2, 1u, (void*)0>() const Line | Count | Source | 252 | 17.4M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::COLR const* hb_array_t<char const>::as<OT::COLR, 1u, (void*)0>() const Line | Count | Source | 252 | 16.8M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::hhea const* hb_array_t<char const>::as<OT::hhea, 1u, (void*)0>() const Line | Count | Source | 252 | 22.7M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::vhea const* hb_array_t<char const>::as<OT::vhea, 1u, (void*)0>() const Line | Count | Source | 252 | 4.98M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::GlyphVariationData const* hb_array_t<char const>::as<OT::GlyphVariationData, 1u, (void*)0>() const Line | Count | Source | 252 | 1.24M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::gvar const* hb_array_t<char const>::as<OT::gvar, 1u, (void*)0>() const Line | Count | Source | 252 | 4.58M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::hmtxvmtx<OT::hmtx, OT::hhea, OT::HVAR> const* hb_array_t<char const>::as<OT::hmtxvmtx<OT::hmtx, OT::hhea, OT::HVAR>, 1u, (void*)0>() const Line | Count | Source | 252 | 25.6M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::hmtxvmtx<OT::vmtx, OT::vhea, OT::VVAR> const* hb_array_t<char const>::as<OT::hmtxvmtx<OT::vmtx, OT::vhea, OT::VVAR>, 1u, (void*)0>() const Line | Count | Source | 252 | 61.4k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::glyf_impl::GlyphHeader const* hb_array_t<char const>::as<OT::glyf_impl::GlyphHeader, 1u, (void*)0>() const Line | Count | Source | 252 | 2.60M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::loca const* hb_array_t<char const>::as<OT::loca, 1u, (void*)0>() const Line | Count | Source | 252 | 1.96M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::glyf const* hb_array_t<char const>::as<OT::glyf, 1u, (void*)0>() const Line | Count | Source | 252 | 1.53M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::OpenTypeFontFile const* hb_array_t<char const>::as<OT::OpenTypeFontFile, 1u, (void*)0>() const Line | Count | Source | 252 | 202M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::fvar const* hb_array_t<char const>::as<OT::fvar, 1u, (void*)0>() const Line | Count | Source | 252 | 32.2M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::avar const* hb_array_t<char const>::as<OT::avar, 1u, (void*)0>() const Line | Count | Source | 252 | 16.1M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::SVG const* hb_array_t<char const>::as<OT::SVG, 1u, (void*)0>() const Line | Count | Source | 252 | 16.1M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::sbix const* hb_array_t<char const>::as<OT::sbix, 1u, (void*)0>() const Line | Count | Source | 252 | 16.8M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::CBLC const* hb_array_t<char const>::as<OT::CBLC, 1u, (void*)0>() const Line | Count | Source | 252 | 12.1M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::CBDT const* hb_array_t<char const>::as<OT::CBDT, 1u, (void*)0>() const Line | Count | Source | 252 | 753 | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::CPAL const* hb_array_t<char const>::as<OT::CPAL, 1u, (void*)0>() const Line | Count | Source | 252 | 32.8M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::sbix::accelerator_t::PNGHeader const* hb_array_t<char const>::as<OT::sbix::accelerator_t::PNGHeader, 1u, (void*)0>() const Line | Count | Source | 252 | 5.83k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::cff1 const* hb_array_t<char const>::as<OT::cff1, 1u, (void*)0>() const Line | Count | Source | 252 | 5.22M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::cff2 const* hb_array_t<char const>::as<OT::cff2, 1u, (void*)0>() const Line | Count | Source | 252 | 5.17M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::meta const* hb_array_t<char const>::as<OT::meta, 1u, (void*)0>() const Line | Count | Source | 252 | 10.7M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::name const* hb_array_t<char const>::as<OT::name, 1u, (void*)0>() const Line | Count | Source | 252 | 31.5M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::post const* hb_array_t<char const>::as<OT::post, 1u, (void*)0>() const Line | Count | Source | 252 | 5.38M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::Layout::GSUB const* hb_array_t<char const>::as<OT::Layout::GSUB, 1u, (void*)0>() const Line | Count | Source | 252 | 571M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::HVAR const* hb_array_t<char const>::as<OT::HVAR, 1u, (void*)0>() const Line | Count | Source | 252 | 115M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::VVAR const* hb_array_t<char const>::as<OT::VVAR, 1u, (void*)0>() const Line | Count | Source | 252 | 5.72k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::VORG const* hb_array_t<char const>::as<OT::VORG, 1u, (void*)0>() const Line | Count | Source | 252 | 5.37M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::kern const* hb_array_t<char const>::as<OT::kern, 1u, (void*)0>() const Line | Count | Source | 252 | 6.62M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::BASE const* hb_array_t<char const>::as<OT::BASE, 1u, (void*)0>() const Line | Count | Source | 252 | 5.37M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::MATH const* hb_array_t<char const>::as<OT::MATH, 1u, (void*)0>() const Line | Count | Source | 252 | 376M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
|
253 | | |
254 | | template <typename T, |
255 | | unsigned P = sizeof (Type), |
256 | | hb_enable_if (P == 1)> |
257 | | bool check_range (const T *p, unsigned int size = T::static_size) const |
258 | 13.1M | { |
259 | 13.1M | return arrayZ <= ((const char *) p) |
260 | 13.1M | && ((const char *) p) <= arrayZ + length |
261 | 13.1M | && (unsigned int) (arrayZ + length - (const char *) p) >= size; |
262 | 13.1M | } bool hb_array_t<char const>::check_range<OT::TupleVariationHeader, 1u, (void*)0>(OT::TupleVariationHeader const*, unsigned int) const Line | Count | Source | 258 | 1.68M | { | 259 | 1.68M | return arrayZ <= ((const char *) p) | 260 | 1.68M | && ((const char *) p) <= arrayZ + length | 261 | 1.68M | && (unsigned int) (arrayZ + length - (const char *) p) >= size; | 262 | 1.68M | } |
bool hb_array_t<char const>::check_range<OT::IntType<unsigned char, 1u>, 1u, (void*)0>(OT::IntType<unsigned char, 1u> const*, unsigned int) const Line | Count | Source | 258 | 315k | { | 259 | 315k | return arrayZ <= ((const char *) p) | 260 | 315k | && ((const char *) p) <= arrayZ + length | 261 | 315k | && (unsigned int) (arrayZ + length - (const char *) p) >= size; | 262 | 315k | } |
bool hb_array_t<char const>::check_range<OT::IntType<unsigned short, 2u>, 1u, (void*)0>(OT::IntType<unsigned short, 2u> const*, unsigned int) const Line | Count | Source | 258 | 389k | { | 259 | 389k | return arrayZ <= ((const char *) p) | 260 | 389k | && ((const char *) p) <= arrayZ + length | 261 | 389k | && (unsigned int) (arrayZ + length - (const char *) p) >= size; | 262 | 389k | } |
bool hb_array_t<char const>::check_range<OT::glyf_impl::CompositeGlyphRecord, 1u, (void*)0>(OT::glyf_impl::CompositeGlyphRecord const*, unsigned int) const Line | Count | Source | 258 | 4.54M | { | 259 | 4.54M | return arrayZ <= ((const char *) p) | 260 | 4.54M | && ((const char *) p) <= arrayZ + length | 261 | 4.54M | && (unsigned int) (arrayZ + length - (const char *) p) >= size; | 262 | 4.54M | } |
bool hb_array_t<char const>::check_range<OT::glyf_impl::VarCompositeGlyphRecord, 1u, (void*)0>(OT::glyf_impl::VarCompositeGlyphRecord const*, unsigned int) const Line | Count | Source | 258 | 6.22M | { | 259 | 6.22M | return arrayZ <= ((const char *) p) | 260 | 6.22M | && ((const char *) p) <= arrayZ + length | 261 | 6.22M | && (unsigned int) (arrayZ + length - (const char *) p) >= size; | 262 | 6.22M | } |
|
263 | | |
264 | | /* Only call if you allocated the underlying array using hb_malloc() or similar. */ |
265 | | void fini () |
266 | 0 | { hb_free ((void *) arrayZ); arrayZ = nullptr; length = 0; } |
267 | | |
268 | | template <typename hb_serialize_context_t, |
269 | | typename U = Type, |
270 | | hb_enable_if (!(sizeof (U) < sizeof (long long) && hb_is_trivially_copy_assignable(hb_decay<Type>)))> |
271 | | hb_array_t copy (hb_serialize_context_t *c) const |
272 | | { |
273 | | TRACE_SERIALIZE (this); |
274 | | auto* out = c->start_embed (arrayZ); |
275 | | if (unlikely (!c->extend_size (out, get_size (), false))) return_trace (hb_array_t ()); |
276 | | for (unsigned i = 0; i < length; i++) |
277 | | out[i] = arrayZ[i]; /* TODO: add version that calls c->copy() */ |
278 | | return_trace (hb_array_t (out, length)); |
279 | | } |
280 | | |
281 | | template <typename hb_serialize_context_t, |
282 | | typename U = Type, |
283 | | hb_enable_if (sizeof (U) < sizeof (long long) && hb_is_trivially_copy_assignable(hb_decay<Type>))> |
284 | | hb_array_t copy (hb_serialize_context_t *c) const |
285 | 0 | { |
286 | 0 | TRACE_SERIALIZE (this); |
287 | 0 | auto* out = c->start_embed (arrayZ); |
288 | 0 | if (unlikely (!c->extend_size (out, get_size (), false))) return_trace (hb_array_t ()); |
289 | 0 | hb_memcpy (out, arrayZ, get_size ()); |
290 | 0 | return_trace (hb_array_t (out, length)); |
291 | 0 | } Unexecuted instantiation: hb_array_t<OT::LayerRecord const> hb_array_t<OT::LayerRecord const>::copy<hb_serialize_context_t, OT::LayerRecord const, (void*)0>(hb_serialize_context_t*) const Unexecuted instantiation: hb_array_t<char const> hb_array_t<char const>::copy<hb_serialize_context_t, char const, (void*)0>(hb_serialize_context_t*) const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> const> hb_array_t<OT::IntType<unsigned int, 4u> const>::copy<hb_serialize_context_t, OT::IntType<unsigned int, 4u> const, (void*)0>(hb_serialize_context_t*) const Unexecuted instantiation: hb_array_t<OT::Index const> hb_array_t<OT::Index const>::copy<hb_serialize_context_t, OT::Index const, (void*)0>(hb_serialize_context_t*) const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned char, 1u> const> hb_array_t<OT::IntType<unsigned char, 1u> const>::copy<hb_serialize_context_t, OT::IntType<unsigned char, 1u> const, (void*)0>(hb_serialize_context_t*) const Unexecuted instantiation: hb_array_t<unsigned char const> hb_array_t<unsigned char const>::copy<hb_serialize_context_t, unsigned char const, (void*)0>(hb_serialize_context_t*) const |
292 | | |
293 | | template <typename hb_sanitize_context_t> |
294 | | bool sanitize (hb_sanitize_context_t *c) const |
295 | 655k | { return c->check_array (arrayZ, length); } bool hb_array_t<OT::AxisRecord const>::sanitize<hb_sanitize_context_t>(hb_sanitize_context_t*) const Line | Count | Source | 295 | 46.3k | { return c->check_array (arrayZ, length); } |
bool hb_array_t<unsigned char const>::sanitize<hb_sanitize_context_t>(hb_sanitize_context_t*) const Line | Count | Source | 295 | 608k | { return c->check_array (arrayZ, length); } |
|
296 | | |
297 | | /* |
298 | | * Members |
299 | | */ |
300 | | |
301 | | public: |
302 | | Type *arrayZ = nullptr; |
303 | | unsigned int length = 0; |
304 | | unsigned int backwards_length = 0; |
305 | | }; |
306 | | template <typename T> inline hb_array_t<T> |
307 | | hb_array (T *array, unsigned int length) |
308 | 661M | { return hb_array_t<T> (array, length); } hb_array_t<OT::IntType<short, 2u> const> hb_array<OT::IntType<short, 2u> const>(OT::IntType<short, 2u> const*, unsigned int) Line | Count | Source | 308 | 32.9k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_aat_layout_feature_type_t> hb_array<hb_aat_layout_feature_type_t>(hb_aat_layout_feature_type_t*, unsigned int) Line | Count | Source | 308 | 5.37M | { return hb_array_t<T> (array, length); } |
hb_array_t<AAT::SettingName const> hb_array<AAT::SettingName const>(AAT::SettingName const*, unsigned int) Line | Count | Source | 308 | 5.37M | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_aat_layout_feature_selector_info_t> hb_array<hb_aat_layout_feature_selector_info_t>(hb_aat_layout_feature_selector_info_t*, unsigned int) Line | Count | Source | 308 | 5.37M | { return hb_array_t<T> (array, length); } |
hb_array_t<AAT::Feature const> hb_array<AAT::Feature const>(AAT::Feature const*, unsigned int) Line | Count | Source | 308 | 657k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_aat_map_builder_t::feature_info_t> hb_array<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t*, unsigned int) Line | Count | Source | 308 | 2.21M | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_aat_map_t::range_flags_t> hb_array<hb_aat_map_t::range_flags_t>(hb_aat_map_t::range_flags_t*, unsigned int) Line | Count | Source | 308 | 718k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_user_data_array_t::hb_user_data_item_t> hb_array<hb_user_data_array_t::hb_user_data_item_t>(hb_user_data_array_t::hb_user_data_item_t*, unsigned int) Line | Count | Source | 308 | 14.7M | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_ot_map_t::feature_map_t> hb_array<hb_ot_map_t::feature_map_t>(hb_ot_map_t::feature_map_t*, unsigned int) Line | Count | Source | 308 | 61.2M | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_ot_map_t::lookup_map_t const> hb_array<hb_ot_map_t::lookup_map_t const>(hb_ot_map_t::lookup_map_t const*, unsigned int) Line | Count | Source | 308 | 415k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_ot_map_t::lookup_map_t> hb_array<hb_ot_map_t::lookup_map_t>(hb_ot_map_t::lookup_map_t*, unsigned int) Line | Count | Source | 308 | 362k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_bit_set_t::page_map_t> hb_array<hb_bit_set_t::page_map_t>(hb_bit_set_t::page_map_t*, unsigned int) Line | Count | Source | 308 | 14.7M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<hb_serialize_context_t::object_t::link_t> hb_array<hb_serialize_context_t::object_t::link_t>(hb_serialize_context_t::object_t::link_t*, unsigned int) hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t*> hb_array<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t*>(hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t**, unsigned int) Line | Count | Source | 308 | 34.9k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_serialize_context_t::object_t*> hb_array<hb_serialize_context_t::object_t*>(hb_serialize_context_t::object_t**, unsigned int) Line | Count | Source | 308 | 99.2k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<unsigned int const> hb_array<unsigned int const>(unsigned int const*, unsigned int) hb_array_t<OT::Index const> hb_array<OT::Index const>(OT::Index const*, unsigned int) Line | Count | Source | 308 | 34.0M | { return hb_array_t<T> (array, length); } |
hb_array_t<unsigned int> hb_array<unsigned int>(unsigned int*, unsigned int) Line | Count | Source | 308 | 39.9M | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::IntType<unsigned int, 3u> const> hb_array<OT::IntType<unsigned int, 3u> const>(OT::IntType<unsigned int, 3u> const*, unsigned int) Line | Count | Source | 308 | 6.35M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> > hb_array<hb_pair_t<unsigned int, unsigned int> >(hb_pair_t<unsigned int, unsigned int>*, unsigned int) hb_array_t<OT::IntType<unsigned short, 2u> const> hb_array<OT::IntType<unsigned short, 2u> const>(OT::IntType<unsigned short, 2u> const*, unsigned int) Line | Count | Source | 308 | 16.6M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<hb_inc_bimap_t> hb_array<hb_inc_bimap_t>(hb_inc_bimap_t*, unsigned int) Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const> hb_array<OT::FeatureTableSubstitutionRecord const>(OT::FeatureTableSubstitutionRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<int> hb_array<int>(int*, unsigned int) Line | Count | Source | 308 | 1.89M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const> hb_array<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const>(OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 11.7M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::LookupRecord const> hb_array<OT::LookupRecord const>(OT::LookupRecord const*, unsigned int) hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t> hb_array<OT::hb_accelerate_subtables_context_t::hb_applicable_t>(OT::hb_accelerate_subtables_context_t::hb_applicable_t*, unsigned int) Line | Count | Source | 308 | 154M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const> hb_array<OT::Layout::GPOS_impl::EntryExitRecord const>(OT::Layout::GPOS_impl::EntryExitRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const> hb_array<OT::Layout::GPOS_impl::MarkRecord const>(OT::Layout::GPOS_impl::MarkRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 14.6M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 878k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 13.5M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 180k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<hb_aat_map_builder_t::feature_event_t> hb_array<hb_aat_map_builder_t::feature_event_t>(hb_aat_map_builder_t::feature_event_t*, unsigned int) Line | Count | Source | 308 | 379k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::NoVariable<OT::ColorStop> const> hb_array<OT::NoVariable<OT::ColorStop> const>(OT::NoVariable<OT::ColorStop> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::Variable<OT::ColorStop> const> hb_array<OT::Variable<OT::ColorStop> const>(OT::Variable<OT::ColorStop> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const> hb_array<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>(OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const*, unsigned int) hb_array_t<OT::LayerRecord const> hb_array<OT::LayerRecord const>(OT::LayerRecord const*, unsigned int) Line | Count | Source | 308 | 5.37M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<hb_ot_color_layer_t> hb_array<hb_ot_color_layer_t>(hb_ot_color_layer_t*, unsigned int) Unexecuted instantiation: hb_array_t<OT::LayerRecord> hb_array<OT::LayerRecord>(OT::LayerRecord*, unsigned int) Unexecuted instantiation: hb_array_t<OT::DeltaSetIndexMap const*> hb_array<OT::DeltaSetIndexMap const*>(OT::DeltaSetIndexMap const**, unsigned int) Unexecuted instantiation: hb_array_t<OT::index_map_subset_plan_t> hb_array<OT::index_map_subset_plan_t>(OT::index_map_subset_plan_t*, unsigned int) hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const> hb_array<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>(OT::HBFixed<OT::IntType<short, 2u>, 14u> const*, unsigned int) Line | Count | Source | 308 | 2.11M | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::contour_point_t> hb_array<OT::contour_point_t>(OT::contour_point_t*, unsigned int) Line | Count | Source | 308 | 8.34M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::glyf_impl::SubsetGlyph> hb_array<OT::glyf_impl::SubsetGlyph>(OT::glyf_impl::SubsetGlyph*, unsigned int) Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> > hb_array<OT::IntType<unsigned short, 2u> >(OT::IntType<unsigned short, 2u>*, unsigned int) Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> > hb_array<OT::IntType<unsigned int, 4u> >(OT::IntType<unsigned int, 4u>*, unsigned int) hb_array_t<OT::TableRecord const> hb_array<OT::TableRecord const>(OT::TableRecord const*, unsigned int) Line | Count | Source | 308 | 199M | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::ResourceRecord const> hb_array<OT::ResourceRecord const>(OT::ResourceRecord const*, unsigned int) Line | Count | Source | 308 | 7.21k | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::AxisRecord const> hb_array<OT::AxisRecord const>(OT::AxisRecord const*, unsigned int) Line | Count | Source | 308 | 138k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const> hb_array<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>(OT::HBFixed<OT::IntType<int, 4u>, 16u> const*, unsigned int) hb_array_t<OT::IntType<unsigned int, 4u> const> hb_array<OT::IntType<unsigned int, 4u> const>(OT::IntType<unsigned int, 4u> const*, unsigned int) Line | Count | Source | 308 | 2.19k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::BitmapSizeTable const> hb_array<OT::BitmapSizeTable const>(OT::BitmapSizeTable const*, unsigned int) hb_array_t<OT::IntType<unsigned char, 1u> const> hb_array<OT::IntType<unsigned char, 1u> const>(OT::IntType<unsigned char, 1u> const*, unsigned int) Line | Count | Source | 308 | 98.7k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> > hb_array<hb_array_t<unsigned char const> >(hb_array_t<unsigned char const>*, unsigned int) hb_array_t<OT::cff1::accelerator_t::gname_t> hb_array<OT::cff1::accelerator_t::gname_t>(OT::cff1::accelerator_t::gname_t*, unsigned int) Line | Count | Source | 308 | 55.8k | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::DataMap const> hb_array<OT::DataMap const>(OT::DataMap const*, unsigned int) Line | Count | Source | 308 | 5.37M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<hb_ot_meta_tag_t> hb_array<hb_ot_meta_tag_t>(hb_ot_meta_tag_t*, unsigned int) Unexecuted instantiation: hb_array_t<OT::NameRecord const> hb_array<OT::NameRecord const>(OT::NameRecord const*, unsigned int) hb_array_t<hb_ot_name_entry_t> hb_array<hb_ot_name_entry_t>(hb_ot_name_entry_t*, unsigned int) Line | Count | Source | 308 | 5.23M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::HBGlyphID16 const> hb_array<OT::HBGlyphID16 const>(OT::HBGlyphID16 const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 462k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 629 | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const> hb_array<OT::HBGlyphID24 const>(OT::HBGlyphID24 const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const> hb_array<OT::AxisValueRecord const>(OT::AxisValueRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const> hb_array<OT::StatAxisRecord const>(OT::StatAxisRecord const*, unsigned int) hb_array_t<OT::MathGlyphVariantRecord const> hb_array<OT::MathGlyphVariantRecord const>(OT::MathGlyphVariantRecord const*, unsigned int) Line | Count | Source | 308 | 5.37M | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_ot_math_glyph_variant_t> hb_array<hb_ot_math_glyph_variant_t>(hb_ot_math_glyph_variant_t*, unsigned int) Line | Count | Source | 308 | 5.37M | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::MathGlyphPartRecord const> hb_array<OT::MathGlyphPartRecord const>(OT::MathGlyphPartRecord const*, unsigned int) Line | Count | Source | 308 | 5.37M | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_ot_math_glyph_part_t> hb_array<hb_ot_math_glyph_part_t>(hb_ot_math_glyph_part_t*, unsigned int) Line | Count | Source | 308 | 5.37M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::MathValueRecord const> hb_array<OT::MathValueRecord const>(OT::MathValueRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::MathKernInfoRecord const> hb_array<OT::MathKernInfoRecord const>(OT::MathKernInfoRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<hb_ot_map_builder_t::feature_info_t> hb_array<hb_ot_map_builder_t::feature_info_t>(hb_ot_map_builder_t::feature_info_t*, unsigned int) Line | Count | Source | 308 | 6.56M | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::HBGlyphID16> hb_array<OT::HBGlyphID16>(OT::HBGlyphID16*, unsigned int) Line | Count | Source | 308 | 53.4k | { return hb_array_t<T> (array, length); } |
|
309 | | template <typename T, unsigned int length_> inline hb_array_t<T> |
310 | | hb_array (T (&array_)[length_]) |
311 | 0 | { return hb_array_t<T> (array_); } Unexecuted instantiation: hb_array_t<unsigned long long const> hb_array<unsigned long long const, 8u>(unsigned long long const (&) [8u]) Unexecuted instantiation: hb_array_t<hb::shared_ptr<hb_set_t> > hb_array<hb::shared_ptr<hb_set_t>, 8u>(hb::shared_ptr<hb_set_t> (&) [8u]) |
312 | | |
313 | | template <typename Type> |
314 | | struct hb_sorted_array_t : |
315 | | hb_array_t<Type>, |
316 | | hb_iter_t<hb_sorted_array_t<Type>, Type&> |
317 | | { |
318 | | typedef hb_iter_t<hb_sorted_array_t, Type&> iter_base_t; |
319 | | HB_ITER_USING (iter_base_t); |
320 | | static constexpr bool is_random_access_iterator = true; |
321 | | static constexpr bool is_sorted_iterator = true; |
322 | | |
323 | | hb_sorted_array_t () = default; |
324 | | hb_sorted_array_t (const hb_sorted_array_t&) = default; |
325 | | ~hb_sorted_array_t () = default; |
326 | | hb_sorted_array_t& operator= (const hb_sorted_array_t&) = default; |
327 | | hb_sorted_array_t& operator= (hb_sorted_array_t&&) = default; |
328 | | |
329 | 393M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} hb_sorted_array_t<AAT::FeatureName const>::hb_sorted_array_t(AAT::FeatureName const*, unsigned int) Line | Count | Source | 329 | 16.1M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::hb_sorted_array_t(OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const*, unsigned int) Line | Count | Source | 329 | 125M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::hb_sorted_array_t(OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const*, unsigned int) Line | Count | Source | 329 | 16.4M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::HBGlyphID16 const>::hb_sorted_array_t(OT::HBGlyphID16 const*, unsigned int) Line | Count | Source | 329 | 43.9M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::HBGlyphID24 const>::hb_sorted_array_t(OT::HBGlyphID24 const*, unsigned int) Line | Count | Source | 329 | 1.06M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<AAT::KernPair const>::hb_sorted_array_t(AAT::KernPair const*, unsigned int) Line | Count | Source | 329 | 600k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::TableRecord const>::hb_sorted_array_t(OT::TableRecord const*, unsigned int) Line | Count | Source | 329 | 2.93M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::VariationSelectorRecord const>::hb_sorted_array_t(OT::VariationSelectorRecord const*, unsigned int) Line | Count | Source | 329 | 16.1M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::UVSMapping const>::hb_sorted_array_t(OT::UVSMapping const*, unsigned int) Line | Count | Source | 329 | 10.7M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::EncodingRecord const>::hb_sorted_array_t(OT::EncodingRecord const*, unsigned int) Line | Count | Source | 329 | 51.3M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::CmapSubtableLongGroup const>::hb_sorted_array_t(OT::CmapSubtableLongGroup const*, unsigned int) Line | Count | Source | 329 | 7.31M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::hb_sorted_array_t(OT::BaseGlyphPaintRecord const*, unsigned int) Line | Count | Source | 329 | 1.11M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::BaseGlyphRecord const>::hb_sorted_array_t(OT::BaseGlyphRecord const*, unsigned int) Line | Count | Source | 329 | 5.39M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::hb_sorted_array_t(OT::SVGDocumentIndexEntry const*, unsigned int) Line | Count | Source | 329 | 5.37M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::UnicodeValueRange const>::hb_sorted_array_t(OT::UnicodeValueRange const*, unsigned int) Line | Count | Source | 329 | 5.38M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::VertOriginMetric const>::hb_sorted_array_t(OT::VertOriginMetric const*, unsigned int) Line | Count | Source | 329 | 2.04k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::ClipRecord const>::hb_sorted_array_t(OT::ClipRecord const*, unsigned int) Line | Count | Source | 329 | 1.11M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::Record<OT::Script> const>::hb_sorted_array_t(OT::Record<OT::Script> const*, unsigned int) Line | Count | Source | 329 | 52.2M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Feature> const>::hb_sorted_array_t(OT::Record<OT::Feature> const*, unsigned int) hb_sorted_array_t<OT::Record<OT::LangSys> const>::hb_sorted_array_t(OT::Record<OT::LangSys> const*, unsigned int) Line | Count | Source | 329 | 13.1M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::BaseScriptRecord const>::hb_sorted_array_t(OT::BaseScriptRecord const*, unsigned int) Line | Count | Source | 329 | 10.7M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::Tag const>::hb_sorted_array_t(OT::Tag const*, unsigned int) Line | Count | Source | 329 | 12.3k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::HBGlyphID16>::hb_sorted_array_t(OT::HBGlyphID16*, unsigned int) Line | Count | Source | 329 | 34.9k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<LangTag const>::hb_sorted_array_t(LangTag const*, unsigned int) Line | Count | Source | 329 | 6.57M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
|
330 | | template <unsigned int length_> |
331 | 0 | constexpr hb_sorted_array_t (Type (&array_)[length_]) : hb_array_t<Type> (array_) {} Unexecuted instantiation: hb_sorted_array_t<hb_aat_feature_mapping_t const>::hb_sorted_array_t<78u>(hb_aat_feature_mapping_t const (&) [78u]) Unexecuted instantiation: hb_sorted_array_t<sid_to_gid_t const>::hb_sorted_array_t<165u>(sid_to_gid_t const (&) [165u]) Unexecuted instantiation: hb_sorted_array_t<sid_to_gid_t const>::hb_sorted_array_t<86u>(sid_to_gid_t const (&) [86u]) |
332 | | |
333 | | template <typename U, |
334 | | hb_enable_if (hb_is_cr_convertible(U, Type))> |
335 | | constexpr hb_sorted_array_t (const hb_array_t<U> &o) : |
336 | | hb_array_t<Type> (o), |
337 | 96.9M | hb_iter_t<hb_sorted_array_t, Type&> () {} hb_sorted_array_t<AAT::FeatureName const>::hb_sorted_array_t<AAT::FeatureName const, (void*)0>(hb_array_t<AAT::FeatureName const> const&) Line | Count | Source | 337 | 5.37M | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t const>::hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t, (void*)0>(hb_array_t<hb_aat_map_builder_t::feature_info_t> const&) Line | Count | Source | 337 | 1.85M | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_aat_map_t::range_flags_t const>::hb_sorted_array_t<hb_aat_map_t::range_flags_t, (void*)0>(hb_array_t<hb_aat_map_t::range_flags_t> const&) Line | Count | Source | 337 | 718k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_aat_map_builder_t::feature_event_t>::hb_sorted_array_t<hb_aat_map_builder_t::feature_event_t, (void*)0>(hb_array_t<hb_aat_map_builder_t::feature_event_t> const&) Line | Count | Source | 337 | 379k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t>::hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t, (void*)0>(hb_array_t<hb_aat_map_builder_t::feature_info_t> const&) Line | Count | Source | 337 | 367k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
Unexecuted instantiation: hb_sorted_array_t<OT::TableRecord const>::hb_sorted_array_t<OT::TableRecord const, (void*)0>(hb_array_t<OT::TableRecord const> const&) hb_sorted_array_t<hb_bit_set_t::page_map_t const>::hb_sorted_array_t<hb_bit_set_t::page_map_t, (void*)0>(hb_array_t<hb_bit_set_t::page_map_t> const&) Line | Count | Source | 337 | 14.7M | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<OT::cff1::accelerator_t::gname_t>::hb_sorted_array_t<OT::cff1::accelerator_t::gname_t, (void*)0>(hb_array_t<OT::cff1::accelerator_t::gname_t> const&) Line | Count | Source | 337 | 83.7k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Script> const>::hb_sorted_array_t<OT::Record<OT::Script> const, (void*)0>(hb_array_t<OT::Record<OT::Script> const> const&) Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Feature> const>::hb_sorted_array_t<OT::Record<OT::Feature> const, (void*)0>(hb_array_t<OT::Record<OT::Feature> const> const&) Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::LangSys> const>::hb_sorted_array_t<OT::Record<OT::LangSys> const, (void*)0>(hb_array_t<OT::Record<OT::LangSys> const> const&) hb_sorted_array_t<hb_ot_name_entry_t>::hb_sorted_array_t<hb_ot_name_entry_t, (void*)0>(hb_array_t<hb_ot_name_entry_t> const&) Line | Count | Source | 337 | 5.23M | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_ot_map_t::feature_map_t const>::hb_sorted_array_t<hb_ot_map_t::feature_map_t, (void*)0>(hb_array_t<hb_ot_map_t::feature_map_t> const&) Line | Count | Source | 337 | 61.2M | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_ot_map_builder_t::feature_info_t>::hb_sorted_array_t<hb_ot_map_builder_t::feature_info_t, (void*)0>(hb_array_t<hb_ot_map_builder_t::feature_info_t> const&) Line | Count | Source | 337 | 6.56M | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_ot_map_t::lookup_map_t>::hb_sorted_array_t<hb_ot_map_t::lookup_map_t, (void*)0>(hb_array_t<hb_ot_map_t::lookup_map_t> const&) Line | Count | Source | 337 | 311k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<OT::HBGlyphID16>::hb_sorted_array_t<OT::HBGlyphID16, (void*)0>(hb_array_t<OT::HBGlyphID16> const&) Line | Count | Source | 337 | 20.5k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<OT::HBGlyphID16 const>::hb_sorted_array_t<OT::HBGlyphID16, (void*)0>(hb_array_t<OT::HBGlyphID16> const&) Line | Count | Source | 337 | 18.4k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
|
338 | | template <typename U, |
339 | | hb_enable_if (hb_is_cr_convertible(U, Type))> |
340 | | hb_sorted_array_t& operator = (const hb_array_t<U> &o) |
341 | | { hb_array_t<Type> (*this) = o; return *this; } |
342 | | |
343 | | /* Iterator implementation. */ |
344 | | |
345 | | /* See comment in hb_array_of::operator != */ |
346 | | bool operator != (const hb_sorted_array_t& o) const |
347 | 989k | { return this->arrayZ != o.arrayZ || this->length != o.length; } Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::LangSys> const>::operator!=(hb_sorted_array_t<OT::Record<OT::LangSys> const> const&) const Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Script> const>::operator!=(hb_sorted_array_t<OT::Record<OT::Script> const> const&) const Unexecuted instantiation: hb_sorted_array_t<hb_pair_t<unsigned int, unsigned int> const>::operator!=(hb_sorted_array_t<hb_pair_t<unsigned int, unsigned int> const> const&) const Unexecuted instantiation: hb_sorted_array_t<OT::UVSMapping const>::operator!=(hb_sorted_array_t<OT::UVSMapping const> const&) const Unexecuted instantiation: hb_sorted_array_t<OT::EncodingRecord const>::operator!=(hb_sorted_array_t<OT::EncodingRecord const> const&) const Unexecuted instantiation: hb_sorted_array_t<OT::VertOriginMetric const>::operator!=(hb_sorted_array_t<OT::VertOriginMetric const> const&) const hb_sorted_array_t<OT::HBGlyphID16>::operator!=(hb_sorted_array_t<OT::HBGlyphID16> const&) const Line | Count | Source | 347 | 989k | { return this->arrayZ != o.arrayZ || this->length != o.length; } |
|
348 | | |
349 | | /* Faster range-based for loop without bounds-check. */ |
350 | 10.7M | Type *begin () const { return this->arrayZ; } Unexecuted instantiation: hb_sorted_array_t<unsigned int const>::begin() const hb_sorted_array_t<OT::HBGlyphID16 const>::begin() const Line | Count | Source | 350 | 15.5k | Type *begin () const { return this->arrayZ; } |
Unexecuted instantiation: hb_sorted_array_t<OT::HBGlyphID24 const>::begin() const hb_sorted_array_t<OT::UVSMapping const>::begin() const Line | Count | Source | 350 | 5.37M | Type *begin () const { return this->arrayZ; } |
hb_sorted_array_t<OT::VariationSelectorRecord const>::begin() const Line | Count | Source | 350 | 5.37M | Type *begin () const { return this->arrayZ; } |
Unexecuted instantiation: hb_sorted_array_t<OT::ClipRecord const>::begin() const Unexecuted instantiation: hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::begin() const |
351 | 10.7M | Type *end () const { return this->arrayZ + this->length; } Unexecuted instantiation: hb_sorted_array_t<unsigned int const>::end() const hb_sorted_array_t<OT::HBGlyphID16 const>::end() const Line | Count | Source | 351 | 15.5k | Type *end () const { return this->arrayZ + this->length; } |
Unexecuted instantiation: hb_sorted_array_t<OT::HBGlyphID24 const>::end() const hb_sorted_array_t<OT::UVSMapping const>::end() const Line | Count | Source | 351 | 5.37M | Type *end () const { return this->arrayZ + this->length; } |
hb_sorted_array_t<OT::VariationSelectorRecord const>::end() const Line | Count | Source | 351 | 5.37M | Type *end () const { return this->arrayZ + this->length; } |
Unexecuted instantiation: hb_sorted_array_t<OT::ClipRecord const>::end() const Unexecuted instantiation: hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::end() const |
352 | | |
353 | | |
354 | | hb_sorted_array_t sub_array (unsigned int start_offset, unsigned int *seg_count /* IN/OUT */) const |
355 | 5.37M | { return hb_sorted_array_t (((const hb_array_t<Type> *) (this))->sub_array (start_offset, seg_count)); } hb_sorted_array_t<AAT::FeatureName const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 355 | 5.37M | { return hb_sorted_array_t (((const hb_array_t<Type> *) (this))->sub_array (start_offset, seg_count)); } |
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::LangSys> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Script> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Feature> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_sorted_array_t<OT::TableRecord const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::JstfLangSys> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::JstfScript> const>::sub_array(unsigned int, unsigned int*) const |
356 | | hb_sorted_array_t sub_array (unsigned int start_offset, unsigned int seg_count) const |
357 | | { return sub_array (start_offset, &seg_count); } |
358 | | |
359 | | hb_sorted_array_t truncate (unsigned length) const { return sub_array (0, length); } |
360 | | |
361 | | template <typename T> |
362 | | Type *bsearch (const T &x, Type *not_found = nullptr) |
363 | 314M | { |
364 | 314M | unsigned int i; |
365 | 314M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; |
366 | 314M | } AAT::FeatureName const* hb_sorted_array_t<AAT::FeatureName const>::bsearch<hb_aat_layout_feature_type_t>(hb_aat_layout_feature_type_t const&, AAT::FeatureName const*) Line | Count | Source | 363 | 10.7M | { | 364 | 10.7M | unsigned int i; | 365 | 10.7M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 10.7M | } |
Unexecuted instantiation: hb_aat_feature_mapping_t const* hb_sorted_array_t<hb_aat_feature_mapping_t const>::bsearch<unsigned int>(unsigned int const&, hb_aat_feature_mapping_t const*) hb_aat_map_builder_t::feature_info_t const* hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t const>::bsearch<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, hb_aat_map_builder_t::feature_info_t const*) Line | Count | Source | 363 | 1.85M | { | 364 | 1.85M | unsigned int i; | 365 | 1.85M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 1.85M | } |
OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const* hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::bsearch<unsigned int>(unsigned int const&, OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const*) Line | Count | Source | 363 | 125M | { | 364 | 125M | unsigned int i; | 365 | 125M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 125M | } |
OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const* hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::bsearch<unsigned int>(unsigned int const&, OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const*) Line | Count | Source | 363 | 16.4M | { | 364 | 16.4M | unsigned int i; | 365 | 16.4M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 16.4M | } |
AAT::KernPair const* hb_sorted_array_t<AAT::KernPair const>::bsearch<AAT::hb_glyph_pair_t>(AAT::hb_glyph_pair_t const&, AAT::KernPair const*) Line | Count | Source | 363 | 600k | { | 364 | 600k | unsigned int i; | 365 | 600k | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 600k | } |
hb_ot_map_t::feature_map_t const* hb_sorted_array_t<hb_ot_map_t::feature_map_t const>::bsearch<unsigned int>(unsigned int const&, hb_ot_map_t::feature_map_t const*) Line | Count | Source | 363 | 61.2M | { | 364 | 61.2M | unsigned int i; | 365 | 61.2M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 61.2M | } |
Unexecuted instantiation: OT::OS2Range const* hb_sorted_array_t<OT::OS2Range const>::bsearch<unsigned int>(unsigned int const&, OT::OS2Range const*) Unexecuted instantiation: OT::UnicodeValueRange const* hb_sorted_array_t<OT::UnicodeValueRange const>::bsearch<unsigned int>(unsigned int const&, OT::UnicodeValueRange const*) OT::UVSMapping const* hb_sorted_array_t<OT::UVSMapping const>::bsearch<unsigned int>(unsigned int const&, OT::UVSMapping const*) Line | Count | Source | 363 | 5.38M | { | 364 | 5.38M | unsigned int i; | 365 | 5.38M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 5.38M | } |
OT::VariationSelectorRecord const* hb_sorted_array_t<OT::VariationSelectorRecord const>::bsearch<unsigned int>(unsigned int const&, OT::VariationSelectorRecord const*) Line | Count | Source | 363 | 10.7M | { | 364 | 10.7M | unsigned int i; | 365 | 10.7M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 10.7M | } |
OT::CmapSubtableLongGroup const* hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bsearch<unsigned int>(unsigned int const&, OT::CmapSubtableLongGroup const*) Line | Count | Source | 363 | 7.31M | { | 364 | 7.31M | unsigned int i; | 365 | 7.31M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 7.31M | } |
OT::EncodingRecord const* hb_sorted_array_t<OT::EncodingRecord const>::bsearch<OT::EncodingRecord>(OT::EncodingRecord const&, OT::EncodingRecord const*) Line | Count | Source | 363 | 51.3M | { | 364 | 51.3M | unsigned int i; | 365 | 51.3M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 51.3M | } |
OT::ClipRecord const* hb_sorted_array_t<OT::ClipRecord const>::bsearch<unsigned int>(unsigned int const&, OT::ClipRecord const*) Line | Count | Source | 363 | 1.11M | { | 364 | 1.11M | unsigned int i; | 365 | 1.11M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 1.11M | } |
OT::BaseGlyphRecord const* hb_sorted_array_t<OT::BaseGlyphRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseGlyphRecord const*) Line | Count | Source | 363 | 5.39M | { | 364 | 5.39M | unsigned int i; | 365 | 5.39M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 5.39M | } |
OT::BaseGlyphPaintRecord const* hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseGlyphPaintRecord const*) Line | Count | Source | 363 | 1.11M | { | 364 | 1.11M | unsigned int i; | 365 | 1.11M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 1.11M | } |
OT::SVGDocumentIndexEntry const* hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bsearch<unsigned int>(unsigned int const&, OT::SVGDocumentIndexEntry const*) Line | Count | Source | 363 | 5.37M | { | 364 | 5.37M | unsigned int i; | 365 | 5.37M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 5.37M | } |
OT::cff1::accelerator_t::gname_t* hb_sorted_array_t<OT::cff1::accelerator_t::gname_t>::bsearch<OT::cff1::accelerator_t::gname_t>(OT::cff1::accelerator_t::gname_t const&, OT::cff1::accelerator_t::gname_t*) Line | Count | Source | 363 | 27.9k | { | 364 | 27.9k | unsigned int i; | 365 | 27.9k | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 27.9k | } |
OT::BaseScriptRecord const* hb_sorted_array_t<OT::BaseScriptRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseScriptRecord const*) Line | Count | Source | 363 | 10.7M | { | 364 | 10.7M | unsigned int i; | 365 | 10.7M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 10.7M | } |
Unexecuted instantiation: OT::FeatMinMaxRecord const* hb_sorted_array_t<OT::FeatMinMaxRecord const>::bsearch<unsigned int>(unsigned int const&, OT::FeatMinMaxRecord const*) Unexecuted instantiation: OT::BaseLangSysRecord const* hb_sorted_array_t<OT::BaseLangSysRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseLangSysRecord const*) Unexecuted instantiation: sid_to_gid_t const* hb_sorted_array_t<sid_to_gid_t const>::bsearch<unsigned int>(unsigned int const&, sid_to_gid_t const*) |
367 | | template <typename T> |
368 | | const Type *bsearch (const T &x, const Type *not_found = nullptr) const |
369 | | { |
370 | | unsigned int i; |
371 | | return bfind (x, &i) ? &this->arrayZ[i] : not_found; |
372 | | } |
373 | | template <typename T> |
374 | | bool bfind (const T &x, unsigned int *i = nullptr, |
375 | | hb_not_found_t not_found = HB_NOT_FOUND_DONT_STORE, |
376 | | unsigned int to_store = (unsigned int) -1) const |
377 | 454M | { |
378 | 454M | unsigned pos; |
379 | | |
380 | 454M | if (bsearch_impl (x, &pos)) |
381 | 170M | { |
382 | 170M | if (i) |
383 | 170M | *i = pos; |
384 | 170M | return true; |
385 | 170M | } |
386 | | |
387 | 283M | if (i) |
388 | 278M | { |
389 | 278M | switch (not_found) |
390 | 278M | { |
391 | 190M | case HB_NOT_FOUND_DONT_STORE: |
392 | 190M | break; |
393 | | |
394 | 75.0M | case HB_NOT_FOUND_STORE: |
395 | 75.0M | *i = to_store; |
396 | 75.0M | break; |
397 | | |
398 | 12.8M | case HB_NOT_FOUND_STORE_CLOSEST: |
399 | 12.8M | *i = pos; |
400 | 12.8M | break; |
401 | 278M | } |
402 | 278M | } |
403 | 283M | return false; |
404 | 283M | } bool hb_sorted_array_t<AAT::FeatureName const>::bfind<hb_aat_layout_feature_type_t>(hb_aat_layout_feature_type_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 10.7M | { | 378 | 10.7M | unsigned pos; | 379 | | | 380 | 10.7M | if (bsearch_impl (x, &pos)) | 381 | 344 | { | 382 | 344 | if (i) | 383 | 344 | *i = pos; | 384 | 344 | return true; | 385 | 344 | } | 386 | | | 387 | 10.7M | if (i) | 388 | 10.7M | { | 389 | 10.7M | switch (not_found) | 390 | 10.7M | { | 391 | 10.7M | case HB_NOT_FOUND_DONT_STORE: | 392 | 10.7M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 10.7M | } | 402 | 10.7M | } | 403 | 10.7M | return false; | 404 | 10.7M | } |
Unexecuted instantiation: bool hb_sorted_array_t<hb_aat_feature_mapping_t const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const bool hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t const>::bfind<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 1.85M | { | 378 | 1.85M | unsigned pos; | 379 | | | 380 | 1.85M | if (bsearch_impl (x, &pos)) | 381 | 0 | { | 382 | 0 | if (i) | 383 | 0 | *i = pos; | 384 | 0 | return true; | 385 | 0 | } | 386 | | | 387 | 1.85M | if (i) | 388 | 1.85M | { | 389 | 1.85M | switch (not_found) | 390 | 1.85M | { | 391 | 1.85M | case HB_NOT_FOUND_DONT_STORE: | 392 | 1.85M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 1.85M | } | 402 | 1.85M | } | 403 | 1.85M | return false; | 404 | 1.85M | } |
bool hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 125M | { | 378 | 125M | unsigned pos; | 379 | | | 380 | 125M | if (bsearch_impl (x, &pos)) | 381 | 95.4M | { | 382 | 95.4M | if (i) | 383 | 95.4M | *i = pos; | 384 | 95.4M | return true; | 385 | 95.4M | } | 386 | | | 387 | 29.8M | if (i) | 388 | 29.8M | { | 389 | 29.8M | switch (not_found) | 390 | 29.8M | { | 391 | 29.8M | case HB_NOT_FOUND_DONT_STORE: | 392 | 29.8M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 29.8M | } | 402 | 29.8M | } | 403 | 29.8M | return false; | 404 | 29.8M | } |
bool hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 16.4M | { | 378 | 16.4M | unsigned pos; | 379 | | | 380 | 16.4M | if (bsearch_impl (x, &pos)) | 381 | 10.6M | { | 382 | 10.6M | if (i) | 383 | 10.6M | *i = pos; | 384 | 10.6M | return true; | 385 | 10.6M | } | 386 | | | 387 | 5.76M | if (i) | 388 | 5.76M | { | 389 | 5.76M | switch (not_found) | 390 | 5.76M | { | 391 | 5.76M | case HB_NOT_FOUND_DONT_STORE: | 392 | 5.76M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 5.76M | } | 402 | 5.76M | } | 403 | 5.76M | return false; | 404 | 5.76M | } |
bool hb_sorted_array_t<OT::HBGlyphID16 const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 43.1M | { | 378 | 43.1M | unsigned pos; | 379 | | | 380 | 43.1M | if (bsearch_impl (x, &pos)) | 381 | 35.4M | { | 382 | 35.4M | if (i) | 383 | 35.4M | *i = pos; | 384 | 35.4M | return true; | 385 | 35.4M | } | 386 | | | 387 | 7.71M | if (i) | 388 | 7.71M | { | 389 | 7.71M | switch (not_found) | 390 | 7.71M | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 7.71M | case HB_NOT_FOUND_STORE: | 395 | 7.71M | *i = to_store; | 396 | 7.71M | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 7.71M | } | 402 | 7.71M | } | 403 | 7.71M | return false; | 404 | 7.71M | } |
bool hb_sorted_array_t<OT::HBGlyphID24 const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 1.02M | { | 378 | 1.02M | unsigned pos; | 379 | | | 380 | 1.02M | if (bsearch_impl (x, &pos)) | 381 | 768k | { | 382 | 768k | if (i) | 383 | 768k | *i = pos; | 384 | 768k | return true; | 385 | 768k | } | 386 | | | 387 | 260k | if (i) | 388 | 260k | { | 389 | 260k | switch (not_found) | 390 | 260k | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 260k | case HB_NOT_FOUND_STORE: | 395 | 260k | *i = to_store; | 396 | 260k | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 260k | } | 402 | 260k | } | 403 | 260k | return false; | 404 | 260k | } |
bool hb_sorted_array_t<AAT::KernPair const>::bfind<AAT::hb_glyph_pair_t>(AAT::hb_glyph_pair_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 600k | { | 378 | 600k | unsigned pos; | 379 | | | 380 | 600k | if (bsearch_impl (x, &pos)) | 381 | 54.7k | { | 382 | 54.7k | if (i) | 383 | 54.7k | *i = pos; | 384 | 54.7k | return true; | 385 | 54.7k | } | 386 | | | 387 | 546k | if (i) | 388 | 546k | { | 389 | 546k | switch (not_found) | 390 | 546k | { | 391 | 546k | case HB_NOT_FOUND_DONT_STORE: | 392 | 546k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 546k | } | 402 | 546k | } | 403 | 546k | return false; | 404 | 546k | } |
bool hb_sorted_array_t<hb_ot_map_t::feature_map_t const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 61.2M | { | 378 | 61.2M | unsigned pos; | 379 | | | 380 | 61.2M | if (bsearch_impl (x, &pos)) | 381 | 20.1M | { | 382 | 20.1M | if (i) | 383 | 20.1M | *i = pos; | 384 | 20.1M | return true; | 385 | 20.1M | } | 386 | | | 387 | 41.1M | if (i) | 388 | 41.1M | { | 389 | 41.1M | switch (not_found) | 390 | 41.1M | { | 391 | 41.1M | case HB_NOT_FOUND_DONT_STORE: | 392 | 41.1M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 41.1M | } | 402 | 41.1M | } | 403 | 41.1M | return false; | 404 | 41.1M | } |
Unexecuted instantiation: bool hb_sorted_array_t<hb_bit_set_t::page_map_t const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const bool hb_sorted_array_t<hb_bit_set_t::page_map_t const>::bfind<hb_bit_set_t::page_map_t>(hb_bit_set_t::page_map_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 14.7M | { | 378 | 14.7M | unsigned pos; | 379 | | | 380 | 14.7M | if (bsearch_impl (x, &pos)) | 381 | 1.95M | { | 382 | 1.95M | if (i) | 383 | 1.95M | *i = pos; | 384 | 1.95M | return true; | 385 | 1.95M | } | 386 | | | 387 | 12.8M | if (i) | 388 | 12.8M | { | 389 | 12.8M | switch (not_found) | 390 | 12.8M | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 12.8M | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 12.8M | *i = pos; | 400 | 12.8M | break; | 401 | 12.8M | } | 402 | 12.8M | } | 403 | 12.8M | return false; | 404 | 12.8M | } |
bool hb_sorted_array_t<OT::Record<OT::LangSys> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 13.1M | { | 378 | 13.1M | unsigned pos; | 379 | | | 380 | 13.1M | if (bsearch_impl (x, &pos)) | 381 | 297 | { | 382 | 297 | if (i) | 383 | 297 | *i = pos; | 384 | 297 | return true; | 385 | 297 | } | 386 | | | 387 | 13.1M | if (i) | 388 | 13.1M | { | 389 | 13.1M | switch (not_found) | 390 | 13.1M | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 13.1M | case HB_NOT_FOUND_STORE: | 395 | 13.1M | *i = to_store; | 396 | 13.1M | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 13.1M | } | 402 | 13.1M | } | 403 | 13.1M | return false; | 404 | 13.1M | } |
bool hb_sorted_array_t<OT::Record<OT::Script> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 52.2M | { | 378 | 52.2M | unsigned pos; | 379 | | | 380 | 52.2M | if (bsearch_impl (x, &pos)) | 381 | 296k | { | 382 | 296k | if (i) | 383 | 296k | *i = pos; | 384 | 296k | return true; | 385 | 296k | } | 386 | | | 387 | 51.9M | if (i) | 388 | 51.9M | { | 389 | 51.9M | switch (not_found) | 390 | 51.9M | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 51.9M | case HB_NOT_FOUND_STORE: | 395 | 51.9M | *i = to_store; | 396 | 51.9M | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 51.9M | } | 402 | 51.9M | } | 403 | 51.9M | return false; | 404 | 51.9M | } |
Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::Feature> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Unexecuted instantiation: bool hb_sorted_array_t<OT::OS2Range const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const bool hb_sorted_array_t<OT::UnicodeValueRange const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 5.38M | { | 378 | 5.38M | unsigned pos; | 379 | | | 380 | 5.38M | if (bsearch_impl (x, &pos)) | 381 | 244 | { | 382 | 244 | if (i) | 383 | 0 | *i = pos; | 384 | 244 | return true; | 385 | 244 | } | 386 | | | 387 | 5.38M | if (i) | 388 | 0 | { | 389 | 0 | switch (not_found) | 390 | 0 | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 0 | } | 402 | 0 | } | 403 | 5.38M | return false; | 404 | 5.38M | } |
bool hb_sorted_array_t<OT::UVSMapping const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 5.38M | { | 378 | 5.38M | unsigned pos; | 379 | | | 380 | 5.38M | if (bsearch_impl (x, &pos)) | 381 | 169 | { | 382 | 169 | if (i) | 383 | 169 | *i = pos; | 384 | 169 | return true; | 385 | 169 | } | 386 | | | 387 | 5.38M | if (i) | 388 | 5.38M | { | 389 | 5.38M | switch (not_found) | 390 | 5.38M | { | 391 | 5.38M | case HB_NOT_FOUND_DONT_STORE: | 392 | 5.38M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 5.38M | } | 402 | 5.38M | } | 403 | 5.38M | return false; | 404 | 5.38M | } |
bool hb_sorted_array_t<OT::VariationSelectorRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 10.7M | { | 378 | 10.7M | unsigned pos; | 379 | | | 380 | 10.7M | if (bsearch_impl (x, &pos)) | 381 | 1.47k | { | 382 | 1.47k | if (i) | 383 | 1.47k | *i = pos; | 384 | 1.47k | return true; | 385 | 1.47k | } | 386 | | | 387 | 10.7M | if (i) | 388 | 10.7M | { | 389 | 10.7M | switch (not_found) | 390 | 10.7M | { | 391 | 10.7M | case HB_NOT_FOUND_DONT_STORE: | 392 | 10.7M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 10.7M | } | 402 | 10.7M | } | 403 | 10.7M | return false; | 404 | 10.7M | } |
bool hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 7.31M | { | 378 | 7.31M | unsigned pos; | 379 | | | 380 | 7.31M | if (bsearch_impl (x, &pos)) | 381 | 3.14M | { | 382 | 3.14M | if (i) | 383 | 3.14M | *i = pos; | 384 | 3.14M | return true; | 385 | 3.14M | } | 386 | | | 387 | 4.17M | if (i) | 388 | 4.17M | { | 389 | 4.17M | switch (not_found) | 390 | 4.17M | { | 391 | 4.17M | case HB_NOT_FOUND_DONT_STORE: | 392 | 4.17M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 4.17M | } | 402 | 4.17M | } | 403 | 4.17M | return false; | 404 | 4.17M | } |
bool hb_sorted_array_t<OT::EncodingRecord const>::bfind<OT::EncodingRecord>(OT::EncodingRecord const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 51.3M | { | 378 | 51.3M | unsigned pos; | 379 | | | 380 | 51.3M | if (bsearch_impl (x, &pos)) | 381 | 233k | { | 382 | 233k | if (i) | 383 | 233k | *i = pos; | 384 | 233k | return true; | 385 | 233k | } | 386 | | | 387 | 51.0M | if (i) | 388 | 51.0M | { | 389 | 51.0M | switch (not_found) | 390 | 51.0M | { | 391 | 51.0M | case HB_NOT_FOUND_DONT_STORE: | 392 | 51.0M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 51.0M | } | 402 | 51.0M | } | 403 | 51.0M | return false; | 404 | 51.0M | } |
bool hb_sorted_array_t<OT::ClipRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 1.11M | { | 378 | 1.11M | unsigned pos; | 379 | | | 380 | 1.11M | if (bsearch_impl (x, &pos)) | 381 | 4.75k | { | 382 | 4.75k | if (i) | 383 | 4.75k | *i = pos; | 384 | 4.75k | return true; | 385 | 4.75k | } | 386 | | | 387 | 1.10M | if (i) | 388 | 1.10M | { | 389 | 1.10M | switch (not_found) | 390 | 1.10M | { | 391 | 1.10M | case HB_NOT_FOUND_DONT_STORE: | 392 | 1.10M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 1.10M | } | 402 | 1.10M | } | 403 | 1.10M | return false; | 404 | 1.10M | } |
bool hb_sorted_array_t<OT::BaseGlyphRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 5.39M | { | 378 | 5.39M | unsigned pos; | 379 | | | 380 | 5.39M | if (bsearch_impl (x, &pos)) | 381 | 3.59k | { | 382 | 3.59k | if (i) | 383 | 3.59k | *i = pos; | 384 | 3.59k | return true; | 385 | 3.59k | } | 386 | | | 387 | 5.39M | if (i) | 388 | 5.39M | { | 389 | 5.39M | switch (not_found) | 390 | 5.39M | { | 391 | 5.39M | case HB_NOT_FOUND_DONT_STORE: | 392 | 5.39M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 5.39M | } | 402 | 5.39M | } | 403 | 5.39M | return false; | 404 | 5.39M | } |
bool hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 1.11M | { | 378 | 1.11M | unsigned pos; | 379 | | | 380 | 1.11M | if (bsearch_impl (x, &pos)) | 381 | 1.04M | { | 382 | 1.04M | if (i) | 383 | 1.04M | *i = pos; | 384 | 1.04M | return true; | 385 | 1.04M | } | 386 | | | 387 | 64.8k | if (i) | 388 | 64.8k | { | 389 | 64.8k | switch (not_found) | 390 | 64.8k | { | 391 | 64.8k | case HB_NOT_FOUND_DONT_STORE: | 392 | 64.8k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 64.8k | } | 402 | 64.8k | } | 403 | 64.8k | return false; | 404 | 64.8k | } |
bool hb_sorted_array_t<OT::TableRecord const>::bfind<OT::Tag>(OT::Tag const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 2.93M | { | 378 | 2.93M | unsigned pos; | 379 | | | 380 | 2.93M | if (bsearch_impl (x, &pos)) | 381 | 1.01M | { | 382 | 1.01M | if (i) | 383 | 1.01M | *i = pos; | 384 | 1.01M | return true; | 385 | 1.01M | } | 386 | | | 387 | 1.92M | if (i) | 388 | 1.92M | { | 389 | 1.92M | switch (not_found) | 390 | 1.92M | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 1.92M | case HB_NOT_FOUND_STORE: | 395 | 1.92M | *i = to_store; | 396 | 1.92M | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 1.92M | } | 402 | 1.92M | } | 403 | 1.92M | return false; | 404 | 1.92M | } |
bool hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 5.37M | { | 378 | 5.37M | unsigned pos; | 379 | | | 380 | 5.37M | if (bsearch_impl (x, &pos)) | 381 | 218 | { | 382 | 218 | if (i) | 383 | 218 | *i = pos; | 384 | 218 | return true; | 385 | 218 | } | 386 | | | 387 | 5.37M | if (i) | 388 | 5.37M | { | 389 | 5.37M | switch (not_found) | 390 | 5.37M | { | 391 | 5.37M | case HB_NOT_FOUND_DONT_STORE: | 392 | 5.37M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 5.37M | } | 402 | 5.37M | } | 403 | 5.37M | return false; | 404 | 5.37M | } |
bool hb_sorted_array_t<OT::cff1::accelerator_t::gname_t>::bfind<OT::cff1::accelerator_t::gname_t>(OT::cff1::accelerator_t::gname_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 27.9k | { | 378 | 27.9k | unsigned pos; | 379 | | | 380 | 27.9k | if (bsearch_impl (x, &pos)) | 381 | 1.67k | { | 382 | 1.67k | if (i) | 383 | 1.67k | *i = pos; | 384 | 1.67k | return true; | 385 | 1.67k | } | 386 | | | 387 | 26.2k | if (i) | 388 | 26.2k | { | 389 | 26.2k | switch (not_found) | 390 | 26.2k | { | 391 | 26.2k | case HB_NOT_FOUND_DONT_STORE: | 392 | 26.2k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 26.2k | } | 402 | 26.2k | } | 403 | 26.2k | return false; | 404 | 26.2k | } |
bool hb_sorted_array_t<OT::VertOriginMetric const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 2.04k | { | 378 | 2.04k | unsigned pos; | 379 | | | 380 | 2.04k | if (bsearch_impl (x, &pos)) | 381 | 41 | { | 382 | 41 | if (i) | 383 | 41 | *i = pos; | 384 | 41 | return true; | 385 | 41 | } | 386 | | | 387 | 2.00k | if (i) | 388 | 2.00k | { | 389 | 2.00k | switch (not_found) | 390 | 2.00k | { | 391 | 2.00k | case HB_NOT_FOUND_DONT_STORE: | 392 | 2.00k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 2.00k | } | 402 | 2.00k | } | 403 | 2.00k | return false; | 404 | 2.00k | } |
bool hb_sorted_array_t<OT::BaseScriptRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 10.7M | { | 378 | 10.7M | unsigned pos; | 379 | | | 380 | 10.7M | if (bsearch_impl (x, &pos)) | 381 | 12.8k | { | 382 | 12.8k | if (i) | 383 | 12.8k | *i = pos; | 384 | 12.8k | return true; | 385 | 12.8k | } | 386 | | | 387 | 10.7M | if (i) | 388 | 10.7M | { | 389 | 10.7M | switch (not_found) | 390 | 10.7M | { | 391 | 10.7M | case HB_NOT_FOUND_DONT_STORE: | 392 | 10.7M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 10.7M | } | 402 | 10.7M | } | 403 | 10.7M | return false; | 404 | 10.7M | } |
bool hb_sorted_array_t<OT::Tag const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 12.3k | { | 378 | 12.3k | unsigned pos; | 379 | | | 380 | 12.3k | if (bsearch_impl (x, &pos)) | 381 | 55 | { | 382 | 55 | if (i) | 383 | 55 | *i = pos; | 384 | 55 | return true; | 385 | 55 | } | 386 | | | 387 | 12.2k | if (i) | 388 | 12.2k | { | 389 | 12.2k | switch (not_found) | 390 | 12.2k | { | 391 | 12.2k | case HB_NOT_FOUND_DONT_STORE: | 392 | 12.2k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 12.2k | } | 402 | 12.2k | } | 403 | 12.2k | return false; | 404 | 12.2k | } |
Unexecuted instantiation: bool hb_sorted_array_t<OT::FeatMinMaxRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Unexecuted instantiation: bool hb_sorted_array_t<OT::BaseLangSysRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::JstfLangSys> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::JstfScript> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Unexecuted instantiation: bool hb_sorted_array_t<sid_to_gid_t const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const bool hb_sorted_array_t<LangTag const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 6.57M | { | 378 | 6.57M | unsigned pos; | 379 | | | 380 | 6.57M | if (bsearch_impl (x, &pos)) | 381 | 0 | { | 382 | 0 | if (i) | 383 | 0 | *i = pos; | 384 | 0 | return true; | 385 | 0 | } | 386 | | | 387 | 6.57M | if (i) | 388 | 6.57M | { | 389 | 6.57M | switch (not_found) | 390 | 6.57M | { | 391 | 6.57M | case HB_NOT_FOUND_DONT_STORE: | 392 | 6.57M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 6.57M | } | 402 | 6.57M | } | 403 | 6.57M | return false; | 404 | 6.57M | } |
|
405 | | template <typename T, typename ...Ts> |
406 | | bool bsearch_impl (const T &x, unsigned *pos, Ts... ds) const |
407 | 454M | { |
408 | 454M | return hb_bsearch_impl (pos, |
409 | 454M | x, |
410 | 454M | this->arrayZ, |
411 | 454M | this->length, |
412 | 454M | sizeof (Type), |
413 | 454M | _hb_cmp_method<T, Type, Ts...>, |
414 | 454M | std::forward<Ts> (ds)...); |
415 | 454M | } bool hb_sorted_array_t<AAT::FeatureName const>::bsearch_impl<hb_aat_layout_feature_type_t>(hb_aat_layout_feature_type_t const&, unsigned int*) const Line | Count | Source | 407 | 10.7M | { | 408 | 10.7M | return hb_bsearch_impl (pos, | 409 | 10.7M | x, | 410 | 10.7M | this->arrayZ, | 411 | 10.7M | this->length, | 412 | 10.7M | sizeof (Type), | 413 | 10.7M | _hb_cmp_method<T, Type, Ts...>, | 414 | 10.7M | std::forward<Ts> (ds)...); | 415 | 10.7M | } |
Unexecuted instantiation: bool hb_sorted_array_t<hb_aat_feature_mapping_t const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const bool hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t const>::bsearch_impl<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, unsigned int*) const Line | Count | Source | 407 | 1.85M | { | 408 | 1.85M | return hb_bsearch_impl (pos, | 409 | 1.85M | x, | 410 | 1.85M | this->arrayZ, | 411 | 1.85M | this->length, | 412 | 1.85M | sizeof (Type), | 413 | 1.85M | _hb_cmp_method<T, Type, Ts...>, | 414 | 1.85M | std::forward<Ts> (ds)...); | 415 | 1.85M | } |
bool hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 125M | { | 408 | 125M | return hb_bsearch_impl (pos, | 409 | 125M | x, | 410 | 125M | this->arrayZ, | 411 | 125M | this->length, | 412 | 125M | sizeof (Type), | 413 | 125M | _hb_cmp_method<T, Type, Ts...>, | 414 | 125M | std::forward<Ts> (ds)...); | 415 | 125M | } |
bool hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 16.4M | { | 408 | 16.4M | return hb_bsearch_impl (pos, | 409 | 16.4M | x, | 410 | 16.4M | this->arrayZ, | 411 | 16.4M | this->length, | 412 | 16.4M | sizeof (Type), | 413 | 16.4M | _hb_cmp_method<T, Type, Ts...>, | 414 | 16.4M | std::forward<Ts> (ds)...); | 415 | 16.4M | } |
bool hb_sorted_array_t<OT::HBGlyphID16 const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 43.1M | { | 408 | 43.1M | return hb_bsearch_impl (pos, | 409 | 43.1M | x, | 410 | 43.1M | this->arrayZ, | 411 | 43.1M | this->length, | 412 | 43.1M | sizeof (Type), | 413 | 43.1M | _hb_cmp_method<T, Type, Ts...>, | 414 | 43.1M | std::forward<Ts> (ds)...); | 415 | 43.1M | } |
bool hb_sorted_array_t<OT::HBGlyphID24 const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 1.02M | { | 408 | 1.02M | return hb_bsearch_impl (pos, | 409 | 1.02M | x, | 410 | 1.02M | this->arrayZ, | 411 | 1.02M | this->length, | 412 | 1.02M | sizeof (Type), | 413 | 1.02M | _hb_cmp_method<T, Type, Ts...>, | 414 | 1.02M | std::forward<Ts> (ds)...); | 415 | 1.02M | } |
bool hb_sorted_array_t<AAT::KernPair const>::bsearch_impl<AAT::hb_glyph_pair_t>(AAT::hb_glyph_pair_t const&, unsigned int*) const Line | Count | Source | 407 | 600k | { | 408 | 600k | return hb_bsearch_impl (pos, | 409 | 600k | x, | 410 | 600k | this->arrayZ, | 411 | 600k | this->length, | 412 | 600k | sizeof (Type), | 413 | 600k | _hb_cmp_method<T, Type, Ts...>, | 414 | 600k | std::forward<Ts> (ds)...); | 415 | 600k | } |
bool hb_sorted_array_t<hb_ot_map_t::feature_map_t const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 61.2M | { | 408 | 61.2M | return hb_bsearch_impl (pos, | 409 | 61.2M | x, | 410 | 61.2M | this->arrayZ, | 411 | 61.2M | this->length, | 412 | 61.2M | sizeof (Type), | 413 | 61.2M | _hb_cmp_method<T, Type, Ts...>, | 414 | 61.2M | std::forward<Ts> (ds)...); | 415 | 61.2M | } |
Unexecuted instantiation: bool hb_sorted_array_t<hb_bit_set_t::page_map_t const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const bool hb_sorted_array_t<hb_bit_set_t::page_map_t const>::bsearch_impl<hb_bit_set_t::page_map_t>(hb_bit_set_t::page_map_t const&, unsigned int*) const Line | Count | Source | 407 | 14.7M | { | 408 | 14.7M | return hb_bsearch_impl (pos, | 409 | 14.7M | x, | 410 | 14.7M | this->arrayZ, | 411 | 14.7M | this->length, | 412 | 14.7M | sizeof (Type), | 413 | 14.7M | _hb_cmp_method<T, Type, Ts...>, | 414 | 14.7M | std::forward<Ts> (ds)...); | 415 | 14.7M | } |
bool hb_sorted_array_t<OT::Record<OT::LangSys> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 13.1M | { | 408 | 13.1M | return hb_bsearch_impl (pos, | 409 | 13.1M | x, | 410 | 13.1M | this->arrayZ, | 411 | 13.1M | this->length, | 412 | 13.1M | sizeof (Type), | 413 | 13.1M | _hb_cmp_method<T, Type, Ts...>, | 414 | 13.1M | std::forward<Ts> (ds)...); | 415 | 13.1M | } |
bool hb_sorted_array_t<OT::Record<OT::Script> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 52.2M | { | 408 | 52.2M | return hb_bsearch_impl (pos, | 409 | 52.2M | x, | 410 | 52.2M | this->arrayZ, | 411 | 52.2M | this->length, | 412 | 52.2M | sizeof (Type), | 413 | 52.2M | _hb_cmp_method<T, Type, Ts...>, | 414 | 52.2M | std::forward<Ts> (ds)...); | 415 | 52.2M | } |
Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::Feature> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Unexecuted instantiation: bool hb_sorted_array_t<OT::OS2Range const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const bool hb_sorted_array_t<OT::UnicodeValueRange const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 5.38M | { | 408 | 5.38M | return hb_bsearch_impl (pos, | 409 | 5.38M | x, | 410 | 5.38M | this->arrayZ, | 411 | 5.38M | this->length, | 412 | 5.38M | sizeof (Type), | 413 | 5.38M | _hb_cmp_method<T, Type, Ts...>, | 414 | 5.38M | std::forward<Ts> (ds)...); | 415 | 5.38M | } |
bool hb_sorted_array_t<OT::UVSMapping const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 5.38M | { | 408 | 5.38M | return hb_bsearch_impl (pos, | 409 | 5.38M | x, | 410 | 5.38M | this->arrayZ, | 411 | 5.38M | this->length, | 412 | 5.38M | sizeof (Type), | 413 | 5.38M | _hb_cmp_method<T, Type, Ts...>, | 414 | 5.38M | std::forward<Ts> (ds)...); | 415 | 5.38M | } |
bool hb_sorted_array_t<OT::VariationSelectorRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 10.7M | { | 408 | 10.7M | return hb_bsearch_impl (pos, | 409 | 10.7M | x, | 410 | 10.7M | this->arrayZ, | 411 | 10.7M | this->length, | 412 | 10.7M | sizeof (Type), | 413 | 10.7M | _hb_cmp_method<T, Type, Ts...>, | 414 | 10.7M | std::forward<Ts> (ds)...); | 415 | 10.7M | } |
bool hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 7.31M | { | 408 | 7.31M | return hb_bsearch_impl (pos, | 409 | 7.31M | x, | 410 | 7.31M | this->arrayZ, | 411 | 7.31M | this->length, | 412 | 7.31M | sizeof (Type), | 413 | 7.31M | _hb_cmp_method<T, Type, Ts...>, | 414 | 7.31M | std::forward<Ts> (ds)...); | 415 | 7.31M | } |
bool hb_sorted_array_t<OT::EncodingRecord const>::bsearch_impl<OT::EncodingRecord>(OT::EncodingRecord const&, unsigned int*) const Line | Count | Source | 407 | 51.3M | { | 408 | 51.3M | return hb_bsearch_impl (pos, | 409 | 51.3M | x, | 410 | 51.3M | this->arrayZ, | 411 | 51.3M | this->length, | 412 | 51.3M | sizeof (Type), | 413 | 51.3M | _hb_cmp_method<T, Type, Ts...>, | 414 | 51.3M | std::forward<Ts> (ds)...); | 415 | 51.3M | } |
bool hb_sorted_array_t<OT::ClipRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 1.11M | { | 408 | 1.11M | return hb_bsearch_impl (pos, | 409 | 1.11M | x, | 410 | 1.11M | this->arrayZ, | 411 | 1.11M | this->length, | 412 | 1.11M | sizeof (Type), | 413 | 1.11M | _hb_cmp_method<T, Type, Ts...>, | 414 | 1.11M | std::forward<Ts> (ds)...); | 415 | 1.11M | } |
bool hb_sorted_array_t<OT::BaseGlyphRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 5.39M | { | 408 | 5.39M | return hb_bsearch_impl (pos, | 409 | 5.39M | x, | 410 | 5.39M | this->arrayZ, | 411 | 5.39M | this->length, | 412 | 5.39M | sizeof (Type), | 413 | 5.39M | _hb_cmp_method<T, Type, Ts...>, | 414 | 5.39M | std::forward<Ts> (ds)...); | 415 | 5.39M | } |
bool hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 1.11M | { | 408 | 1.11M | return hb_bsearch_impl (pos, | 409 | 1.11M | x, | 410 | 1.11M | this->arrayZ, | 411 | 1.11M | this->length, | 412 | 1.11M | sizeof (Type), | 413 | 1.11M | _hb_cmp_method<T, Type, Ts...>, | 414 | 1.11M | std::forward<Ts> (ds)...); | 415 | 1.11M | } |
bool hb_sorted_array_t<OT::TableRecord const>::bsearch_impl<OT::Tag>(OT::Tag const&, unsigned int*) const Line | Count | Source | 407 | 2.93M | { | 408 | 2.93M | return hb_bsearch_impl (pos, | 409 | 2.93M | x, | 410 | 2.93M | this->arrayZ, | 411 | 2.93M | this->length, | 412 | 2.93M | sizeof (Type), | 413 | 2.93M | _hb_cmp_method<T, Type, Ts...>, | 414 | 2.93M | std::forward<Ts> (ds)...); | 415 | 2.93M | } |
bool hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 5.37M | { | 408 | 5.37M | return hb_bsearch_impl (pos, | 409 | 5.37M | x, | 410 | 5.37M | this->arrayZ, | 411 | 5.37M | this->length, | 412 | 5.37M | sizeof (Type), | 413 | 5.37M | _hb_cmp_method<T, Type, Ts...>, | 414 | 5.37M | std::forward<Ts> (ds)...); | 415 | 5.37M | } |
bool hb_sorted_array_t<OT::cff1::accelerator_t::gname_t>::bsearch_impl<OT::cff1::accelerator_t::gname_t>(OT::cff1::accelerator_t::gname_t const&, unsigned int*) const Line | Count | Source | 407 | 27.9k | { | 408 | 27.9k | return hb_bsearch_impl (pos, | 409 | 27.9k | x, | 410 | 27.9k | this->arrayZ, | 411 | 27.9k | this->length, | 412 | 27.9k | sizeof (Type), | 413 | 27.9k | _hb_cmp_method<T, Type, Ts...>, | 414 | 27.9k | std::forward<Ts> (ds)...); | 415 | 27.9k | } |
bool hb_sorted_array_t<OT::VertOriginMetric const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 2.04k | { | 408 | 2.04k | return hb_bsearch_impl (pos, | 409 | 2.04k | x, | 410 | 2.04k | this->arrayZ, | 411 | 2.04k | this->length, | 412 | 2.04k | sizeof (Type), | 413 | 2.04k | _hb_cmp_method<T, Type, Ts...>, | 414 | 2.04k | std::forward<Ts> (ds)...); | 415 | 2.04k | } |
bool hb_sorted_array_t<OT::BaseScriptRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 10.7M | { | 408 | 10.7M | return hb_bsearch_impl (pos, | 409 | 10.7M | x, | 410 | 10.7M | this->arrayZ, | 411 | 10.7M | this->length, | 412 | 10.7M | sizeof (Type), | 413 | 10.7M | _hb_cmp_method<T, Type, Ts...>, | 414 | 10.7M | std::forward<Ts> (ds)...); | 415 | 10.7M | } |
bool hb_sorted_array_t<OT::Tag const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 12.3k | { | 408 | 12.3k | return hb_bsearch_impl (pos, | 409 | 12.3k | x, | 410 | 12.3k | this->arrayZ, | 411 | 12.3k | this->length, | 412 | 12.3k | sizeof (Type), | 413 | 12.3k | _hb_cmp_method<T, Type, Ts...>, | 414 | 12.3k | std::forward<Ts> (ds)...); | 415 | 12.3k | } |
Unexecuted instantiation: bool hb_sorted_array_t<OT::FeatMinMaxRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Unexecuted instantiation: bool hb_sorted_array_t<OT::BaseLangSysRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::JstfLangSys> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::JstfScript> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Unexecuted instantiation: bool hb_sorted_array_t<sid_to_gid_t const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const bool hb_sorted_array_t<LangTag const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 6.57M | { | 408 | 6.57M | return hb_bsearch_impl (pos, | 409 | 6.57M | x, | 410 | 6.57M | this->arrayZ, | 411 | 6.57M | this->length, | 412 | 6.57M | sizeof (Type), | 413 | 6.57M | _hb_cmp_method<T, Type, Ts...>, | 414 | 6.57M | std::forward<Ts> (ds)...); | 415 | 6.57M | } |
|
416 | | }; |
417 | | template <typename T> inline hb_sorted_array_t<T> |
418 | | hb_sorted_array (T *array, unsigned int length) |
419 | 393M | { return hb_sorted_array_t<T> (array, length); } hb_sorted_array_t<AAT::FeatureName const> hb_sorted_array<AAT::FeatureName const>(AAT::FeatureName const*, unsigned int) Line | Count | Source | 419 | 16.1M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const> hb_sorted_array<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>(OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const*, unsigned int) Line | Count | Source | 419 | 125M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const> hb_sorted_array<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>(OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const*, unsigned int) Line | Count | Source | 419 | 16.4M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::HBGlyphID16 const> hb_sorted_array<OT::HBGlyphID16 const>(OT::HBGlyphID16 const*, unsigned int) Line | Count | Source | 419 | 43.9M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::HBGlyphID24 const> hb_sorted_array<OT::HBGlyphID24 const>(OT::HBGlyphID24 const*, unsigned int) Line | Count | Source | 419 | 1.06M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<AAT::KernPair const> hb_sorted_array<AAT::KernPair const>(AAT::KernPair const*, unsigned int) Line | Count | Source | 419 | 600k | { return hb_sorted_array_t<T> (array, length); } |
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Feature> const> hb_sorted_array<OT::Record<OT::Feature> const>(OT::Record<OT::Feature> const*, unsigned int) hb_sorted_array_t<OT::Record<OT::LangSys> const> hb_sorted_array<OT::Record<OT::LangSys> const>(OT::Record<OT::LangSys> const*, unsigned int) Line | Count | Source | 419 | 13.1M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::Record<OT::Script> const> hb_sorted_array<OT::Record<OT::Script> const>(OT::Record<OT::Script> const*, unsigned int) Line | Count | Source | 419 | 52.2M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::UnicodeValueRange const> hb_sorted_array<OT::UnicodeValueRange const>(OT::UnicodeValueRange const*, unsigned int) Line | Count | Source | 419 | 5.38M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::UVSMapping const> hb_sorted_array<OT::UVSMapping const>(OT::UVSMapping const*, unsigned int) Line | Count | Source | 419 | 10.7M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::VariationSelectorRecord const> hb_sorted_array<OT::VariationSelectorRecord const>(OT::VariationSelectorRecord const*, unsigned int) Line | Count | Source | 419 | 16.1M | { return hb_sorted_array_t<T> (array, length); } |
Unexecuted instantiation: hb_sorted_array_t<OT::VariationSelectorRecord> hb_sorted_array<OT::VariationSelectorRecord>(OT::VariationSelectorRecord*, unsigned int) hb_sorted_array_t<OT::CmapSubtableLongGroup const> hb_sorted_array<OT::CmapSubtableLongGroup const>(OT::CmapSubtableLongGroup const*, unsigned int) Line | Count | Source | 419 | 7.31M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::EncodingRecord const> hb_sorted_array<OT::EncodingRecord const>(OT::EncodingRecord const*, unsigned int) Line | Count | Source | 419 | 51.3M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::ClipRecord const> hb_sorted_array<OT::ClipRecord const>(OT::ClipRecord const*, unsigned int) Line | Count | Source | 419 | 1.11M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::BaseGlyphPaintRecord const> hb_sorted_array<OT::BaseGlyphPaintRecord const>(OT::BaseGlyphPaintRecord const*, unsigned int) Line | Count | Source | 419 | 1.11M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::BaseGlyphRecord const> hb_sorted_array<OT::BaseGlyphRecord const>(OT::BaseGlyphRecord const*, unsigned int) Line | Count | Source | 419 | 5.39M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::TableRecord const> hb_sorted_array<OT::TableRecord const>(OT::TableRecord const*, unsigned int) Line | Count | Source | 419 | 2.93M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::SVGDocumentIndexEntry const> hb_sorted_array<OT::SVGDocumentIndexEntry const>(OT::SVGDocumentIndexEntry const*, unsigned int) Line | Count | Source | 419 | 5.37M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::VertOriginMetric const> hb_sorted_array<OT::VertOriginMetric const>(OT::VertOriginMetric const*, unsigned int) Line | Count | Source | 419 | 2.04k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::BaseScriptRecord const> hb_sorted_array<OT::BaseScriptRecord const>(OT::BaseScriptRecord const*, unsigned int) Line | Count | Source | 419 | 10.7M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::Tag const> hb_sorted_array<OT::Tag const>(OT::Tag const*, unsigned int) Line | Count | Source | 419 | 12.3k | { return hb_sorted_array_t<T> (array, length); } |
Unexecuted instantiation: hb_sorted_array_t<OT::FeatMinMaxRecord const> hb_sorted_array<OT::FeatMinMaxRecord const>(OT::FeatMinMaxRecord const*, unsigned int) Unexecuted instantiation: hb_sorted_array_t<OT::BaseLangSysRecord const> hb_sorted_array<OT::BaseLangSysRecord const>(OT::BaseLangSysRecord const*, unsigned int) Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::JstfLangSys> const> hb_sorted_array<OT::Record<OT::JstfLangSys> const>(OT::Record<OT::JstfLangSys> const*, unsigned int) Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::JstfScript> const> hb_sorted_array<OT::Record<OT::JstfScript> const>(OT::Record<OT::JstfScript> const*, unsigned int) hb_sorted_array_t<OT::HBGlyphID16> hb_sorted_array<OT::HBGlyphID16>(OT::HBGlyphID16*, unsigned int) Line | Count | Source | 419 | 34.9k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<LangTag const> hb_sorted_array<LangTag const>(LangTag const*, unsigned int) Line | Count | Source | 419 | 6.57M | { return hb_sorted_array_t<T> (array, length); } |
|
420 | | template <typename T, unsigned int length_> inline hb_sorted_array_t<T> |
421 | | hb_sorted_array (T (&array_)[length_]) |
422 | 0 | { return hb_sorted_array_t<T> (array_); } Unexecuted instantiation: hb_sorted_array_t<hb_aat_feature_mapping_t const> hb_sorted_array<hb_aat_feature_mapping_t const, 78u>(hb_aat_feature_mapping_t const (&) [78u]) Unexecuted instantiation: hb_sorted_array_t<OT::OS2Range const> hb_sorted_array<OT::OS2Range const, 169u>(OT::OS2Range const (&) [169u]) Unexecuted instantiation: hb_sorted_array_t<sid_to_gid_t const> hb_sorted_array<sid_to_gid_t const, 165u>(sid_to_gid_t const (&) [165u]) Unexecuted instantiation: hb_sorted_array_t<sid_to_gid_t const> hb_sorted_array<sid_to_gid_t const, 86u>(sid_to_gid_t const (&) [86u]) |
423 | | |
424 | | template <typename T> |
425 | | inline bool hb_array_t<T>::operator == (const hb_array_t<T> &o) const |
426 | | { |
427 | | if (o.length != this->length) return false; |
428 | | for (unsigned int i = 0; i < this->length; i++) { |
429 | | if (this->arrayZ[i] != o.arrayZ[i]) return false; |
430 | | } |
431 | | return true; |
432 | | } |
433 | | template <> |
434 | | inline bool hb_array_t<const char>::operator == (const hb_array_t<const char> &o) const |
435 | 444k | { |
436 | 444k | if (o.length != this->length) return false; |
437 | 444k | return 0 == hb_memcmp (arrayZ, o.arrayZ, length); |
438 | 444k | } |
439 | | template <> |
440 | | inline bool hb_array_t<const unsigned char>::operator == (const hb_array_t<const unsigned char> &o) const |
441 | 0 | { |
442 | 0 | if (o.length != this->length) return false; |
443 | 0 | return 0 == hb_memcmp (arrayZ, o.arrayZ, length); |
444 | 0 | } |
445 | | |
446 | | |
447 | | /* Specialize hash() for byte arrays. */ |
448 | | |
449 | | template <> |
450 | | inline uint32_t hb_array_t<const char>::hash () const |
451 | 928k | { |
452 | 928k | uint32_t current = 0; |
453 | 928k | unsigned i = 0; |
454 | | |
455 | 928k | #if defined(__OPTIMIZE__) && !defined(HB_NO_PACKED) && \ |
456 | 928k | ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__)) |
457 | 928k | struct __attribute__((packed)) packed_uint32_t { uint32_t v; }; |
458 | 3.36M | for (; i + 4 <= this->length; i += 4) |
459 | 2.43M | current = current * 31 + hb_hash ((uint32_t) ((packed_uint32_t *) &this->arrayZ[i])->v); |
460 | 928k | #endif |
461 | | |
462 | 1.62M | for (; i < this->length; i++) |
463 | 701k | current = current * 31 + hb_hash (this->arrayZ[i]); |
464 | 928k | return current; |
465 | 928k | } |
466 | | |
467 | | template <> |
468 | | inline uint32_t hb_array_t<const unsigned char>::hash () const |
469 | 0 | { |
470 | 0 | uint32_t current = 0; |
471 | 0 | unsigned i = 0; |
472 | 0 |
|
473 | 0 | #if defined(__OPTIMIZE__) && !defined(HB_NO_PACKED) && \ |
474 | 0 | ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__)) |
475 | 0 | struct __attribute__((packed)) packed_uint32_t { uint32_t v; }; |
476 | 0 | for (; i + 4 <= this->length; i += 4) |
477 | 0 | current = current * 31 + hb_hash ((uint32_t) ((packed_uint32_t *) &this->arrayZ[i])->v); |
478 | 0 | #endif |
479 | 0 |
|
480 | 0 | for (; i < this->length; i++) |
481 | 0 | current = current * 31 + hb_hash (this->arrayZ[i]); |
482 | 0 | return current; |
483 | 0 | } |
484 | | |
485 | | |
486 | | typedef hb_array_t<const char> hb_bytes_t; |
487 | | typedef hb_array_t<const unsigned char> hb_ubytes_t; |
488 | | |
489 | | |
490 | | |
491 | | #endif /* HB_ARRAY_HH */ |