/src/harfbuzz/src/hb-array.hh
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright © 2018 Google, Inc. |
3 | | * |
4 | | * This is part of HarfBuzz, a text shaping library. |
5 | | * |
6 | | * Permission is hereby granted, without written agreement and without |
7 | | * license or royalty fees, to use, copy, modify, and distribute this |
8 | | * software and its documentation for any purpose, provided that the |
9 | | * above copyright notice and the following two paragraphs appear in |
10 | | * all copies of this software. |
11 | | * |
12 | | * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR |
13 | | * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES |
14 | | * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN |
15 | | * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH |
16 | | * DAMAGE. |
17 | | * |
18 | | * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, |
19 | | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND |
20 | | * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS |
21 | | * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO |
22 | | * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
23 | | * |
24 | | * Google Author(s): Behdad Esfahbod |
25 | | */ |
26 | | |
27 | | #ifndef HB_ARRAY_HH |
28 | | #define HB_ARRAY_HH |
29 | | |
30 | | #include "hb.hh" |
31 | | #include "hb-algs.hh" |
32 | | #include "hb-iter.hh" |
33 | | #include "hb-null.hh" |
34 | | |
35 | | |
36 | | template <typename Type> |
37 | | struct hb_sorted_array_t; |
38 | | |
39 | | enum hb_not_found_t |
40 | | { |
41 | | HB_NOT_FOUND_DONT_STORE, |
42 | | HB_NOT_FOUND_STORE, |
43 | | HB_NOT_FOUND_STORE_CLOSEST, |
44 | | }; |
45 | | |
46 | | |
47 | | template <typename Type> |
48 | | struct hb_array_t : hb_iter_with_fallback_t<hb_array_t<Type>, Type&> |
49 | | { |
50 | | /* |
51 | | * Constructors. |
52 | | */ |
53 | 58.1M | hb_array_t () = default; hb_array_t<char const>::hb_array_t() Line | Count | Source | 53 | 45.2M | hb_array_t () = default; |
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::hb_array_t() Line | Count | Source | 53 | 876k | hb_array_t () = default; |
hb_array_t<int>::hb_array_t() Line | Count | Source | 53 | 246k | hb_array_t () = default; |
hb_array_t<unsigned char const>::hb_array_t() Line | Count | Source | 53 | 11.7M | hb_array_t () = default; |
|
54 | | hb_array_t (const hb_array_t&) = default; |
55 | | ~hb_array_t () = default; |
56 | | hb_array_t& operator= (const hb_array_t&) = default; |
57 | | hb_array_t& operator= (hb_array_t&&) = default; |
58 | | |
59 | 1.59G | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} hb_array_t<OT::IntType<short, 2u> const>::hb_array_t(OT::IntType<short, 2u> const*, unsigned int) Line | Count | Source | 59 | 5.20k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::hb_array_t(OT::HBFixed<OT::IntType<int, 4u>, 16u> const*, unsigned int) hb_array_t<AAT::FeatureName const>::hb_array_t(AAT::FeatureName const*, unsigned int) Line | Count | Source | 59 | 1.33M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_aat_layout_feature_type_t>::hb_array_t(hb_aat_layout_feature_type_t*, unsigned int) Line | Count | Source | 59 | 333k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<AAT::SettingName const>::hb_array_t(AAT::SettingName const*, unsigned int) Line | Count | Source | 59 | 666k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_aat_layout_feature_selector_info_t>::hb_array_t(hb_aat_layout_feature_selector_info_t*, unsigned int) Line | Count | Source | 59 | 333k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<char const>::hb_array_t(char const*, unsigned int) Line | Count | Source | 59 | 710M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<hb_aat_feature_mapping_t const>::hb_array_t(hb_aat_feature_mapping_t const*, unsigned int) hb_array_t<AAT::Feature const>::hb_array_t(AAT::Feature const*, unsigned int) Line | Count | Source | 59 | 421k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_aat_map_builder_t::feature_info_t>::hb_array_t(hb_aat_map_builder_t::feature_info_t*, unsigned int) Line | Count | Source | 59 | 4.56M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_aat_map_t::range_flags_t>::hb_array_t(hb_aat_map_t::range_flags_t*, unsigned int) Line | Count | Source | 59 | 472k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_glyph_info_t>::hb_array_t(hb_glyph_info_t*, unsigned int) Line | Count | Source | 59 | 1.23M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_glyph_position_t>::hb_array_t(hb_glyph_position_t*, unsigned int) Line | Count | Source | 59 | 60.9k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::hb_array_t(OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const*, unsigned int) Line | Count | Source | 59 | 159M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::hb_array_t(OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const*, unsigned int) Line | Count | Source | 59 | 6.39M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::HBGlyphID16 const>::hb_array_t(OT::HBGlyphID16 const*, unsigned int) Line | Count | Source | 59 | 101M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::HBGlyphID24 const>::hb_array_t(OT::HBGlyphID24 const*, unsigned int) Line | Count | Source | 59 | 2.87M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<AAT::KernPair const>::hb_array_t(AAT::KernPair const*, unsigned int) Line | Count | Source | 59 | 314k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_aat_map_builder_t::feature_event_t>::hb_array_t(hb_aat_map_builder_t::feature_event_t*, unsigned int) Line | Count | Source | 59 | 233k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::hb_array_t(hb_user_data_array_t::hb_user_data_item_t*, unsigned int) Line | Count | Source | 59 | 978k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::TableRecord const>::hb_array_t(OT::TableRecord const*, unsigned int) Line | Count | Source | 59 | 12.7M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::ResourceRecord const>::hb_array_t(OT::ResourceRecord const*, unsigned int) Line | Count | Source | 59 | 5.66k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<unsigned int>::hb_array_t(unsigned int*, unsigned int) Line | Count | Source | 59 | 5.66M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_bit_set_t::page_map_t>::hb_array_t(hb_bit_set_t::page_map_t*, unsigned int) Line | Count | Source | 59 | 10.3M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::hb_array_t(hb_hashmap_t<unsigned int, unsigned int, true>::item_t*, unsigned int) Line | Count | Source | 59 | 326k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::VariationSelectorRecord const>::hb_array_t(OT::VariationSelectorRecord const*, unsigned int) Line | Count | Source | 59 | 1.00M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::UVSMapping const>::hb_array_t(OT::UVSMapping const*, unsigned int) Line | Count | Source | 59 | 667k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::EncodingRecord const>::hb_array_t(OT::EncodingRecord const*, unsigned int) Line | Count | Source | 59 | 2.67M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::CmapSubtableLongGroup const>::hb_array_t(OT::CmapSubtableLongGroup const*, unsigned int) Line | Count | Source | 59 | 4.63M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::AxisRecord const>::hb_array_t(OT::AxisRecord const*, unsigned int) Line | Count | Source | 59 | 63.7k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::Index const>::hb_array_t(OT::Index const*, unsigned int) Line | Count | Source | 59 | 10.0M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::IntType<unsigned int, 4u> const>::hb_array_t(OT::IntType<unsigned int, 4u> const*, unsigned int) Line | Count | Source | 59 | 122k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::BaseGlyphPaintRecord const>::hb_array_t(OT::BaseGlyphPaintRecord const*, unsigned int) Line | Count | Source | 59 | 621k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::BaseGlyphRecord const>::hb_array_t(OT::BaseGlyphRecord const*, unsigned int) Line | Count | Source | 59 | 343k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::LayerRecord const>::hb_array_t(OT::LayerRecord const*, unsigned int) Line | Count | Source | 59 | 666k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<hb_ot_color_layer_t>::hb_array_t(hb_ot_color_layer_t*, unsigned int) hb_array_t<OT::SVGDocumentIndexEntry const>::hb_array_t(OT::SVGDocumentIndexEntry const*, unsigned int) Line | Count | Source | 59 | 333k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::UnicodeValueRange const>::hb_array_t(OT::UnicodeValueRange const*, unsigned int) Line | Count | Source | 59 | 334k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::VertOriginMetric const>::hb_array_t(OT::VertOriginMetric const*, unsigned int) Line | Count | Source | 59 | 1.61k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<int>::hb_array_t(int*, unsigned int) Line | Count | Source | 59 | 2.08M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::contour_point_t>::hb_array_t(OT::contour_point_t*, unsigned int) Line | Count | Source | 59 | 37.0M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::hb_array_t(OT::HBFixed<OT::IntType<short, 2u>, 14u> const*, unsigned int) Line | Count | Source | 59 | 1.41M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<unsigned char const>::hb_array_t(unsigned char const*, unsigned int) Line | Count | Source | 59 | 7.41M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::ClipRecord const>::hb_array_t(OT::ClipRecord const*, unsigned int) Line | Count | Source | 59 | 622k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::cff1::accelerator_t::gname_t>::hb_array_t(OT::cff1::accelerator_t::gname_t*, unsigned int) Line | Count | Source | 59 | 38.2k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::IntType<unsigned char, 1u> const>::hb_array_t(OT::IntType<unsigned char, 1u> const*, unsigned int) Line | Count | Source | 59 | 15.6k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::IntType<unsigned short, 2u> const>::hb_array_t(OT::IntType<unsigned short, 2u> const*, unsigned int) Line | Count | Source | 59 | 32.1M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::Record<OT::Script> const>::hb_array_t(OT::Record<OT::Script> const*, unsigned int) Line | Count | Source | 59 | 3.67M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::hb_array_t(OT::Record<OT::Feature> const*, unsigned int) hb_array_t<OT::Record<OT::LangSys> const>::hb_array_t(OT::Record<OT::LangSys> const*, unsigned int) Line | Count | Source | 59 | 994k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<unsigned long long const>::hb_array_t(unsigned long long const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const>::hb_array_t(OT::FeatureTableSubstitutionRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 775k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 225 | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 28.3M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 19.3M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::IntType<unsigned int, 3u> const>::hb_array_t(OT::IntType<unsigned int, 3u> const*, unsigned int) Line | Count | Source | 59 | 2.79M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 1.47M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 38.2M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 59 | 65.8k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::hb_array_t(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::unique_ptr<hb_set_t>, false>::item_t>::hb_array_t(hb_hashmap_t<unsigned int, hb::unique_ptr<hb_set_t>, false>::item_t*, unsigned int) Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_set_t, false>::item_t>::hb_array_t(hb_hashmap_t<unsigned int, hb_set_t, false>::item_t*, unsigned int) hb_array_t<OT::BaseScriptRecord const>::hb_array_t(OT::BaseScriptRecord const*, unsigned int) Line | Count | Source | 59 | 666k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::Tag const>::hb_array_t(OT::Tag const*, unsigned int) Line | Count | Source | 59 | 4.11k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t>::hb_array_t(OT::hb_accelerate_subtables_context_t::hb_applicable_t*, unsigned int) Line | Count | Source | 59 | 182M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::hb_array_t(OT::hb_accelerate_subtables_context_t::hb_applicable_t const*, unsigned int) Line | Count | Source | 59 | 182M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::MathGlyphVariantRecord const>::hb_array_t(OT::MathGlyphVariantRecord const*, unsigned int) Line | Count | Source | 59 | 666k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_math_glyph_variant_t>::hb_array_t(hb_ot_math_glyph_variant_t*, unsigned int) Line | Count | Source | 59 | 333k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::MathGlyphPartRecord const>::hb_array_t(OT::MathGlyphPartRecord const*, unsigned int) Line | Count | Source | 59 | 666k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_math_glyph_part_t>::hb_array_t(hb_ot_math_glyph_part_t*, unsigned int) Line | Count | Source | 59 | 333k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::DataMap const>::hb_array_t(OT::DataMap const*, unsigned int) Line | Count | Source | 59 | 333k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<hb_ot_meta_tag_t>::hb_array_t(hb_ot_meta_tag_t*, unsigned int) hb_array_t<OT::NameRecord const>::hb_array_t(OT::NameRecord const*, unsigned int) Line | Count | Source | 59 | 376k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_name_entry_t>::hb_array_t(hb_ot_name_entry_t*, unsigned int) Line | Count | Source | 59 | 327k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_map_t::feature_map_t>::hb_array_t(hb_ot_map_t::feature_map_t*, unsigned int) Line | Count | Source | 59 | 5.28M | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
Unexecuted instantiation: hb_array_t<sid_to_gid_t const>::hb_array_t(sid_to_gid_t const*, unsigned int) hb_array_t<CFF::number_t const>::hb_array_t(CFF::number_t const*, unsigned int) Line | Count | Source | 59 | 956k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_map_builder_t::feature_info_t>::hb_array_t(hb_ot_map_builder_t::feature_info_t*, unsigned int) Line | Count | Source | 59 | 491k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_map_t::lookup_map_t>::hb_array_t(hb_ot_map_t::lookup_map_t*, unsigned int) Line | Count | Source | 59 | 391k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_serialize_context_t::object_t*>::hb_array_t(hb_serialize_context_t::object_t**, unsigned int) Line | Count | Source | 59 | 55.3k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_serialize_context_t::object_t* const>::hb_array_t(hb_serialize_context_t::object_t* const*, unsigned int) Line | Count | Source | 59 | 55.3k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_hashmap_t<hb_serialize_context_t::object_t const*, unsigned int, false>::item_t>::hb_array_t(hb_hashmap_t<hb_serialize_context_t::object_t const*, unsigned int, false>::item_t*, unsigned int) Line | Count | Source | 59 | 22.2k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<OT::HBGlyphID16>::hb_array_t(OT::HBGlyphID16*, unsigned int) Line | Count | Source | 59 | 49.6k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t*>::hb_array_t(hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t**, unsigned int) Line | Count | Source | 59 | 19.8k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>::hb_array_t(hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const*, unsigned int) Line | Count | Source | 59 | 19.8k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<unsigned int const>::hb_array_t(unsigned int const*, unsigned int) Line | Count | Source | 59 | 73.7k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<hb_ot_map_t::lookup_map_t const>::hb_array_t(hb_ot_map_t::lookup_map_t const*, unsigned int) Line | Count | Source | 59 | 166k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
hb_array_t<LangTag const>::hb_array_t(LangTag const*, unsigned int) Line | Count | Source | 59 | 497k | constexpr hb_array_t (Type *array_, unsigned int length_) : arrayZ (array_), length (length_) {} |
|
60 | | template <unsigned int length_> |
61 | 478k | constexpr hb_array_t (Type (&array_)[length_]) : hb_array_t (array_, length_) {} Unexecuted instantiation: hb_array_t<hb_aat_feature_mapping_t const>::hb_array_t<78u>(hb_aat_feature_mapping_t const (&) [78u]) Unexecuted instantiation: hb_array_t<unsigned long long const>::hb_array_t<8u>(unsigned long long const (&) [8u]) Unexecuted instantiation: hb_array_t<sid_to_gid_t const>::hb_array_t<165u>(sid_to_gid_t const (&) [165u]) Unexecuted instantiation: hb_array_t<sid_to_gid_t const>::hb_array_t<86u>(sid_to_gid_t const (&) [86u]) hb_array_t<CFF::number_t const>::hb_array_t<513u>(CFF::number_t const (&) [513u]) Line | Count | Source | 61 | 478k | constexpr hb_array_t (Type (&array_)[length_]) : hb_array_t (array_, length_) {} |
|
62 | | |
63 | | template <typename U, |
64 | | hb_enable_if (hb_is_cr_convertible(U, Type))> |
65 | | constexpr hb_array_t (const hb_array_t<U> &o) : |
66 | | hb_iter_with_fallback_t<hb_array_t, Type&> (), |
67 | 20.4M | arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {} hb_array_t<hb_aat_map_builder_t::feature_info_t const>::hb_array_t<hb_aat_map_builder_t::feature_info_t, (void*)0>(hb_array_t<hb_aat_map_builder_t::feature_info_t> const&) Line | Count | Source | 67 | 4.34M | arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {} |
hb_array_t<hb_aat_map_t::range_flags_t const>::hb_array_t<hb_aat_map_t::range_flags_t, (void*)0>(hb_array_t<hb_aat_map_t::range_flags_t> const&) Line | Count | Source | 67 | 472k | arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {} |
hb_array_t<hb_bit_set_t::page_map_t const>::hb_array_t<hb_bit_set_t::page_map_t, (void*)0>(hb_array_t<hb_bit_set_t::page_map_t> const&) Line | Count | Source | 67 | 10.3M | arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {} |
hb_array_t<hb_ot_map_t::feature_map_t const>::hb_array_t<hb_ot_map_t::feature_map_t, (void*)0>(hb_array_t<hb_ot_map_t::feature_map_t> const&) Line | Count | Source | 67 | 5.28M | arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {} |
hb_array_t<OT::HBGlyphID16 const>::hb_array_t<OT::HBGlyphID16, (void*)0>(hb_array_t<OT::HBGlyphID16> const&) Line | Count | Source | 67 | 9.87k | arrayZ (o.arrayZ), length (o.length), backwards_length (o.backwards_length) {} |
|
68 | | template <typename U, |
69 | | hb_enable_if (hb_is_cr_convertible(U, Type))> |
70 | | hb_array_t& operator = (const hb_array_t<U> &o) |
71 | | { arrayZ = o.arrayZ; length = o.length; backwards_length = o.backwards_length; return *this; } |
72 | | |
73 | | /* |
74 | | * Iterator implementation. |
75 | | */ |
76 | | typedef Type& __item_t__; |
77 | | static constexpr bool is_random_access_iterator = true; |
78 | | Type& __item_at__ (unsigned i) const |
79 | 2.22G | { |
80 | 2.22G | if (unlikely (i >= length)) return CrapOrNull (Type); |
81 | 2.22G | return arrayZ[i]; |
82 | 2.22G | } hb_array_t<OT::IntType<short, 2u> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 3.04k | { | 80 | 3.04k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 2.05k | return arrayZ[i]; | 82 | 3.04k | } |
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::__item_at__(unsigned int) const hb_array_t<hb_aat_layout_feature_type_t>::__item_at__(unsigned int) const Line | Count | Source | 79 | 170 | { | 80 | 170 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 170 | return arrayZ[i]; | 82 | 170 | } |
hb_array_t<AAT::FeatureName const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 170 | { | 80 | 170 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 170 | return arrayZ[i]; | 82 | 170 | } |
hb_array_t<AAT::SettingName const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 167 | { | 80 | 167 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 167 | return arrayZ[i]; | 82 | 167 | } |
hb_array_t<hb_aat_layout_feature_selector_info_t>::__item_at__(unsigned int) const Line | Count | Source | 79 | 85 | { | 80 | 85 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 85 | return arrayZ[i]; | 82 | 85 | } |
hb_array_t<hb_aat_map_t::range_flags_t const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 423k | { | 80 | 423k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 423k | return arrayZ[i]; | 82 | 423k | } |
Unexecuted instantiation: hb_array_t<unsigned long long const>::__item_at__(unsigned int) const hb_array_t<unsigned int>::__item_at__(unsigned int) const Line | Count | Source | 79 | 81.3M | { | 80 | 81.3M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 81.3M | return arrayZ[i]; | 82 | 81.3M | } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::__item_at__(unsigned int) const hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 22.8k | { | 80 | 22.8k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 22.8k | return arrayZ[i]; | 82 | 22.8k | } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t>::__item_at__(unsigned int) const hb_array_t<unsigned int const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 207k | { | 80 | 207k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 207k | return arrayZ[i]; | 82 | 207k | } |
Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::__item_at__(unsigned int) const hb_array_t<OT::Index const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 72.9M | { | 80 | 72.9M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 72.9M | return arrayZ[i]; | 82 | 72.9M | } |
hb_array_t<OT::IntType<unsigned int, 3u> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 54 | { | 80 | 54 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 54 | return arrayZ[i]; | 82 | 54 | } |
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Record<OT::LangSys> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Record<OT::Script> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<hb_inc_bimap_t const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const hb_array_t<int>::__item_at__(unsigned int) const Line | Count | Source | 79 | 1.45G | { | 80 | 1.45G | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 1.45G | return arrayZ[i]; | 82 | 1.45G | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 301M | { | 80 | 301M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 301M | return arrayZ[i]; | 82 | 301M | } |
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 32.1M | { | 80 | 32.1M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 32.1M | return arrayZ[i]; | 82 | 32.1M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 2.13M | { | 80 | 2.13M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 2.13M | return arrayZ[i]; | 82 | 2.13M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 29.7M | { | 80 | 29.7M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 29.7M | return arrayZ[i]; | 82 | 29.7M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 18.8k | { | 80 | 18.8k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 18.8k | return arrayZ[i]; | 82 | 18.8k | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::UVSMapping const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::VariationSelectorRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::EncodingRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::LayerRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<hb_ot_color_layer_t>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::DeltaSetIndexMap const*>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::index_map_subset_plan_t>::__item_at__(unsigned int) const hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 843k | { | 80 | 843k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 843k | return arrayZ[i]; | 82 | 843k | } |
hb_array_t<OT::contour_point_t>::__item_at__(unsigned int) const Line | Count | Source | 79 | 129M | { | 80 | 129M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 129M | return arrayZ[i]; | 82 | 129M | } |
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> >::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> >::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t>::__item_at__(unsigned int) const hb_array_t<OT::ResourceRecord const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 5.66k | { | 80 | 5.66k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 5.66k | return arrayZ[i]; | 82 | 5.66k | } |
Unexecuted instantiation: hb_array_t<OT::TableRecord const>::__item_at__(unsigned int) const hb_array_t<OT::AxisRecord const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 21.4k | { | 80 | 21.4k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 21.4k | return arrayZ[i]; | 82 | 21.4k | } |
hb_array_t<OT::IntType<unsigned int, 4u> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 21.7k | { | 80 | 21.7k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 21.0k | return arrayZ[i]; | 82 | 21.7k | } |
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::__item_at__(unsigned int) const hb_array_t<unsigned char const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 549k | { | 80 | 549k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 13.9k | return arrayZ[i]; | 82 | 549k | } |
hb_array_t<OT::IntType<unsigned char, 1u> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 13.4k | { | 80 | 13.4k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 6.50k | return arrayZ[i]; | 82 | 13.4k | } |
Unexecuted instantiation: hb_array_t<OT::DataMap const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<hb_ot_meta_tag_t>::__item_at__(unsigned int) const hb_array_t<OT::NameRecord const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 18.0M | { | 80 | 18.0M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 18.0M | return arrayZ[i]; | 82 | 18.0M | } |
hb_array_t<OT::HBGlyphID16 const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 362k | { | 80 | 362k | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 362k | return arrayZ[i]; | 82 | 362k | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 4.27M | { | 80 | 4.27M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 4.27M | return arrayZ[i]; | 82 | 4.27M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::VertOriginMetric const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::__item_at__(unsigned int) const hb_array_t<OT::MathGlyphVariantRecord const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 127 | { | 80 | 127 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 127 | return arrayZ[i]; | 82 | 127 | } |
hb_array_t<hb_ot_math_glyph_variant_t>::__item_at__(unsigned int) const Line | Count | Source | 79 | 127 | { | 80 | 127 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 127 | return arrayZ[i]; | 82 | 127 | } |
hb_array_t<OT::MathGlyphPartRecord const>::__item_at__(unsigned int) const Line | Count | Source | 79 | 128 | { | 80 | 128 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 128 | return arrayZ[i]; | 82 | 128 | } |
hb_array_t<hb_ot_math_glyph_part_t>::__item_at__(unsigned int) const Line | Count | Source | 79 | 128 | { | 80 | 128 | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 128 | return arrayZ[i]; | 82 | 128 | } |
Unexecuted instantiation: hb_array_t<OT::MathValueRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::MathKernInfoRecord const>::__item_at__(unsigned int) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::__item_at__(unsigned int) const hb_array_t<OT::HBGlyphID16>::__item_at__(unsigned int) const Line | Count | Source | 79 | 3.33M | { | 80 | 3.33M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 3.33M | return arrayZ[i]; | 82 | 3.33M | } |
hb_array_t<hb_glyph_info_t>::__item_at__(unsigned int) const Line | Count | Source | 79 | 96.1M | { | 80 | 96.1M | if (unlikely (i >= length)) return CrapOrNull (Type); | 81 | 89.5M | return arrayZ[i]; | 82 | 96.1M | } |
|
83 | | void __forward__ (unsigned n) |
84 | 1.85G | { |
85 | 1.85G | if (unlikely (n > length)) |
86 | 20.5k | n = length; |
87 | 1.85G | length -= n; |
88 | 1.85G | backwards_length += n; |
89 | 1.85G | arrayZ += n; |
90 | 1.85G | } hb_array_t<hb_aat_layout_feature_type_t>::__forward__(unsigned int) Line | Count | Source | 84 | 170 | { | 85 | 170 | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 170 | length -= n; | 88 | 170 | backwards_length += n; | 89 | 170 | arrayZ += n; | 90 | 170 | } |
hb_array_t<AAT::FeatureName const>::__forward__(unsigned int) Line | Count | Source | 84 | 170 | { | 85 | 170 | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 170 | length -= n; | 88 | 170 | backwards_length += n; | 89 | 170 | arrayZ += n; | 90 | 170 | } |
hb_array_t<hb_aat_layout_feature_selector_info_t>::__forward__(unsigned int) Line | Count | Source | 84 | 85 | { | 85 | 85 | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 85 | length -= n; | 88 | 85 | backwards_length += n; | 89 | 85 | arrayZ += n; | 90 | 85 | } |
hb_array_t<AAT::SettingName const>::__forward__(unsigned int) Line | Count | Source | 84 | 85 | { | 85 | 85 | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 85 | length -= n; | 88 | 85 | backwards_length += n; | 89 | 85 | arrayZ += n; | 90 | 85 | } |
hb_array_t<hb_aat_map_t::range_flags_t const>::__forward__(unsigned int) Line | Count | Source | 84 | 59.0k | { | 85 | 59.0k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 59.0k | length -= n; | 88 | 59.0k | backwards_length += n; | 89 | 59.0k | arrayZ += n; | 90 | 59.0k | } |
Unexecuted instantiation: hb_array_t<unsigned long long const>::__forward__(unsigned int) hb_array_t<unsigned int>::__forward__(unsigned int) Line | Count | Source | 84 | 80.2M | { | 85 | 80.2M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 80.2M | length -= n; | 88 | 80.2M | backwards_length += n; | 89 | 80.2M | arrayZ += n; | 90 | 80.2M | } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::__forward__(unsigned int) hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>::__forward__(unsigned int) Line | Count | Source | 84 | 22.8k | { | 85 | 22.8k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 22.8k | length -= n; | 88 | 22.8k | backwards_length += n; | 89 | 22.8k | arrayZ += n; | 90 | 22.8k | } |
hb_array_t<hb_serialize_context_t::object_t* const>::__forward__(unsigned int) Line | Count | Source | 84 | 55.3k | { | 85 | 55.3k | if (unlikely (n > length)) | 86 | 20.5k | n = length; | 87 | 55.3k | length -= n; | 88 | 55.3k | backwards_length += n; | 89 | 55.3k | arrayZ += n; | 90 | 55.3k | } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t>::__forward__(unsigned int) hb_array_t<unsigned int const>::__forward__(unsigned int) Line | Count | Source | 84 | 52.4k | { | 85 | 52.4k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 52.4k | length -= n; | 88 | 52.4k | backwards_length += n; | 89 | 52.4k | arrayZ += n; | 90 | 52.4k | } |
Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::__forward__(unsigned int) hb_array_t<OT::Index const>::__forward__(unsigned int) Line | Count | Source | 84 | 72.9M | { | 85 | 72.9M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 72.9M | length -= n; | 88 | 72.9M | backwards_length += n; | 89 | 72.9M | arrayZ += n; | 90 | 72.9M | } |
hb_array_t<OT::IntType<unsigned int, 3u> const>::__forward__(unsigned int) Line | Count | Source | 84 | 54 | { | 85 | 54 | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 54 | length -= n; | 88 | 54 | backwards_length += n; | 89 | 54 | arrayZ += n; | 90 | 54 | } |
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::Record<OT::LangSys> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::Record<OT::Script> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) hb_array_t<int>::__forward__(unsigned int) Line | Count | Source | 84 | 1.45G | { | 85 | 1.45G | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 1.45G | length -= n; | 88 | 1.45G | backwards_length += n; | 89 | 1.45G | arrayZ += n; | 90 | 1.45G | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::__forward__(unsigned int) Line | Count | Source | 84 | 197M | { | 85 | 197M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 197M | length -= n; | 88 | 197M | backwards_length += n; | 89 | 197M | arrayZ += n; | 90 | 197M | } |
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Line | Count | Source | 84 | 6.30M | { | 85 | 6.30M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 6.30M | length -= n; | 88 | 6.30M | backwards_length += n; | 89 | 6.30M | arrayZ += n; | 90 | 6.30M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Line | Count | Source | 84 | 666k | { | 85 | 666k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 666k | length -= n; | 88 | 666k | backwards_length += n; | 89 | 666k | arrayZ += n; | 90 | 666k | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Line | Count | Source | 84 | 4.89M | { | 85 | 4.89M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 4.89M | length -= n; | 88 | 4.89M | backwards_length += n; | 89 | 4.89M | arrayZ += n; | 90 | 4.89M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Line | Count | Source | 84 | 14.5k | { | 85 | 14.5k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 14.5k | length -= n; | 88 | 14.5k | backwards_length += n; | 89 | 14.5k | arrayZ += n; | 90 | 14.5k | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::UVSMapping const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::VariationSelectorRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::EncodingRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::LayerRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<hb_ot_color_layer_t>::__forward__(unsigned int) hb_array_t<OT::contour_point_t>::__forward__(unsigned int) Line | Count | Source | 84 | 11.5M | { | 85 | 11.5M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 11.5M | length -= n; | 88 | 11.5M | backwards_length += n; | 89 | 11.5M | arrayZ += n; | 90 | 11.5M | } |
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> >::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> >::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::TableRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::__forward__(unsigned int) hb_array_t<OT::IntType<unsigned int, 4u> const>::__forward__(unsigned int) Line | Count | Source | 84 | 20.9k | { | 85 | 20.9k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 20.9k | length -= n; | 88 | 20.9k | backwards_length += n; | 89 | 20.9k | arrayZ += n; | 90 | 20.9k | } |
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::DataMap const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<hb_ot_meta_tag_t>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::NameRecord const>::__forward__(unsigned int) hb_array_t<OT::HBGlyphID16 const>::__forward__(unsigned int) Line | Count | Source | 84 | 413k | { | 85 | 413k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 413k | length -= n; | 88 | 413k | backwards_length += n; | 89 | 413k | arrayZ += n; | 90 | 413k | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Line | Count | Source | 84 | 4.25M | { | 85 | 4.25M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 4.25M | length -= n; | 88 | 4.25M | backwards_length += n; | 89 | 4.25M | arrayZ += n; | 90 | 4.25M | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::VertOriginMetric const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::__forward__(unsigned int) hb_array_t<OT::MathGlyphVariantRecord const>::__forward__(unsigned int) Line | Count | Source | 84 | 333k | { | 85 | 333k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 333k | length -= n; | 88 | 333k | backwards_length += n; | 89 | 333k | arrayZ += n; | 90 | 333k | } |
hb_array_t<hb_ot_math_glyph_variant_t>::__forward__(unsigned int) Line | Count | Source | 84 | 333k | { | 85 | 333k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 333k | length -= n; | 88 | 333k | backwards_length += n; | 89 | 333k | arrayZ += n; | 90 | 333k | } |
hb_array_t<OT::MathGlyphPartRecord const>::__forward__(unsigned int) Line | Count | Source | 84 | 333k | { | 85 | 333k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 333k | length -= n; | 88 | 333k | backwards_length += n; | 89 | 333k | arrayZ += n; | 90 | 333k | } |
hb_array_t<hb_ot_math_glyph_part_t>::__forward__(unsigned int) Line | Count | Source | 84 | 333k | { | 85 | 333k | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 333k | length -= n; | 88 | 333k | backwards_length += n; | 89 | 333k | arrayZ += n; | 90 | 333k | } |
Unexecuted instantiation: hb_array_t<OT::MathValueRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::MathKernInfoRecord const>::__forward__(unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::__forward__(unsigned int) hb_array_t<OT::HBGlyphID16>::__forward__(unsigned int) Line | Count | Source | 84 | 3.34M | { | 85 | 3.34M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 3.34M | length -= n; | 88 | 3.34M | backwards_length += n; | 89 | 3.34M | arrayZ += n; | 90 | 3.34M | } |
hb_array_t<hb_glyph_info_t>::__forward__(unsigned int) Line | Count | Source | 84 | 20.8M | { | 85 | 20.8M | if (unlikely (n > length)) | 86 | 0 | n = length; | 87 | 20.8M | length -= n; | 88 | 20.8M | backwards_length += n; | 89 | 20.8M | arrayZ += n; | 90 | 20.8M | } |
|
91 | | void __rewind__ (unsigned n) |
92 | 3.09M | { |
93 | 3.09M | if (unlikely (n > backwards_length)) |
94 | 0 | n = backwards_length; |
95 | 3.09M | length += n; |
96 | 3.09M | backwards_length -= n; |
97 | 3.09M | arrayZ -= n; |
98 | 3.09M | } |
99 | 2.09G | unsigned __len__ () const { return length; } hb_array_t<AAT::FeatureName const>::__len__() const Line | Count | Source | 99 | 333k | unsigned __len__ () const { return length; } |
hb_array_t<AAT::SettingName const>::__len__() const Line | Count | Source | 99 | 333k | unsigned __len__ () const { return length; } |
hb_array_t<hb_aat_map_t::range_flags_t const>::__len__() const Line | Count | Source | 99 | 531k | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<unsigned long long const>::__len__() const hb_array_t<unsigned int>::__len__() const Line | Count | Source | 99 | 7.33M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::__len__() const hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>::__len__() const Line | Count | Source | 99 | 42.7k | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t>::__len__() const Unexecuted instantiation: hb_array_t<unsigned int const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::__len__() const hb_array_t<OT::Index const>::__len__() const Line | Count | Source | 99 | 77.9M | unsigned __len__ () const { return length; } |
hb_array_t<OT::IntType<unsigned int, 3u> const>::__len__() const Line | Count | Source | 99 | 333k | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Record<OT::LangSys> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Record<OT::Script> const>::__len__() const Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const>::__len__() const hb_array_t<OT::HBGlyphID16 const>::__len__() const Line | Count | Source | 99 | 849k | unsigned __len__ () const { return length; } |
hb_array_t<OT::HBGlyphID24 const>::__len__() const Line | Count | Source | 99 | 52.7k | unsigned __len__ () const { return length; } |
hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>::__len__() const Line | Count | Source | 99 | 379M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Line | Count | Source | 99 | 34.6M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Line | Count | Source | 99 | 2.14M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Line | Count | Source | 99 | 43.1M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Line | Count | Source | 99 | 80.4k | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::UVSMapping const>::__len__() const Unexecuted instantiation: hb_array_t<OT::VariationSelectorRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::EncodingRecord const>::__len__() const hb_array_t<int>::__len__() const Line | Count | Source | 99 | 1.46G | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::LayerRecord const>::__len__() const hb_array_t<OT::contour_point_t>::__len__() const Line | Count | Source | 99 | 14.2M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t>::__len__() const Unexecuted instantiation: hb_array_t<OT::TableRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::__len__() const hb_array_t<OT::IntType<unsigned int, 4u> const>::__len__() const Line | Count | Source | 99 | 61.3k | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned char, 1u> const>::__len__() const Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::__len__() const Unexecuted instantiation: hb_array_t<unsigned char const>::__len__() const Unexecuted instantiation: hb_array_t<OT::DataMap const>::__len__() const Unexecuted instantiation: hb_array_t<OT::NameRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Line | Count | Source | 99 | 5.02M | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Line | Count | Source | 99 | 225 | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::VertOriginMetric const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::__len__() const Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::__len__() const hb_array_t<OT::MathGlyphVariantRecord const>::__len__() const Line | Count | Source | 99 | 333k | unsigned __len__ () const { return length; } |
hb_array_t<hb_ot_math_glyph_variant_t>::__len__() const Line | Count | Source | 99 | 333k | unsigned __len__ () const { return length; } |
hb_array_t<OT::MathGlyphPartRecord const>::__len__() const Line | Count | Source | 99 | 333k | unsigned __len__ () const { return length; } |
hb_array_t<hb_ot_math_glyph_part_t>::__len__() const Line | Count | Source | 99 | 333k | unsigned __len__ () const { return length; } |
Unexecuted instantiation: hb_array_t<OT::MathValueRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::MathKernInfoRecord const>::__len__() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::__len__() const hb_array_t<OT::HBGlyphID16>::__len__() const Line | Count | Source | 99 | 959k | unsigned __len__ () const { return length; } |
hb_array_t<hb_glyph_info_t>::__len__() const Line | Count | Source | 99 | 67.3M | unsigned __len__ () const { return length; } |
|
100 | | /* Ouch. The operator== compares the contents of the array. For range-based for loops, |
101 | | * it's best if we can just compare arrayZ, though comparing contents is still fast, |
102 | | * but also would require that Type has operator==. As such, we optimize this operator |
103 | | * for range-based for loop and just compare arrayZ and length. |
104 | | * |
105 | | * The above comment is outdated now because we implemented separate begin/end to |
106 | | * objects that were using hb_array_t for range-based loop before. */ |
107 | | bool operator != (const hb_array_t& o) const |
108 | 1.29M | { return this->arrayZ != o.arrayZ || this->length != o.length; } Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t>::operator!=(hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, hb_array_t<char const>, false>::item_t> const&) const Unexecuted instantiation: hb_array_t<OT::Index const>::operator!=(hb_array_t<OT::Index const> const&) const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::operator!=(hb_array_t<OT::IntType<unsigned short, 2u> const> const&) const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::operator!=(hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t> const&) const Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const>::operator!=(hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const>::operator!=(hb_array_t<OT::Layout::GPOS_impl::MarkRecord const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 3u> const>::operator!=(hb_array_t<OT::IntType<unsigned int, 3u> const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const> const&) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>::operator!=(hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const> const&) const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t>::operator!=(hb_array_t<hb_hashmap_t<unsigned int, float, false>::item_t> const&) const Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::operator!=(hb_array_t<hb_array_t<unsigned char const> const> const&) const Unexecuted instantiation: hb_array_t<OT::NameRecord const>::operator!=(hb_array_t<OT::NameRecord const> const&) const Unexecuted instantiation: hb_array_t<OT::HBGlyphID16 const>::operator!=(hb_array_t<OT::HBGlyphID16 const> const&) const Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::operator!=(hb_array_t<OT::HBGlyphID24 const> const&) const hb_array_t<OT::MathGlyphVariantRecord const>::operator!=(hb_array_t<OT::MathGlyphVariantRecord const> const&) const Line | Count | Source | 108 | 333k | { return this->arrayZ != o.arrayZ || this->length != o.length; } |
hb_array_t<hb_ot_math_glyph_variant_t>::operator!=(hb_array_t<hb_ot_math_glyph_variant_t> const&) const Line | Count | Source | 108 | 127 | { return this->arrayZ != o.arrayZ || this->length != o.length; } |
hb_array_t<OT::MathGlyphPartRecord const>::operator!=(hb_array_t<OT::MathGlyphPartRecord const> const&) const Line | Count | Source | 108 | 333k | { return this->arrayZ != o.arrayZ || this->length != o.length; } |
hb_array_t<hb_ot_math_glyph_part_t>::operator!=(hb_array_t<hb_ot_math_glyph_part_t> const&) const Line | Count | Source | 108 | 128 | { return this->arrayZ != o.arrayZ || this->length != o.length; } |
hb_array_t<OT::HBGlyphID16>::operator!=(hb_array_t<OT::HBGlyphID16> const&) const Line | Count | Source | 108 | 632k | { return this->arrayZ != o.arrayZ || this->length != o.length; } |
|
109 | | |
110 | | /* Faster range-based for loop without bounds-check. */ |
111 | 6.66M | Type *begin () const { return arrayZ; } hb_array_t<hb_serialize_context_t::object_t* const>::begin() const Line | Count | Source | 111 | 55.3k | Type *begin () const { return arrayZ; } |
hb_array_t<hb_hashmap_t<hb_serialize_context_t::object_t const*, unsigned int, false>::item_t>::begin() const Line | Count | Source | 111 | 22.2k | Type *begin () const { return arrayZ; } |
hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::begin() const Line | Count | Source | 111 | 326k | Type *begin () const { return arrayZ; } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::unique_ptr<hb_set_t>, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb::shared_ptr<hb_map_t>, unsigned int, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::shared_ptr<hb_set_t>, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, OT::Feature const*, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_pair_t<unsigned int, int>, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::begin() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const>::begin() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_set_t, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<OT::LookupRecord const>::begin() const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::begin() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::begin() const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 3u> const>::begin() const Unexecuted instantiation: hb_array_t<OT::NoVariable<OT::ColorStop> const>::begin() const Unexecuted instantiation: hb_array_t<OT::Variable<OT::ColorStop> const>::begin() const Unexecuted instantiation: hb_array_t<OT::BaseGlyphRecord const>::begin() const hb_array_t<OT::LayerRecord const>::begin() const Line | Count | Source | 111 | 201 | Type *begin () const { return arrayZ; } |
Unexecuted instantiation: hb_array_t<OT::glyf_impl::SubsetGlyph>::begin() const Unexecuted instantiation: hb_array_t<OT::BitmapSizeTable const>::begin() const Unexecuted instantiation: hb_array_t<OT::Index const>::begin() const Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::begin() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, unsigned int, false>::item_t>::begin() const Unexecuted instantiation: hb_array_t<OT::NameRecord>::begin() const Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const>::begin() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::begin() const Unexecuted instantiation: hb_array_t<OT::MathGlyphPartRecord const>::begin() const Unexecuted instantiation: hb_array_t<OT::MathGlyphVariantRecord const>::begin() const hb_array_t<hb_ot_map_t::lookup_map_t const>::begin() const Line | Count | Source | 111 | 6.25M | Type *begin () const { return arrayZ; } |
|
112 | 6.66M | Type *end () const { return arrayZ + length; } hb_array_t<hb_serialize_context_t::object_t* const>::end() const Line | Count | Source | 112 | 55.3k | Type *end () const { return arrayZ + length; } |
hb_array_t<hb_hashmap_t<hb_serialize_context_t::object_t const*, unsigned int, false>::item_t>::end() const Line | Count | Source | 112 | 22.2k | Type *end () const { return arrayZ + length; } |
hb_array_t<hb_hashmap_t<unsigned int, unsigned int, true>::item_t>::end() const Line | Count | Source | 112 | 326k | Type *end () const { return arrayZ + length; } |
Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::unique_ptr<hb_set_t>, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb::shared_ptr<hb_map_t>, unsigned int, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb::shared_ptr<hb_set_t>, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, OT::Feature const*, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_pair_t<unsigned int, int>, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::end() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const>::end() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<unsigned int, hb_set_t, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<OT::LookupRecord const>::end() const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::end() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::end() const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 3u> const>::end() const Unexecuted instantiation: hb_array_t<OT::NoVariable<OT::ColorStop> const>::end() const Unexecuted instantiation: hb_array_t<OT::Variable<OT::ColorStop> const>::end() const Unexecuted instantiation: hb_array_t<OT::BaseGlyphRecord const>::end() const hb_array_t<OT::LayerRecord const>::end() const Line | Count | Source | 112 | 201 | Type *end () const { return arrayZ + length; } |
Unexecuted instantiation: hb_array_t<OT::glyf_impl::SubsetGlyph>::end() const Unexecuted instantiation: hb_array_t<OT::BitmapSizeTable const>::end() const Unexecuted instantiation: hb_array_t<OT::Index const>::end() const Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> const>::end() const Unexecuted instantiation: hb_array_t<hb_hashmap_t<hb_ot_name_record_ids_t, unsigned int, false>::item_t>::end() const Unexecuted instantiation: hb_array_t<OT::NameRecord>::end() const Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const>::end() const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>::end() const Unexecuted instantiation: hb_array_t<OT::MathGlyphPartRecord const>::end() const Unexecuted instantiation: hb_array_t<OT::MathGlyphVariantRecord const>::end() const hb_array_t<hb_ot_map_t::lookup_map_t const>::end() const Line | Count | Source | 112 | 6.25M | Type *end () const { return arrayZ + length; } |
|
113 | | |
114 | | |
115 | | /* Extra operators. |
116 | | */ |
117 | 55.1M | Type * operator & () const { return arrayZ; } hb_array_t<AAT::Feature const>::operator&() const Line | Count | Source | 117 | 421k | Type * operator & () const { return arrayZ; } |
Unexecuted instantiation: hb_array_t<OT::Index const>::operator&() const hb_array_t<OT::HBGlyphID16 const>::operator&() const Line | Count | Source | 117 | 689k | Type * operator & () const { return arrayZ; } |
hb_array_t<OT::HBGlyphID24 const>::operator&() const Line | Count | Source | 117 | 52.7k | Type * operator & () const { return arrayZ; } |
hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::operator&() const Line | Count | Source | 117 | 19.3M | Type * operator & () const { return arrayZ; } |
hb_array_t<OT::IntType<unsigned short, 2u> const>::operator&() const Line | Count | Source | 117 | 32.1M | Type * operator & () const { return arrayZ; } |
hb_array_t<OT::IntType<unsigned int, 3u> const>::operator&() const Line | Count | Source | 117 | 2.13M | Type * operator & () const { return arrayZ; } |
Unexecuted instantiation: hb_array_t<char const>::operator&() const hb_array_t<OT::AxisRecord const>::operator&() const Line | Count | Source | 117 | 20.2k | Type * operator & () const { return arrayZ; } |
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::operator&() const hb_array_t<unsigned char const>::operator&() const Line | Count | Source | 117 | 277k | Type * operator & () const { return arrayZ; } |
hb_array_t<OT::IntType<short, 2u> const>::operator&() const Line | Count | Source | 117 | 5.20k | Type * operator & () const { return arrayZ; } |
hb_array_t<OT::IntType<unsigned char, 1u> const>::operator&() const Line | Count | Source | 117 | 10.4k | Type * operator & () const { return arrayZ; } |
|
118 | 182M | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } hb_array_t<hb_ot_map_t::lookup_map_t>::operator hb_array_t<hb_ot_map_t::lookup_map_t const>() Line | Count | Source | 118 | 20.9k | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } |
Unexecuted instantiation: hb_array_t<hb_serialize_context_t::object_t::link_t>::operator hb_array_t<hb_serialize_context_t::object_t::link_t const>() hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t*>::operator hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t* const>() Line | Count | Source | 118 | 19.8k | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } |
hb_array_t<hb_serialize_context_t::object_t*>::operator hb_array_t<hb_serialize_context_t::object_t* const>() Line | Count | Source | 118 | 55.3k | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } |
hb_array_t<unsigned int>::operator hb_array_t<unsigned int const>() Line | Count | Source | 118 | 19.7k | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } |
Unexecuted instantiation: hb_array_t<hb_inc_bimap_t>::operator hb_array_t<hb_inc_bimap_t const>() hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t>::operator hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t const>() Line | Count | Source | 118 | 182M | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } |
Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> >::operator hb_array_t<hb_pair_t<unsigned int, unsigned int> const>() Unexecuted instantiation: hb_array_t<OT::LayerRecord>::operator hb_array_t<OT::LayerRecord const>() Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> >::operator hb_array_t<hb_array_t<unsigned char const> const>() hb_array_t<OT::HBGlyphID16>::operator hb_array_t<OT::HBGlyphID16 const>() Line | Count | Source | 118 | 19.7k | operator hb_array_t<const Type> () { return hb_array_t<const Type> (arrayZ, length); } |
|
119 | | template <typename T> operator T * () const { return arrayZ; } |
120 | | |
121 | | HB_INTERNAL bool operator == (const hb_array_t &o) const; |
122 | | |
123 | | uint32_t hash () const |
124 | | { |
125 | | uint32_t current = 0; |
126 | | for (auto &v : *this) |
127 | | current = current * 31 + hb_hash (v); |
128 | | return current; |
129 | | } |
130 | | |
131 | | /* |
132 | | * Compare, Sort, and Search. |
133 | | */ |
134 | | |
135 | | /* Note: our compare is NOT lexicographic; it also does NOT call Type::cmp. */ |
136 | | int cmp (const hb_array_t &a) const |
137 | 181M | { |
138 | 181M | if (length != a.length) |
139 | 82.5M | return (int) a.length - (int) length; |
140 | 98.5M | return hb_memcmp (a.arrayZ, arrayZ, get_size ()); |
141 | 181M | } |
142 | | HB_INTERNAL static int cmp (const void *pa, const void *pb) |
143 | | { |
144 | | hb_array_t *a = (hb_array_t *) pa; |
145 | | hb_array_t *b = (hb_array_t *) pb; |
146 | | return b->cmp (*a); |
147 | | } |
148 | | |
149 | | template <typename T> |
150 | | Type *lsearch (const T &x, Type *not_found = nullptr) |
151 | 1.53M | { |
152 | 1.53M | unsigned i; |
153 | 1.53M | return lfind (x, &i) ? &this->arrayZ[i] : not_found; |
154 | 1.53M | } hb_user_data_array_t::hb_user_data_item_t* hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::lsearch<hb_user_data_key_t*>(hb_user_data_key_t* const&, hb_user_data_array_t::hb_user_data_item_t*) Line | Count | Source | 151 | 642k | { | 152 | 642k | unsigned i; | 153 | 642k | return lfind (x, &i) ? &this->arrayZ[i] : not_found; | 154 | 642k | } |
hb_user_data_array_t::hb_user_data_item_t* hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::lsearch<hb_user_data_array_t::hb_user_data_item_t>(hb_user_data_array_t::hb_user_data_item_t const&, hb_user_data_array_t::hb_user_data_item_t*) Line | Count | Source | 151 | 336k | { | 152 | 336k | unsigned i; | 153 | 336k | return lfind (x, &i) ? &this->arrayZ[i] : not_found; | 154 | 336k | } |
hb_aat_map_builder_t::feature_info_t* hb_array_t<hb_aat_map_builder_t::feature_info_t>::lsearch<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, hb_aat_map_builder_t::feature_info_t*) Line | Count | Source | 151 | 227k | { | 152 | 227k | unsigned i; | 153 | 227k | return lfind (x, &i) ? &this->arrayZ[i] : not_found; | 154 | 227k | } |
OT::DataMap const* hb_array_t<OT::DataMap const>::lsearch<unsigned int>(unsigned int const&, OT::DataMap const*) Line | Count | Source | 151 | 333k | { | 152 | 333k | unsigned i; | 153 | 333k | return lfind (x, &i) ? &this->arrayZ[i] : not_found; | 154 | 333k | } |
|
155 | | template <typename T> |
156 | | const Type *lsearch (const T &x, const Type *not_found = nullptr) const |
157 | | { |
158 | | unsigned i; |
159 | | return lfind (x, &i) ? &this->arrayZ[i] : not_found; |
160 | | } |
161 | | template <typename T> |
162 | | bool lfind (const T &x, unsigned *pos = nullptr, |
163 | | hb_not_found_t not_found = HB_NOT_FOUND_DONT_STORE, |
164 | | unsigned int to_store = (unsigned int) -1) const |
165 | 12.1M | { |
166 | 101M | for (unsigned i = 0; i < length; ++i) |
167 | 91.9M | if (hb_equal (x, this->arrayZ[i])) |
168 | 2.30M | { |
169 | 2.30M | if (pos) |
170 | 2.30M | *pos = i; |
171 | 2.30M | return true; |
172 | 2.30M | } |
173 | | |
174 | 9.81M | if (pos) |
175 | 9.81M | { |
176 | 9.81M | switch (not_found) |
177 | 9.81M | { |
178 | 903k | case HB_NOT_FOUND_DONT_STORE: |
179 | 903k | break; |
180 | | |
181 | 8.90M | case HB_NOT_FOUND_STORE: |
182 | 8.90M | *pos = to_store; |
183 | 8.90M | break; |
184 | | |
185 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: |
186 | 0 | *pos = length; |
187 | 0 | break; |
188 | 9.81M | } |
189 | 9.81M | } |
190 | 9.81M | return false; |
191 | 9.81M | } bool hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::lfind<hb_user_data_key_t*>(hb_user_data_key_t* const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 165 | 642k | { | 166 | 642k | for (unsigned i = 0; i < length; ++i) | 167 | 635k | if (hb_equal (x, this->arrayZ[i])) | 168 | 635k | { | 169 | 635k | if (pos) | 170 | 635k | *pos = i; | 171 | 635k | return true; | 172 | 635k | } | 173 | | | 174 | 6.82k | if (pos) | 175 | 6.82k | { | 176 | 6.82k | switch (not_found) | 177 | 6.82k | { | 178 | 6.82k | case HB_NOT_FOUND_DONT_STORE: | 179 | 6.82k | break; | 180 | | | 181 | 0 | case HB_NOT_FOUND_STORE: | 182 | 0 | *pos = to_store; | 183 | 0 | break; | 184 | | | 185 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 186 | 0 | *pos = length; | 187 | 0 | break; | 188 | 6.82k | } | 189 | 6.82k | } | 190 | 6.82k | return false; | 191 | 6.82k | } |
bool hb_array_t<hb_user_data_array_t::hb_user_data_item_t>::lfind<hb_user_data_array_t::hb_user_data_item_t>(hb_user_data_array_t::hb_user_data_item_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 165 | 336k | { | 166 | 336k | for (unsigned i = 0; i < length; ++i) | 167 | 0 | if (hb_equal (x, this->arrayZ[i])) | 168 | 0 | { | 169 | 0 | if (pos) | 170 | 0 | *pos = i; | 171 | 0 | return true; | 172 | 0 | } | 173 | | | 174 | 336k | if (pos) | 175 | 336k | { | 176 | 336k | switch (not_found) | 177 | 336k | { | 178 | 336k | case HB_NOT_FOUND_DONT_STORE: | 179 | 336k | break; | 180 | | | 181 | 0 | case HB_NOT_FOUND_STORE: | 182 | 0 | *pos = to_store; | 183 | 0 | break; | 184 | | | 185 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 186 | 0 | *pos = length; | 187 | 0 | break; | 188 | 336k | } | 189 | 336k | } | 190 | 336k | return false; | 191 | 336k | } |
bool hb_array_t<hb_aat_map_builder_t::feature_info_t>::lfind<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 165 | 227k | { | 166 | 227k | for (unsigned i = 0; i < length; ++i) | 167 | 0 | if (hb_equal (x, this->arrayZ[i])) | 168 | 0 | { | 169 | 0 | if (pos) | 170 | 0 | *pos = i; | 171 | 0 | return true; | 172 | 0 | } | 173 | | | 174 | 227k | if (pos) | 175 | 227k | { | 176 | 227k | switch (not_found) | 177 | 227k | { | 178 | 227k | case HB_NOT_FOUND_DONT_STORE: | 179 | 227k | break; | 180 | | | 181 | 0 | case HB_NOT_FOUND_STORE: | 182 | 0 | *pos = to_store; | 183 | 0 | break; | 184 | | | 185 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 186 | 0 | *pos = length; | 187 | 0 | break; | 188 | 227k | } | 189 | 227k | } | 190 | 227k | return false; | 191 | 227k | } |
bool hb_array_t<OT::TableRecord const>::lfind<OT::Tag>(OT::Tag const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 165 | 10.5M | { | 166 | 100M | for (unsigned i = 0; i < length; ++i) | 167 | 91.3M | if (hb_equal (x, this->arrayZ[i])) | 168 | 1.67M | { | 169 | 1.67M | if (pos) | 170 | 1.67M | *pos = i; | 171 | 1.67M | return true; | 172 | 1.67M | } | 173 | | | 174 | 8.90M | if (pos) | 175 | 8.90M | { | 176 | 8.90M | switch (not_found) | 177 | 8.90M | { | 178 | 0 | case HB_NOT_FOUND_DONT_STORE: | 179 | 0 | break; | 180 | | | 181 | 8.90M | case HB_NOT_FOUND_STORE: | 182 | 8.90M | *pos = to_store; | 183 | 8.90M | break; | 184 | | | 185 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 186 | 0 | *pos = length; | 187 | 0 | break; | 188 | 8.90M | } | 189 | 8.90M | } | 190 | 8.90M | return false; | 191 | 8.90M | } |
Unexecuted instantiation: bool hb_array_t<OT::AxisRecord const>::lfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const bool hb_array_t<OT::DataMap const>::lfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 165 | 333k | { | 166 | 333k | for (unsigned i = 0; i < length; ++i) | 167 | 682 | if (hb_equal (x, this->arrayZ[i])) | 168 | 444 | { | 169 | 444 | if (pos) | 170 | 444 | *pos = i; | 171 | 444 | return true; | 172 | 444 | } | 173 | | | 174 | 332k | if (pos) | 175 | 332k | { | 176 | 332k | switch (not_found) | 177 | 332k | { | 178 | 332k | case HB_NOT_FOUND_DONT_STORE: | 179 | 332k | break; | 180 | | | 181 | 0 | case HB_NOT_FOUND_STORE: | 182 | 0 | *pos = to_store; | 183 | 0 | break; | 184 | | | 185 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 186 | 0 | *pos = length; | 187 | 0 | break; | 188 | 332k | } | 189 | 332k | } | 190 | 332k | return false; | 191 | 332k | } |
Unexecuted instantiation: bool hb_array_t<OT::StatAxisRecord const>::lfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const |
192 | | |
193 | | hb_sorted_array_t<Type> qsort (int (*cmp_)(const void*, const void*)) |
194 | 1.07M | { |
195 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); |
196 | 1.07M | if (likely (length)) |
197 | 579k | hb_qsort (arrayZ, length, this->get_item_size (), cmp_); |
198 | 1.07M | return hb_sorted_array_t<Type> (*this); |
199 | 1.07M | } Unexecuted instantiation: hb_array_t<unsigned int>::qsort(int (*)(void const*, void const*)) hb_array_t<hb_aat_map_builder_t::feature_event_t>::qsort(int (*)(void const*, void const*)) Line | Count | Source | 194 | 233k | { | 195 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); | 196 | 233k | if (likely (length)) | 197 | 0 | hb_qsort (arrayZ, length, this->get_item_size (), cmp_); | 198 | 233k | return hb_sorted_array_t<Type> (*this); | 199 | 233k | } |
Unexecuted instantiation: hb_array_t<hb_aat_map_builder_t::feature_info_t>::qsort(int (*)(void const*, void const*)) hb_array_t<OT::cff1::accelerator_t::gname_t>::qsort(int (*)(void const*, void const*)) Line | Count | Source | 194 | 19.1k | { | 195 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); | 196 | 19.1k | if (likely (length)) | 197 | 19.1k | hb_qsort (arrayZ, length, this->get_item_size (), cmp_); | 198 | 19.1k | return hb_sorted_array_t<Type> (*this); | 199 | 19.1k | } |
hb_array_t<hb_ot_name_entry_t>::qsort(int (*)(void const*, void const*)) Line | Count | Source | 194 | 327k | { | 195 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); | 196 | 327k | if (likely (length)) | 197 | 68.2k | hb_qsort (arrayZ, length, this->get_item_size (), cmp_); | 198 | 327k | return hb_sorted_array_t<Type> (*this); | 199 | 327k | } |
hb_array_t<hb_ot_map_builder_t::feature_info_t>::qsort(int (*)(void const*, void const*)) Line | Count | Source | 194 | 491k | { | 195 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); | 196 | 491k | if (likely (length)) | 197 | 491k | hb_qsort (arrayZ, length, this->get_item_size (), cmp_); | 198 | 491k | return hb_sorted_array_t<Type> (*this); | 199 | 491k | } |
|
200 | | hb_sorted_array_t<Type> qsort () |
201 | 185k | { |
202 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); |
203 | 185k | if (likely (length)) |
204 | 185k | hb_qsort (arrayZ, length, this->get_item_size (), Type::cmp); |
205 | 185k | return hb_sorted_array_t<Type> (*this); |
206 | 185k | } Unexecuted instantiation: hb_array_t<OT::NameRecord>::qsort() hb_array_t<hb_ot_map_t::lookup_map_t>::qsort() Line | Count | Source | 201 | 185k | { | 202 | | //static_assert (hb_enable_if (hb_is_trivially_copy_assignable(Type)), ""); | 203 | 185k | if (likely (length)) | 204 | 185k | hb_qsort (arrayZ, length, this->get_item_size (), Type::cmp); | 205 | 185k | return hb_sorted_array_t<Type> (*this); | 206 | 185k | } |
|
207 | | |
208 | | /* |
209 | | * Other methods. |
210 | | */ |
211 | | |
212 | 153M | unsigned int get_size () const { return length * this->get_item_size (); } hb_array_t<AAT::Feature const>::get_size() const Line | Count | Source | 212 | 421k | unsigned int get_size () const { return length * this->get_item_size (); } |
hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>::get_size() const Line | Count | Source | 212 | 19.3M | unsigned int get_size () const { return length * this->get_item_size (); } |
hb_array_t<OT::IntType<unsigned short, 2u> const>::get_size() const Line | Count | Source | 212 | 32.1M | unsigned int get_size () const { return length * this->get_item_size (); } |
hb_array_t<OT::IntType<unsigned int, 3u> const>::get_size() const Line | Count | Source | 212 | 2.13M | unsigned int get_size () const { return length * this->get_item_size (); } |
Unexecuted instantiation: hb_array_t<OT::LayerRecord const>::get_size() const hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::get_size() const Line | Count | Source | 212 | 653k | unsigned int get_size () const { return length * this->get_item_size (); } |
hb_array_t<OT::contour_point_t>::get_size() const Line | Count | Source | 212 | 45.3k | unsigned int get_size () const { return length * this->get_item_size (); } |
hb_array_t<char const>::get_size() const Line | Count | Source | 212 | 98.5M | unsigned int get_size () const { return length * this->get_item_size (); } |
hb_array_t<OT::AxisRecord const>::get_size() const Line | Count | Source | 212 | 20.2k | unsigned int get_size () const { return length * this->get_item_size (); } |
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::get_size() const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> const>::get_size() const Unexecuted instantiation: hb_array_t<OT::Index const>::get_size() const hb_array_t<OT::IntType<unsigned char, 1u> const>::get_size() const Line | Count | Source | 212 | 10.4k | unsigned int get_size () const { return length * this->get_item_size (); } |
Unexecuted instantiation: hb_array_t<unsigned char const>::get_size() const hb_array_t<OT::IntType<short, 2u> const>::get_size() const Line | Count | Source | 212 | 5.20k | unsigned int get_size () const { return length * this->get_item_size (); } |
|
213 | | |
214 | | /* |
215 | | * Reverse the order of items in this array in the range [start, end). |
216 | | */ |
217 | | void reverse (unsigned start = 0, unsigned end = -1) |
218 | 1.28M | { |
219 | 1.28M | start = hb_min (start, length); |
220 | 1.28M | end = hb_min (end, length); |
221 | | |
222 | 1.28M | if (end < start + 2) |
223 | 1.02M | return; |
224 | | |
225 | 160M | for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--) |
226 | 160M | hb_swap (arrayZ[rhs], arrayZ[lhs]); |
227 | 259k | } hb_array_t<hb_glyph_info_t>::reverse(unsigned int, unsigned int) Line | Count | Source | 218 | 1.22M | { | 219 | 1.22M | start = hb_min (start, length); | 220 | 1.22M | end = hb_min (end, length); | 221 | | | 222 | 1.22M | if (end < start + 2) | 223 | 1.00M | return; | 224 | | | 225 | 157M | for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--) | 226 | 156M | hb_swap (arrayZ[rhs], arrayZ[lhs]); | 227 | 212k | } |
hb_array_t<hb_glyph_position_t>::reverse(unsigned int, unsigned int) Line | Count | Source | 218 | 60.9k | { | 219 | 60.9k | start = hb_min (start, length); | 220 | 60.9k | end = hb_min (end, length); | 221 | | | 222 | 60.9k | if (end < start + 2) | 223 | 13.9k | return; | 224 | | | 225 | 3.81M | for (unsigned lhs = start, rhs = end - 1; lhs < rhs; lhs++, rhs--) | 226 | 3.76M | hb_swap (arrayZ[rhs], arrayZ[lhs]); | 227 | 47.0k | } |
Unexecuted instantiation: hb_array_t<OT::VariationSelectorRecord>::reverse(unsigned int, unsigned int) |
228 | | |
229 | | hb_array_t sub_array (unsigned int start_offset = 0, unsigned int *seg_count = nullptr /* IN/OUT */) const |
230 | 27.4M | { |
231 | 27.4M | if (!start_offset && !seg_count) |
232 | 132k | return *this; |
233 | | |
234 | 27.3M | unsigned int count = length; |
235 | 27.3M | if (unlikely (start_offset > count)) |
236 | 38.4k | count = 0; |
237 | 27.2M | else |
238 | 27.2M | count -= start_offset; |
239 | 27.3M | if (seg_count) |
240 | 13.9M | count = *seg_count = hb_min (count, *seg_count); |
241 | 27.3M | return hb_array_t (arrayZ + start_offset, count); |
242 | 27.4M | } hb_array_t<AAT::FeatureName const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 333k | { | 231 | 333k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 333k | unsigned int count = length; | 235 | 333k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 333k | else | 238 | 333k | count -= start_offset; | 239 | 333k | if (seg_count) | 240 | 333k | count = *seg_count = hb_min (count, *seg_count); | 241 | 333k | return hb_array_t (arrayZ + start_offset, count); | 242 | 333k | } |
hb_array_t<AAT::SettingName const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 333k | { | 231 | 333k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 333k | unsigned int count = length; | 235 | 333k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 333k | else | 238 | 333k | count -= start_offset; | 239 | 333k | if (seg_count) | 240 | 333k | count = *seg_count = hb_min (count, *seg_count); | 241 | 333k | return hb_array_t (arrayZ + start_offset, count); | 242 | 333k | } |
hb_array_t<hb_ot_map_t::lookup_map_t const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 20.9k | { | 231 | 20.9k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 20.9k | unsigned int count = length; | 235 | 20.9k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 20.9k | else | 238 | 20.9k | count -= start_offset; | 239 | 20.9k | if (seg_count) | 240 | 20.9k | count = *seg_count = hb_min (count, *seg_count); | 241 | 20.9k | return hb_array_t (arrayZ + start_offset, count); | 242 | 20.9k | } |
hb_array_t<OT::Index const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 5.02M | { | 231 | 5.02M | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 5.02M | unsigned int count = length; | 235 | 5.02M | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 5.02M | else | 238 | 5.02M | count -= start_offset; | 239 | 5.02M | if (seg_count) | 240 | 5.02M | count = *seg_count = hb_min (count, *seg_count); | 241 | 5.02M | return hb_array_t (arrayZ + start_offset, count); | 242 | 5.02M | } |
hb_array_t<OT::IntType<unsigned int, 3u> const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 333k | { | 231 | 333k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 333k | unsigned int count = length; | 235 | 333k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 333k | else | 238 | 333k | count -= start_offset; | 239 | 333k | if (seg_count) | 240 | 333k | count = *seg_count = hb_min (count, *seg_count); | 241 | 333k | return hb_array_t (arrayZ + start_offset, count); | 242 | 333k | } |
Unexecuted instantiation: hb_array_t<OT::Record<OT::LangSys> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::Record<OT::Script> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::Record<OT::Feature> const>::sub_array(unsigned int, unsigned int*) const hb_array_t<OT::LayerRecord const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 333k | { | 231 | 333k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 333k | unsigned int count = length; | 235 | 333k | if (unlikely (start_offset > count)) | 236 | 102 | count = 0; | 237 | 333k | else | 238 | 333k | count -= start_offset; | 239 | 333k | if (seg_count) | 240 | 333k | count = *seg_count = hb_min (count, *seg_count); | 241 | 333k | return hb_array_t (arrayZ + start_offset, count); | 242 | 333k | } |
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 383k | { | 231 | 383k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 383k | unsigned int count = length; | 235 | 383k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 383k | else | 238 | 383k | count -= start_offset; | 239 | 383k | if (seg_count) | 240 | 383k | count = *seg_count = hb_min (count, *seg_count); | 241 | 383k | return hb_array_t (arrayZ + start_offset, count); | 242 | 383k | } |
hb_array_t<char const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 311k | { | 231 | 311k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 311k | unsigned int count = length; | 235 | 311k | if (unlikely (start_offset > count)) | 236 | 10.2k | count = 0; | 237 | 301k | else | 238 | 301k | count -= start_offset; | 239 | 311k | if (seg_count) | 240 | 311k | count = *seg_count = hb_min (count, *seg_count); | 241 | 311k | return hb_array_t (arrayZ + start_offset, count); | 242 | 311k | } |
hb_array_t<OT::contour_point_t>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 17.8M | { | 231 | 17.8M | if (!start_offset && !seg_count) | 232 | 132k | return *this; | 233 | | | 234 | 17.6M | unsigned int count = length; | 235 | 17.6M | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 17.6M | else | 238 | 17.6M | count -= start_offset; | 239 | 17.6M | if (seg_count) | 240 | 4.35M | count = *seg_count = hb_min (count, *seg_count); | 241 | 17.6M | return hb_array_t (arrayZ + start_offset, count); | 242 | 17.8M | } |
Unexecuted instantiation: hb_array_t<OT::TableRecord const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::AxisRecord const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>::sub_array(unsigned int, unsigned int*) const hb_array_t<OT::IntType<unsigned int, 4u> const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 81.1k | { | 231 | 81.1k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 81.1k | unsigned int count = length; | 235 | 81.1k | if (unlikely (start_offset > count)) | 236 | 28.1k | count = 0; | 237 | 52.9k | else | 238 | 52.9k | count -= start_offset; | 239 | 81.1k | if (seg_count) | 240 | 81.1k | count = *seg_count = hb_min (count, *seg_count); | 241 | 81.1k | return hb_array_t (arrayZ + start_offset, count); | 242 | 81.1k | } |
hb_array_t<unsigned char const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 872k | { | 231 | 872k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 872k | unsigned int count = length; | 235 | 872k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 872k | else | 238 | 872k | count -= start_offset; | 239 | 872k | if (seg_count) | 240 | 872k | count = *seg_count = hb_min (count, *seg_count); | 241 | 872k | return hb_array_t (arrayZ + start_offset, count); | 242 | 872k | } |
Unexecuted instantiation: hb_array_t<OT::DataMap const>::sub_array(unsigned int, unsigned int*) const hb_array_t<OT::HBGlyphID16 const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 207k | { | 231 | 207k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 207k | unsigned int count = length; | 235 | 207k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 207k | else | 238 | 207k | count -= start_offset; | 239 | 207k | if (seg_count) | 240 | 207k | count = *seg_count = hb_min (count, *seg_count); | 241 | 207k | return hb_array_t (arrayZ + start_offset, count); | 242 | 207k | } |
hb_array_t<unsigned int const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 53.9k | { | 231 | 53.9k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 53.9k | unsigned int count = length; | 235 | 53.9k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 53.9k | else | 238 | 53.9k | count -= start_offset; | 239 | 53.9k | if (seg_count) | 240 | 53.9k | count = *seg_count = hb_min (count, *seg_count); | 241 | 53.9k | return hb_array_t (arrayZ + start_offset, count); | 242 | 53.9k | } |
Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfLangSys> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_array_t<OT::Record<OT::JstfScript> const>::sub_array(unsigned int, unsigned int*) const hb_array_t<OT::MathGlyphVariantRecord const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 333k | { | 231 | 333k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 333k | unsigned int count = length; | 235 | 333k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 333k | else | 238 | 333k | count -= start_offset; | 239 | 333k | if (seg_count) | 240 | 333k | count = *seg_count = hb_min (count, *seg_count); | 241 | 333k | return hb_array_t (arrayZ + start_offset, count); | 242 | 333k | } |
hb_array_t<OT::MathGlyphPartRecord const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 333k | { | 231 | 333k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 333k | unsigned int count = length; | 235 | 333k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 333k | else | 238 | 333k | count -= start_offset; | 239 | 333k | if (seg_count) | 240 | 333k | count = *seg_count = hb_min (count, *seg_count); | 241 | 333k | return hb_array_t (arrayZ + start_offset, count); | 242 | 333k | } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::sub_array(unsigned int, unsigned int*) const hb_array_t<CFF::number_t const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 478k | { | 231 | 478k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 478k | unsigned int count = length; | 235 | 478k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 478k | else | 238 | 478k | count -= start_offset; | 239 | 478k | if (seg_count) | 240 | 478k | count = *seg_count = hb_min (count, *seg_count); | 241 | 478k | return hb_array_t (arrayZ + start_offset, count); | 242 | 478k | } |
hb_array_t<hb_ot_map_t::lookup_map_t>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 230 | 185k | { | 231 | 185k | if (!start_offset && !seg_count) | 232 | 0 | return *this; | 233 | | | 234 | 185k | unsigned int count = length; | 235 | 185k | if (unlikely (start_offset > count)) | 236 | 0 | count = 0; | 237 | 185k | else | 238 | 185k | count -= start_offset; | 239 | 185k | if (seg_count) | 240 | 185k | count = *seg_count = hb_min (count, *seg_count); | 241 | 185k | return hb_array_t (arrayZ + start_offset, count); | 242 | 185k | } |
|
243 | | hb_array_t sub_array (unsigned int start_offset, unsigned int seg_count) const |
244 | 7.24M | { return sub_array (start_offset, &seg_count); } hb_array_t<hb_ot_map_t::lookup_map_t const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 20.9k | { return sub_array (start_offset, &seg_count); } |
Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> const>::sub_array(unsigned int, unsigned int) const hb_array_t<OT::LayerRecord const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 333k | { return sub_array (start_offset, &seg_count); } |
hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 383k | { return sub_array (start_offset, &seg_count); } |
hb_array_t<char const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 311k | { return sub_array (start_offset, &seg_count); } |
hb_array_t<OT::contour_point_t>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 4.35M | { return sub_array (start_offset, &seg_count); } |
hb_array_t<OT::IntType<unsigned int, 4u> const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 40.7k | { return sub_array (start_offset, &seg_count); } |
hb_array_t<unsigned char const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 872k | { return sub_array (start_offset, &seg_count); } |
hb_array_t<OT::HBGlyphID16 const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 207k | { return sub_array (start_offset, &seg_count); } |
hb_array_t<unsigned int const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 53.9k | { return sub_array (start_offset, &seg_count); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>::sub_array(unsigned int, unsigned int) const hb_array_t<CFF::number_t const>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 478k | { return sub_array (start_offset, &seg_count); } |
hb_array_t<hb_ot_map_t::lookup_map_t>::sub_array(unsigned int, unsigned int) const Line | Count | Source | 244 | 185k | { return sub_array (start_offset, &seg_count); } |
|
245 | | |
246 | | hb_array_t truncate (unsigned length) const { return sub_array (0, length); } |
247 | | |
248 | | template <typename T, |
249 | | unsigned P = sizeof (Type), |
250 | | hb_enable_if (P == 1)> |
251 | | const T *as () const |
252 | 380M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } OT::GDEF const* hb_array_t<char const>::as<OT::GDEF, 1u, (void*)0>() const Line | Count | Source | 252 | 15.1M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::ltag const* hb_array_t<char const>::as<AAT::ltag, 1u, (void*)0>() const Line | Count | Source | 252 | 4.31M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::morx const* hb_array_t<char const>::as<AAT::morx, 1u, (void*)0>() const Line | Count | Source | 252 | 957k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::mort const* hb_array_t<char const>::as<AAT::mort, 1u, (void*)0>() const Line | Count | Source | 252 | 614k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::kerx const* hb_array_t<char const>::as<AAT::kerx, 1u, (void*)0>() const Line | Count | Source | 252 | 571k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::ankr const* hb_array_t<char const>::as<AAT::ankr, 1u, (void*)0>() const Line | Count | Source | 252 | 74.7k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::trak const* hb_array_t<char const>::as<AAT::trak, 1u, (void*)0>() const Line | Count | Source | 252 | 496k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
AAT::feat const* hb_array_t<char const>::as<AAT::feat, 1u, (void*)0>() const Line | Count | Source | 252 | 999k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::Layout::GPOS const* hb_array_t<char const>::as<OT::Layout::GPOS, 1u, (void*)0>() const Line | Count | Source | 252 | 70.2M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::maxp const* hb_array_t<char const>::as<OT::maxp, 1u, (void*)0>() const Line | Count | Source | 252 | 980k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::head const* hb_array_t<char const>::as<OT::head, 1u, (void*)0>() const Line | Count | Source | 252 | 985k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::MVAR const* hb_array_t<char const>::as<OT::MVAR, 1u, (void*)0>() const Line | Count | Source | 252 | 1.70M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::cmap const* hb_array_t<char const>::as<OT::cmap, 1u, (void*)0>() const Line | Count | Source | 252 | 655k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::OS2 const* hb_array_t<char const>::as<OT::OS2, 1u, (void*)0>() const Line | Count | Source | 252 | 1.86M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::COLR const* hb_array_t<char const>::as<OT::COLR, 1u, (void*)0>() const Line | Count | Source | 252 | 1.42M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::hhea const* hb_array_t<char const>::as<OT::hhea, 1u, (void*)0>() const Line | Count | Source | 252 | 2.08M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::vhea const* hb_array_t<char const>::as<OT::vhea, 1u, (void*)0>() const Line | Count | Source | 252 | 324k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::GlyphVariationData const* hb_array_t<char const>::as<OT::GlyphVariationData, 1u, (void*)0>() const Line | Count | Source | 252 | 514k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::gvar const* hb_array_t<char const>::as<OT::gvar, 1u, (void*)0>() const Line | Count | Source | 252 | 2.66M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::hmtxvmtx<OT::hmtx, OT::hhea, OT::HVAR> const* hb_array_t<char const>::as<OT::hmtxvmtx<OT::hmtx, OT::hhea, OT::HVAR>, 1u, (void*)0>() const Line | Count | Source | 252 | 19.9M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::hmtxvmtx<OT::vmtx, OT::vhea, OT::VVAR> const* hb_array_t<char const>::as<OT::hmtxvmtx<OT::vmtx, OT::vhea, OT::VVAR>, 1u, (void*)0>() const Line | Count | Source | 252 | 74.1k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::glyf_impl::GlyphHeader const* hb_array_t<char const>::as<OT::glyf_impl::GlyphHeader, 1u, (void*)0>() const Line | Count | Source | 252 | 2.30M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::loca const* hb_array_t<char const>::as<OT::loca, 1u, (void*)0>() const Line | Count | Source | 252 | 1.38M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::glyf const* hb_array_t<char const>::as<OT::glyf, 1u, (void*)0>() const Line | Count | Source | 252 | 871k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::OpenTypeFontFile const* hb_array_t<char const>::as<OT::OpenTypeFontFile, 1u, (void*)0>() const Line | Count | Source | 252 | 12.7M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::fvar const* hb_array_t<char const>::as<OT::fvar, 1u, (void*)0>() const Line | Count | Source | 252 | 2.01M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::avar const* hb_array_t<char const>::as<OT::avar, 1u, (void*)0>() const Line | Count | Source | 252 | 998k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::SVG const* hb_array_t<char const>::as<OT::SVG, 1u, (void*)0>() const Line | Count | Source | 252 | 999k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::sbix const* hb_array_t<char const>::as<OT::sbix, 1u, (void*)0>() const Line | Count | Source | 252 | 1.46M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::CBLC const* hb_array_t<char const>::as<OT::CBLC, 1u, (void*)0>() const Line | Count | Source | 252 | 1.52M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::CBDT const* hb_array_t<char const>::as<OT::CBDT, 1u, (void*)0>() const Line | Count | Source | 252 | 169 | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::CPAL const* hb_array_t<char const>::as<OT::CPAL, 1u, (void*)0>() const Line | Count | Source | 252 | 2.52M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::sbix::accelerator_t::PNGHeader const* hb_array_t<char const>::as<OT::sbix::accelerator_t::PNGHeader, 1u, (void*)0>() const Line | Count | Source | 252 | 2.98k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::cff1 const* hb_array_t<char const>::as<OT::cff1, 1u, (void*)0>() const Line | Count | Source | 252 | 322k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::cff2 const* hb_array_t<char const>::as<OT::cff2, 1u, (void*)0>() const Line | Count | Source | 252 | 289k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::meta const* hb_array_t<char const>::as<OT::meta, 1u, (void*)0>() const Line | Count | Source | 252 | 666k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::name const* hb_array_t<char const>::as<OT::name, 1u, (void*)0>() const Line | Count | Source | 252 | 2.06M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::post const* hb_array_t<char const>::as<OT::post, 1u, (void*)0>() const Line | Count | Source | 252 | 399k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::Layout::GSUB const* hb_array_t<char const>::as<OT::Layout::GSUB, 1u, (void*)0>() const Line | Count | Source | 252 | 192M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::HVAR const* hb_array_t<char const>::as<OT::HVAR, 1u, (void*)0>() const Line | Count | Source | 252 | 6.84M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::VVAR const* hb_array_t<char const>::as<OT::VVAR, 1u, (void*)0>() const Line | Count | Source | 252 | 4.40k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::VORG const* hb_array_t<char const>::as<OT::VORG, 1u, (void*)0>() const Line | Count | Source | 252 | 330k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::kern const* hb_array_t<char const>::as<OT::kern, 1u, (void*)0>() const Line | Count | Source | 252 | 511k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::BASE const* hb_array_t<char const>::as<OT::BASE, 1u, (void*)0>() const Line | Count | Source | 252 | 333k | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
OT::MATH const* hb_array_t<char const>::as<OT::MATH, 1u, (void*)0>() const Line | Count | Source | 252 | 23.3M | { return length < hb_min_size (T) ? &Null (T) : reinterpret_cast<const T *> (arrayZ); } |
|
253 | | |
254 | | template <typename T, |
255 | | unsigned P = sizeof (Type), |
256 | | hb_enable_if (P == 1)> |
257 | | bool check_range (const T *p, unsigned int size = T::static_size) const |
258 | 34.0M | { |
259 | 34.0M | return arrayZ <= ((const char *) p) |
260 | 34.0M | && ((const char *) p) <= arrayZ + length |
261 | 34.0M | && (unsigned int) (arrayZ + length - (const char *) p) >= size; |
262 | 34.0M | } bool hb_array_t<char const>::check_range<OT::TupleVariationHeader, 1u, (void*)0>(OT::TupleVariationHeader const*, unsigned int) const Line | Count | Source | 258 | 818k | { | 259 | 818k | return arrayZ <= ((const char *) p) | 260 | 818k | && ((const char *) p) <= arrayZ + length | 261 | 818k | && (unsigned int) (arrayZ + length - (const char *) p) >= size; | 262 | 818k | } |
bool hb_array_t<char const>::check_range<OT::IntType<unsigned char, 1u>, 1u, (void*)0>(OT::IntType<unsigned char, 1u> const*, unsigned int) const Line | Count | Source | 258 | 164k | { | 259 | 164k | return arrayZ <= ((const char *) p) | 260 | 164k | && ((const char *) p) <= arrayZ + length | 261 | 164k | && (unsigned int) (arrayZ + length - (const char *) p) >= size; | 262 | 164k | } |
bool hb_array_t<char const>::check_range<OT::IntType<unsigned short, 2u>, 1u, (void*)0>(OT::IntType<unsigned short, 2u> const*, unsigned int) const Line | Count | Source | 258 | 206k | { | 259 | 206k | return arrayZ <= ((const char *) p) | 260 | 206k | && ((const char *) p) <= arrayZ + length | 261 | 206k | && (unsigned int) (arrayZ + length - (const char *) p) >= size; | 262 | 206k | } |
bool hb_array_t<char const>::check_range<OT::glyf_impl::CompositeGlyphRecord, 1u, (void*)0>(OT::glyf_impl::CompositeGlyphRecord const*, unsigned int) const Line | Count | Source | 258 | 3.81M | { | 259 | 3.81M | return arrayZ <= ((const char *) p) | 260 | 3.81M | && ((const char *) p) <= arrayZ + length | 261 | 3.81M | && (unsigned int) (arrayZ + length - (const char *) p) >= size; | 262 | 3.81M | } |
bool hb_array_t<char const>::check_range<OT::glyf_impl::VarCompositeGlyphRecord, 1u, (void*)0>(OT::glyf_impl::VarCompositeGlyphRecord const*, unsigned int) const Line | Count | Source | 258 | 29.0M | { | 259 | 29.0M | return arrayZ <= ((const char *) p) | 260 | 29.0M | && ((const char *) p) <= arrayZ + length | 261 | 29.0M | && (unsigned int) (arrayZ + length - (const char *) p) >= size; | 262 | 29.0M | } |
|
263 | | |
264 | | /* Only call if you allocated the underlying array using hb_malloc() or similar. */ |
265 | | void fini () |
266 | 0 | { hb_free ((void *) arrayZ); arrayZ = nullptr; length = 0; } |
267 | | |
268 | | template <typename hb_serialize_context_t, |
269 | | typename U = Type, |
270 | | hb_enable_if (!(sizeof (U) < sizeof (long long) && hb_is_trivially_copy_assignable(hb_decay<Type>)))> |
271 | | hb_array_t copy (hb_serialize_context_t *c) const |
272 | | { |
273 | | TRACE_SERIALIZE (this); |
274 | | auto* out = c->start_embed (arrayZ); |
275 | | if (unlikely (!c->extend_size (out, get_size (), false))) return_trace (hb_array_t ()); |
276 | | for (unsigned i = 0; i < length; i++) |
277 | | out[i] = arrayZ[i]; /* TODO: add version that calls c->copy() */ |
278 | | return_trace (hb_array_t (out, length)); |
279 | | } |
280 | | |
281 | | template <typename hb_serialize_context_t, |
282 | | typename U = Type, |
283 | | hb_enable_if (sizeof (U) < sizeof (long long) && hb_is_trivially_copy_assignable(hb_decay<Type>))> |
284 | | hb_array_t copy (hb_serialize_context_t *c) const |
285 | 0 | { |
286 | 0 | TRACE_SERIALIZE (this); |
287 | 0 | auto* out = c->start_embed (arrayZ); |
288 | 0 | if (unlikely (!c->extend_size (out, get_size (), false))) return_trace (hb_array_t ()); |
289 | 0 | hb_memcpy (out, arrayZ, get_size ()); |
290 | 0 | return_trace (hb_array_t (out, length)); |
291 | 0 | } Unexecuted instantiation: hb_array_t<OT::LayerRecord const> hb_array_t<OT::LayerRecord const>::copy<hb_serialize_context_t, OT::LayerRecord const, (void*)0>(hb_serialize_context_t*) const Unexecuted instantiation: hb_array_t<char const> hb_array_t<char const>::copy<hb_serialize_context_t, char const, (void*)0>(hb_serialize_context_t*) const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> const> hb_array_t<OT::IntType<unsigned int, 4u> const>::copy<hb_serialize_context_t, OT::IntType<unsigned int, 4u> const, (void*)0>(hb_serialize_context_t*) const Unexecuted instantiation: hb_array_t<OT::Index const> hb_array_t<OT::Index const>::copy<hb_serialize_context_t, OT::Index const, (void*)0>(hb_serialize_context_t*) const Unexecuted instantiation: hb_array_t<OT::IntType<unsigned char, 1u> const> hb_array_t<OT::IntType<unsigned char, 1u> const>::copy<hb_serialize_context_t, OT::IntType<unsigned char, 1u> const, (void*)0>(hb_serialize_context_t*) const Unexecuted instantiation: hb_array_t<unsigned char const> hb_array_t<unsigned char const>::copy<hb_serialize_context_t, unsigned char const, (void*)0>(hb_serialize_context_t*) const |
292 | | |
293 | | template <typename hb_sanitize_context_t> |
294 | | bool sanitize (hb_sanitize_context_t *c) const |
295 | 1.71M | { return c->check_array (arrayZ, length); } bool hb_array_t<OT::AxisRecord const>::sanitize<hb_sanitize_context_t>(hb_sanitize_context_t*) const Line | Count | Source | 295 | 21.9k | { return c->check_array (arrayZ, length); } |
bool hb_array_t<unsigned char const>::sanitize<hb_sanitize_context_t>(hb_sanitize_context_t*) const Line | Count | Source | 295 | 1.69M | { return c->check_array (arrayZ, length); } |
|
296 | | |
297 | | /* |
298 | | * Members |
299 | | */ |
300 | | |
301 | | public: |
302 | | Type *arrayZ = nullptr; |
303 | | unsigned int length = 0; |
304 | | unsigned int backwards_length = 0; |
305 | | }; |
306 | | template <typename T> inline hb_array_t<T> |
307 | | hb_array (T *array, unsigned int length) |
308 | 375M | { return hb_array_t<T> (array, length); } hb_array_t<OT::IntType<short, 2u> const> hb_array<OT::IntType<short, 2u> const>(OT::IntType<short, 2u> const*, unsigned int) Line | Count | Source | 308 | 5.20k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_aat_layout_feature_type_t> hb_array<hb_aat_layout_feature_type_t>(hb_aat_layout_feature_type_t*, unsigned int) Line | Count | Source | 308 | 333k | { return hb_array_t<T> (array, length); } |
hb_array_t<AAT::SettingName const> hb_array<AAT::SettingName const>(AAT::SettingName const*, unsigned int) Line | Count | Source | 308 | 333k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_aat_layout_feature_selector_info_t> hb_array<hb_aat_layout_feature_selector_info_t>(hb_aat_layout_feature_selector_info_t*, unsigned int) Line | Count | Source | 308 | 333k | { return hb_array_t<T> (array, length); } |
hb_array_t<AAT::Feature const> hb_array<AAT::Feature const>(AAT::Feature const*, unsigned int) Line | Count | Source | 308 | 421k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_aat_map_builder_t::feature_info_t> hb_array<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t*, unsigned int) Line | Count | Source | 308 | 4.56M | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_aat_map_t::range_flags_t> hb_array<hb_aat_map_t::range_flags_t>(hb_aat_map_t::range_flags_t*, unsigned int) Line | Count | Source | 308 | 472k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_user_data_array_t::hb_user_data_item_t> hb_array<hb_user_data_array_t::hb_user_data_item_t>(hb_user_data_array_t::hb_user_data_item_t*, unsigned int) Line | Count | Source | 308 | 978k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_ot_map_t::feature_map_t> hb_array<hb_ot_map_t::feature_map_t>(hb_ot_map_t::feature_map_t*, unsigned int) Line | Count | Source | 308 | 5.28M | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_ot_map_t::lookup_map_t const> hb_array<hb_ot_map_t::lookup_map_t const>(hb_ot_map_t::lookup_map_t const*, unsigned int) Line | Count | Source | 308 | 125k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_ot_map_t::lookup_map_t> hb_array<hb_ot_map_t::lookup_map_t>(hb_ot_map_t::lookup_map_t*, unsigned int) Line | Count | Source | 308 | 206k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_bit_set_t::page_map_t> hb_array<hb_bit_set_t::page_map_t>(hb_bit_set_t::page_map_t*, unsigned int) Line | Count | Source | 308 | 10.3M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<hb_serialize_context_t::object_t::link_t> hb_array<hb_serialize_context_t::object_t::link_t>(hb_serialize_context_t::object_t::link_t*, unsigned int) hb_array_t<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t*> hb_array<hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t*>(hb_pool_t<hb_serialize_context_t::object_t, 32u>::chunk_t**, unsigned int) Line | Count | Source | 308 | 19.8k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_serialize_context_t::object_t*> hb_array<hb_serialize_context_t::object_t*>(hb_serialize_context_t::object_t**, unsigned int) Line | Count | Source | 308 | 55.3k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<unsigned int const> hb_array<unsigned int const>(unsigned int const*, unsigned int) hb_array_t<OT::Index const> hb_array<OT::Index const>(OT::Index const*, unsigned int) Line | Count | Source | 308 | 5.02M | { return hb_array_t<T> (array, length); } |
hb_array_t<unsigned int> hb_array<unsigned int>(unsigned int*, unsigned int) Line | Count | Source | 308 | 5.66M | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::IntType<unsigned int, 3u> const> hb_array<OT::IntType<unsigned int, 3u> const>(OT::IntType<unsigned int, 3u> const*, unsigned int) Line | Count | Source | 308 | 2.46M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<hb_pair_t<unsigned int, unsigned int> > hb_array<hb_pair_t<unsigned int, unsigned int> >(hb_pair_t<unsigned int, unsigned int>*, unsigned int) hb_array_t<OT::IntType<unsigned short, 2u> const> hb_array<OT::IntType<unsigned short, 2u> const>(OT::IntType<unsigned short, 2u> const*, unsigned int) Line | Count | Source | 308 | 32.1M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<hb_inc_bimap_t> hb_array<hb_inc_bimap_t>(hb_inc_bimap_t*, unsigned int) Unexecuted instantiation: hb_array_t<OT::FeatureTableSubstitutionRecord const> hb_array<OT::FeatureTableSubstitutionRecord const>(OT::FeatureTableSubstitutionRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::AttachPoint, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::CaretValue, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<int> hb_array<int>(int*, unsigned int) Line | Count | Source | 308 | 2.08M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::LigGlyph, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const> hb_array<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const>(OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned int, 4u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 19.3M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::LookupRecord const> hb_array<OT::LookupRecord const>(OT::LookupRecord const*, unsigned int) hb_array_t<OT::hb_accelerate_subtables_context_t::hb_applicable_t> hb_array<OT::hb_accelerate_subtables_context_t::hb_applicable_t>(OT::hb_accelerate_subtables_context_t::hb_applicable_t*, unsigned int) Line | Count | Source | 308 | 182M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::EntryExitRecord const> hb_array<OT::Layout::GPOS_impl::EntryExitRecord const>(OT::Layout::GPOS_impl::EntryExitRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::Layout::GPOS_impl::MarkRecord const> hb_array<OT::Layout::GPOS_impl::MarkRecord const>(OT::Layout::GPOS_impl::MarkRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 28.3M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::RuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Rule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 1.47M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 38.2M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::ChainRule<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 65.8k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<hb_aat_map_builder_t::feature_event_t> hb_array<hb_aat_map_builder_t::feature_event_t>(hb_aat_map_builder_t::feature_event_t*, unsigned int) Line | Count | Source | 308 | 233k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::NoVariable<OT::ColorStop> const> hb_array<OT::NoVariable<OT::ColorStop> const>(OT::NoVariable<OT::ColorStop> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::Variable<OT::ColorStop> const> hb_array<OT::Variable<OT::ColorStop> const>(OT::Variable<OT::ColorStop> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const> hb_array<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const>(OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, 4u>, true> const*, unsigned int) hb_array_t<OT::LayerRecord const> hb_array<OT::LayerRecord const>(OT::LayerRecord const*, unsigned int) Line | Count | Source | 308 | 333k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<hb_ot_color_layer_t> hb_array<hb_ot_color_layer_t>(hb_ot_color_layer_t*, unsigned int) Unexecuted instantiation: hb_array_t<OT::LayerRecord> hb_array<OT::LayerRecord>(OT::LayerRecord*, unsigned int) Unexecuted instantiation: hb_array_t<OT::DeltaSetIndexMap const*> hb_array<OT::DeltaSetIndexMap const*>(OT::DeltaSetIndexMap const**, unsigned int) Unexecuted instantiation: hb_array_t<OT::index_map_subset_plan_t> hb_array<OT::index_map_subset_plan_t>(OT::index_map_subset_plan_t*, unsigned int) hb_array_t<OT::HBFixed<OT::IntType<short, 2u>, 14u> const> hb_array<OT::HBFixed<OT::IntType<short, 2u>, 14u> const>(OT::HBFixed<OT::IntType<short, 2u>, 14u> const*, unsigned int) Line | Count | Source | 308 | 1.02M | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::contour_point_t> hb_array<OT::contour_point_t>(OT::contour_point_t*, unsigned int) Line | Count | Source | 308 | 19.3M | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::glyf_impl::SubsetGlyph> hb_array<OT::glyf_impl::SubsetGlyph>(OT::glyf_impl::SubsetGlyph*, unsigned int) Unexecuted instantiation: hb_array_t<OT::IntType<unsigned short, 2u> > hb_array<OT::IntType<unsigned short, 2u> >(OT::IntType<unsigned short, 2u>*, unsigned int) Unexecuted instantiation: hb_array_t<OT::IntType<unsigned int, 4u> > hb_array<OT::IntType<unsigned int, 4u> >(OT::IntType<unsigned int, 4u>*, unsigned int) hb_array_t<OT::TableRecord const> hb_array<OT::TableRecord const>(OT::TableRecord const*, unsigned int) Line | Count | Source | 308 | 10.5M | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::ResourceRecord const> hb_array<OT::ResourceRecord const>(OT::ResourceRecord const*, unsigned int) Line | Count | Source | 308 | 5.66k | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::AxisRecord const> hb_array<OT::AxisRecord const>(OT::AxisRecord const*, unsigned int) Line | Count | Source | 308 | 63.7k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::HBFixed<OT::IntType<int, 4u>, 16u> const> hb_array<OT::HBFixed<OT::IntType<int, 4u>, 16u> const>(OT::HBFixed<OT::IntType<int, 4u>, 16u> const*, unsigned int) hb_array_t<OT::IntType<unsigned int, 4u> const> hb_array<OT::IntType<unsigned int, 4u> const>(OT::IntType<unsigned int, 4u> const*, unsigned int) Line | Count | Source | 308 | 734 | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::BitmapSizeTable const> hb_array<OT::BitmapSizeTable const>(OT::BitmapSizeTable const*, unsigned int) hb_array_t<OT::IntType<unsigned char, 1u> const> hb_array<OT::IntType<unsigned char, 1u> const>(OT::IntType<unsigned char, 1u> const*, unsigned int) Line | Count | Source | 308 | 15.6k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<hb_array_t<unsigned char const> > hb_array<hb_array_t<unsigned char const> >(hb_array_t<unsigned char const>*, unsigned int) hb_array_t<OT::cff1::accelerator_t::gname_t> hb_array<OT::cff1::accelerator_t::gname_t>(OT::cff1::accelerator_t::gname_t*, unsigned int) Line | Count | Source | 308 | 38.2k | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::DataMap const> hb_array<OT::DataMap const>(OT::DataMap const*, unsigned int) Line | Count | Source | 308 | 333k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<hb_ot_meta_tag_t> hb_array<hb_ot_meta_tag_t>(hb_ot_meta_tag_t*, unsigned int) Unexecuted instantiation: hb_array_t<OT::NameRecord const> hb_array<OT::NameRecord const>(OT::NameRecord const*, unsigned int) hb_array_t<hb_ot_name_entry_t> hb_array<hb_ot_name_entry_t>(hb_ot_name_entry_t*, unsigned int) Line | Count | Source | 308 | 327k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::HBGlyphID16 const> hb_array<OT::HBGlyphID16 const>(OT::HBGlyphID16 const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 775k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::MediumTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Line | Count | Source | 308 | 225 | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::HBGlyphID24 const> hb_array<OT::HBGlyphID24 const>(OT::HBGlyphID24 const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::MediumTypes>, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const> hb_array<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const>(OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::IntType<unsigned int, 3u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::AxisValueRecord const> hb_array<OT::AxisValueRecord const>(OT::AxisValueRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::AxisValue, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::StatAxisRecord const> hb_array<OT::StatAxisRecord const>(OT::StatAxisRecord const*, unsigned int) hb_array_t<OT::MathGlyphVariantRecord const> hb_array<OT::MathGlyphVariantRecord const>(OT::MathGlyphVariantRecord const*, unsigned int) Line | Count | Source | 308 | 333k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_ot_math_glyph_variant_t> hb_array<hb_ot_math_glyph_variant_t>(hb_ot_math_glyph_variant_t*, unsigned int) Line | Count | Source | 308 | 333k | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::MathGlyphPartRecord const> hb_array<OT::MathGlyphPartRecord const>(OT::MathGlyphPartRecord const*, unsigned int) Line | Count | Source | 308 | 333k | { return hb_array_t<T> (array, length); } |
hb_array_t<hb_ot_math_glyph_part_t> hb_array<hb_ot_math_glyph_part_t>(hb_ot_math_glyph_part_t*, unsigned int) Line | Count | Source | 308 | 333k | { return hb_array_t<T> (array, length); } |
Unexecuted instantiation: hb_array_t<OT::MathValueRecord const> hb_array<OT::MathValueRecord const>(OT::MathValueRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::MathKernInfoRecord const> hb_array<OT::MathKernInfoRecord const>(OT::MathKernInfoRecord const*, unsigned int) Unexecuted instantiation: hb_array_t<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const> hb_array<OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const>(OT::OffsetTo<OT::MathGlyphConstruction, OT::IntType<unsigned short, 2u>, true> const*, unsigned int) hb_array_t<hb_ot_map_builder_t::feature_info_t> hb_array<hb_ot_map_builder_t::feature_info_t>(hb_ot_map_builder_t::feature_info_t*, unsigned int) Line | Count | Source | 308 | 491k | { return hb_array_t<T> (array, length); } |
hb_array_t<OT::HBGlyphID16> hb_array<OT::HBGlyphID16>(OT::HBGlyphID16*, unsigned int) Line | Count | Source | 308 | 29.7k | { return hb_array_t<T> (array, length); } |
|
309 | | template <typename T, unsigned int length_> inline hb_array_t<T> |
310 | | hb_array (T (&array_)[length_]) |
311 | 0 | { return hb_array_t<T> (array_); } Unexecuted instantiation: hb_array_t<unsigned long long const> hb_array<unsigned long long const, 8u>(unsigned long long const (&) [8u]) Unexecuted instantiation: hb_array_t<hb::shared_ptr<hb_set_t> > hb_array<hb::shared_ptr<hb_set_t>, 8u>(hb::shared_ptr<hb_set_t> (&) [8u]) |
312 | | |
313 | | template <typename Type> |
314 | | struct hb_sorted_array_t : |
315 | | hb_array_t<Type>, |
316 | | hb_iter_t<hb_sorted_array_t<Type>, Type&> |
317 | | { |
318 | | typedef hb_iter_t<hb_sorted_array_t, Type&> iter_base_t; |
319 | | HB_ITER_USING (iter_base_t); |
320 | | static constexpr bool is_random_access_iterator = true; |
321 | | static constexpr bool is_sorted_iterator = true; |
322 | | |
323 | | hb_sorted_array_t () = default; |
324 | | hb_sorted_array_t (const hb_sorted_array_t&) = default; |
325 | | ~hb_sorted_array_t () = default; |
326 | | hb_sorted_array_t& operator= (const hb_sorted_array_t&) = default; |
327 | | hb_sorted_array_t& operator= (hb_sorted_array_t&&) = default; |
328 | | |
329 | 291M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} hb_sorted_array_t<AAT::FeatureName const>::hb_sorted_array_t(AAT::FeatureName const*, unsigned int) Line | Count | Source | 329 | 999k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::hb_sorted_array_t(OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const*, unsigned int) Line | Count | Source | 329 | 159M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::hb_sorted_array_t(OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const*, unsigned int) Line | Count | Source | 329 | 6.39M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::HBGlyphID16 const>::hb_sorted_array_t(OT::HBGlyphID16 const*, unsigned int) Line | Count | Source | 329 | 101M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::HBGlyphID24 const>::hb_sorted_array_t(OT::HBGlyphID24 const*, unsigned int) Line | Count | Source | 329 | 2.87M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<AAT::KernPair const>::hb_sorted_array_t(AAT::KernPair const*, unsigned int) Line | Count | Source | 329 | 314k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::TableRecord const>::hb_sorted_array_t(OT::TableRecord const*, unsigned int) Line | Count | Source | 329 | 2.12M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::VariationSelectorRecord const>::hb_sorted_array_t(OT::VariationSelectorRecord const*, unsigned int) Line | Count | Source | 329 | 1.00M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::UVSMapping const>::hb_sorted_array_t(OT::UVSMapping const*, unsigned int) Line | Count | Source | 329 | 667k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::EncodingRecord const>::hb_sorted_array_t(OT::EncodingRecord const*, unsigned int) Line | Count | Source | 329 | 2.67M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::CmapSubtableLongGroup const>::hb_sorted_array_t(OT::CmapSubtableLongGroup const*, unsigned int) Line | Count | Source | 329 | 4.63M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::hb_sorted_array_t(OT::BaseGlyphPaintRecord const*, unsigned int) Line | Count | Source | 329 | 621k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::BaseGlyphRecord const>::hb_sorted_array_t(OT::BaseGlyphRecord const*, unsigned int) Line | Count | Source | 329 | 343k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::hb_sorted_array_t(OT::SVGDocumentIndexEntry const*, unsigned int) Line | Count | Source | 329 | 333k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::UnicodeValueRange const>::hb_sorted_array_t(OT::UnicodeValueRange const*, unsigned int) Line | Count | Source | 329 | 334k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::VertOriginMetric const>::hb_sorted_array_t(OT::VertOriginMetric const*, unsigned int) Line | Count | Source | 329 | 1.61k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::ClipRecord const>::hb_sorted_array_t(OT::ClipRecord const*, unsigned int) Line | Count | Source | 329 | 622k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::Record<OT::Script> const>::hb_sorted_array_t(OT::Record<OT::Script> const*, unsigned int) Line | Count | Source | 329 | 3.67M | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Feature> const>::hb_sorted_array_t(OT::Record<OT::Feature> const*, unsigned int) hb_sorted_array_t<OT::Record<OT::LangSys> const>::hb_sorted_array_t(OT::Record<OT::LangSys> const*, unsigned int) Line | Count | Source | 329 | 994k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::BaseScriptRecord const>::hb_sorted_array_t(OT::BaseScriptRecord const*, unsigned int) Line | Count | Source | 329 | 666k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::Tag const>::hb_sorted_array_t(OT::Tag const*, unsigned int) Line | Count | Source | 329 | 4.11k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<OT::HBGlyphID16>::hb_sorted_array_t(OT::HBGlyphID16*, unsigned int) Line | Count | Source | 329 | 19.8k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
hb_sorted_array_t<LangTag const>::hb_sorted_array_t(LangTag const*, unsigned int) Line | Count | Source | 329 | 497k | constexpr hb_sorted_array_t (Type *array_, unsigned int length_) : hb_array_t<Type> (array_, length_) {} |
|
330 | | template <unsigned int length_> |
331 | 0 | constexpr hb_sorted_array_t (Type (&array_)[length_]) : hb_array_t<Type> (array_) {} Unexecuted instantiation: hb_sorted_array_t<hb_aat_feature_mapping_t const>::hb_sorted_array_t<78u>(hb_aat_feature_mapping_t const (&) [78u]) Unexecuted instantiation: hb_sorted_array_t<sid_to_gid_t const>::hb_sorted_array_t<165u>(sid_to_gid_t const (&) [165u]) Unexecuted instantiation: hb_sorted_array_t<sid_to_gid_t const>::hb_sorted_array_t<86u>(sid_to_gid_t const (&) [86u]) |
332 | | |
333 | | template <typename U, |
334 | | hb_enable_if (hb_is_cr_convertible(U, Type))> |
335 | | constexpr hb_sorted_array_t (const hb_array_t<U> &o) : |
336 | | hb_array_t<Type> (o), |
337 | 22.3M | hb_iter_t<hb_sorted_array_t, Type&> () {} hb_sorted_array_t<AAT::FeatureName const>::hb_sorted_array_t<AAT::FeatureName const, (void*)0>(hb_array_t<AAT::FeatureName const> const&) Line | Count | Source | 337 | 333k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t const>::hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t, (void*)0>(hb_array_t<hb_aat_map_builder_t::feature_info_t> const&) Line | Count | Source | 337 | 4.34M | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_aat_map_t::range_flags_t const>::hb_sorted_array_t<hb_aat_map_t::range_flags_t, (void*)0>(hb_array_t<hb_aat_map_t::range_flags_t> const&) Line | Count | Source | 337 | 472k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_aat_map_builder_t::feature_event_t>::hb_sorted_array_t<hb_aat_map_builder_t::feature_event_t, (void*)0>(hb_array_t<hb_aat_map_builder_t::feature_event_t> const&) Line | Count | Source | 337 | 233k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t>::hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t, (void*)0>(hb_array_t<hb_aat_map_builder_t::feature_info_t> const&) Line | Count | Source | 337 | 227k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
Unexecuted instantiation: hb_sorted_array_t<OT::TableRecord const>::hb_sorted_array_t<OT::TableRecord const, (void*)0>(hb_array_t<OT::TableRecord const> const&) hb_sorted_array_t<hb_bit_set_t::page_map_t const>::hb_sorted_array_t<hb_bit_set_t::page_map_t, (void*)0>(hb_array_t<hb_bit_set_t::page_map_t> const&) Line | Count | Source | 337 | 10.3M | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<OT::cff1::accelerator_t::gname_t>::hb_sorted_array_t<OT::cff1::accelerator_t::gname_t, (void*)0>(hb_array_t<OT::cff1::accelerator_t::gname_t> const&) Line | Count | Source | 337 | 57.4k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Script> const>::hb_sorted_array_t<OT::Record<OT::Script> const, (void*)0>(hb_array_t<OT::Record<OT::Script> const> const&) Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Feature> const>::hb_sorted_array_t<OT::Record<OT::Feature> const, (void*)0>(hb_array_t<OT::Record<OT::Feature> const> const&) Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::LangSys> const>::hb_sorted_array_t<OT::Record<OT::LangSys> const, (void*)0>(hb_array_t<OT::Record<OT::LangSys> const> const&) hb_sorted_array_t<hb_ot_name_entry_t>::hb_sorted_array_t<hb_ot_name_entry_t, (void*)0>(hb_array_t<hb_ot_name_entry_t> const&) Line | Count | Source | 337 | 327k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_ot_map_t::feature_map_t const>::hb_sorted_array_t<hb_ot_map_t::feature_map_t, (void*)0>(hb_array_t<hb_ot_map_t::feature_map_t> const&) Line | Count | Source | 337 | 5.28M | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_ot_map_builder_t::feature_info_t>::hb_sorted_array_t<hb_ot_map_builder_t::feature_info_t, (void*)0>(hb_array_t<hb_ot_map_builder_t::feature_info_t> const&) Line | Count | Source | 337 | 491k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<hb_ot_map_t::lookup_map_t>::hb_sorted_array_t<hb_ot_map_t::lookup_map_t, (void*)0>(hb_array_t<hb_ot_map_t::lookup_map_t> const&) Line | Count | Source | 337 | 185k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<OT::HBGlyphID16>::hb_sorted_array_t<OT::HBGlyphID16, (void*)0>(hb_array_t<OT::HBGlyphID16> const&) Line | Count | Source | 337 | 13.4k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
hb_sorted_array_t<OT::HBGlyphID16 const>::hb_sorted_array_t<OT::HBGlyphID16, (void*)0>(hb_array_t<OT::HBGlyphID16> const&) Line | Count | Source | 337 | 9.87k | hb_iter_t<hb_sorted_array_t, Type&> () {} |
|
338 | | template <typename U, |
339 | | hb_enable_if (hb_is_cr_convertible(U, Type))> |
340 | | hb_sorted_array_t& operator = (const hb_array_t<U> &o) |
341 | | { hb_array_t<Type> (*this) = o; return *this; } |
342 | | |
343 | | /* Iterator implementation. */ |
344 | | |
345 | | /* See comment in hb_array_of::operator != */ |
346 | | bool operator != (const hb_sorted_array_t& o) const |
347 | 645k | { return this->arrayZ != o.arrayZ || this->length != o.length; } Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::LangSys> const>::operator!=(hb_sorted_array_t<OT::Record<OT::LangSys> const> const&) const Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Script> const>::operator!=(hb_sorted_array_t<OT::Record<OT::Script> const> const&) const Unexecuted instantiation: hb_sorted_array_t<hb_pair_t<unsigned int, unsigned int> const>::operator!=(hb_sorted_array_t<hb_pair_t<unsigned int, unsigned int> const> const&) const Unexecuted instantiation: hb_sorted_array_t<OT::UVSMapping const>::operator!=(hb_sorted_array_t<OT::UVSMapping const> const&) const Unexecuted instantiation: hb_sorted_array_t<OT::EncodingRecord const>::operator!=(hb_sorted_array_t<OT::EncodingRecord const> const&) const Unexecuted instantiation: hb_sorted_array_t<OT::VertOriginMetric const>::operator!=(hb_sorted_array_t<OT::VertOriginMetric const> const&) const hb_sorted_array_t<OT::HBGlyphID16>::operator!=(hb_sorted_array_t<OT::HBGlyphID16> const&) const Line | Count | Source | 347 | 645k | { return this->arrayZ != o.arrayZ || this->length != o.length; } |
|
348 | | |
349 | | /* Faster range-based for loop without bounds-check. */ |
350 | 674k | Type *begin () const { return this->arrayZ; } Unexecuted instantiation: hb_sorted_array_t<unsigned int const>::begin() const hb_sorted_array_t<OT::HBGlyphID16 const>::begin() const Line | Count | Source | 350 | 7.61k | Type *begin () const { return this->arrayZ; } |
Unexecuted instantiation: hb_sorted_array_t<OT::HBGlyphID24 const>::begin() const hb_sorted_array_t<OT::UVSMapping const>::begin() const Line | Count | Source | 350 | 333k | Type *begin () const { return this->arrayZ; } |
hb_sorted_array_t<OT::VariationSelectorRecord const>::begin() const Line | Count | Source | 350 | 333k | Type *begin () const { return this->arrayZ; } |
Unexecuted instantiation: hb_sorted_array_t<OT::ClipRecord const>::begin() const Unexecuted instantiation: hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::begin() const |
351 | 674k | Type *end () const { return this->arrayZ + this->length; } Unexecuted instantiation: hb_sorted_array_t<unsigned int const>::end() const hb_sorted_array_t<OT::HBGlyphID16 const>::end() const Line | Count | Source | 351 | 7.61k | Type *end () const { return this->arrayZ + this->length; } |
Unexecuted instantiation: hb_sorted_array_t<OT::HBGlyphID24 const>::end() const hb_sorted_array_t<OT::UVSMapping const>::end() const Line | Count | Source | 351 | 333k | Type *end () const { return this->arrayZ + this->length; } |
hb_sorted_array_t<OT::VariationSelectorRecord const>::end() const Line | Count | Source | 351 | 333k | Type *end () const { return this->arrayZ + this->length; } |
Unexecuted instantiation: hb_sorted_array_t<OT::ClipRecord const>::end() const Unexecuted instantiation: hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::end() const |
352 | | |
353 | | |
354 | | hb_sorted_array_t sub_array (unsigned int start_offset, unsigned int *seg_count /* IN/OUT */) const |
355 | 333k | { return hb_sorted_array_t (((const hb_array_t<Type> *) (this))->sub_array (start_offset, seg_count)); } hb_sorted_array_t<AAT::FeatureName const>::sub_array(unsigned int, unsigned int*) const Line | Count | Source | 355 | 333k | { return hb_sorted_array_t (((const hb_array_t<Type> *) (this))->sub_array (start_offset, seg_count)); } |
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::LangSys> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Script> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Feature> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_sorted_array_t<OT::TableRecord const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::JstfLangSys> const>::sub_array(unsigned int, unsigned int*) const Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::JstfScript> const>::sub_array(unsigned int, unsigned int*) const |
356 | | hb_sorted_array_t sub_array (unsigned int start_offset, unsigned int seg_count) const |
357 | | { return sub_array (start_offset, &seg_count); } |
358 | | |
359 | | hb_sorted_array_t truncate (unsigned length) const { return sub_array (0, length); } |
360 | | |
361 | | template <typename T> |
362 | | Type *bsearch (const T &x, Type *not_found = nullptr) |
363 | 187M | { |
364 | 187M | unsigned int i; |
365 | 187M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; |
366 | 187M | } AAT::FeatureName const* hb_sorted_array_t<AAT::FeatureName const>::bsearch<hb_aat_layout_feature_type_t>(hb_aat_layout_feature_type_t const&, AAT::FeatureName const*) Line | Count | Source | 363 | 666k | { | 364 | 666k | unsigned int i; | 365 | 666k | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 666k | } |
Unexecuted instantiation: hb_aat_feature_mapping_t const* hb_sorted_array_t<hb_aat_feature_mapping_t const>::bsearch<unsigned int>(unsigned int const&, hb_aat_feature_mapping_t const*) hb_aat_map_builder_t::feature_info_t const* hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t const>::bsearch<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, hb_aat_map_builder_t::feature_info_t const*) Line | Count | Source | 363 | 4.34M | { | 364 | 4.34M | unsigned int i; | 365 | 4.34M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 4.34M | } |
OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const* hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::bsearch<unsigned int>(unsigned int const&, OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const*) Line | Count | Source | 363 | 159M | { | 364 | 159M | unsigned int i; | 365 | 159M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 159M | } |
OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const* hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::bsearch<unsigned int>(unsigned int const&, OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const*) Line | Count | Source | 363 | 6.39M | { | 364 | 6.39M | unsigned int i; | 365 | 6.39M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 6.39M | } |
AAT::KernPair const* hb_sorted_array_t<AAT::KernPair const>::bsearch<AAT::hb_glyph_pair_t>(AAT::hb_glyph_pair_t const&, AAT::KernPair const*) Line | Count | Source | 363 | 314k | { | 364 | 314k | unsigned int i; | 365 | 314k | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 314k | } |
hb_ot_map_t::feature_map_t const* hb_sorted_array_t<hb_ot_map_t::feature_map_t const>::bsearch<unsigned int>(unsigned int const&, hb_ot_map_t::feature_map_t const*) Line | Count | Source | 363 | 5.28M | { | 364 | 5.28M | unsigned int i; | 365 | 5.28M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 5.28M | } |
Unexecuted instantiation: OT::OS2Range const* hb_sorted_array_t<OT::OS2Range const>::bsearch<unsigned int>(unsigned int const&, OT::OS2Range const*) Unexecuted instantiation: OT::UnicodeValueRange const* hb_sorted_array_t<OT::UnicodeValueRange const>::bsearch<unsigned int>(unsigned int const&, OT::UnicodeValueRange const*) OT::UVSMapping const* hb_sorted_array_t<OT::UVSMapping const>::bsearch<unsigned int>(unsigned int const&, OT::UVSMapping const*) Line | Count | Source | 363 | 334k | { | 364 | 334k | unsigned int i; | 365 | 334k | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 334k | } |
OT::VariationSelectorRecord const* hb_sorted_array_t<OT::VariationSelectorRecord const>::bsearch<unsigned int>(unsigned int const&, OT::VariationSelectorRecord const*) Line | Count | Source | 363 | 667k | { | 364 | 667k | unsigned int i; | 365 | 667k | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 667k | } |
OT::CmapSubtableLongGroup const* hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bsearch<unsigned int>(unsigned int const&, OT::CmapSubtableLongGroup const*) Line | Count | Source | 363 | 4.63M | { | 364 | 4.63M | unsigned int i; | 365 | 4.63M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 4.63M | } |
OT::EncodingRecord const* hb_sorted_array_t<OT::EncodingRecord const>::bsearch<OT::EncodingRecord>(OT::EncodingRecord const&, OT::EncodingRecord const*) Line | Count | Source | 363 | 2.67M | { | 364 | 2.67M | unsigned int i; | 365 | 2.67M | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 2.67M | } |
OT::ClipRecord const* hb_sorted_array_t<OT::ClipRecord const>::bsearch<unsigned int>(unsigned int const&, OT::ClipRecord const*) Line | Count | Source | 363 | 622k | { | 364 | 622k | unsigned int i; | 365 | 622k | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 622k | } |
OT::BaseGlyphRecord const* hb_sorted_array_t<OT::BaseGlyphRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseGlyphRecord const*) Line | Count | Source | 363 | 343k | { | 364 | 343k | unsigned int i; | 365 | 343k | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 343k | } |
OT::BaseGlyphPaintRecord const* hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseGlyphPaintRecord const*) Line | Count | Source | 363 | 621k | { | 364 | 621k | unsigned int i; | 365 | 621k | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 621k | } |
OT::SVGDocumentIndexEntry const* hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bsearch<unsigned int>(unsigned int const&, OT::SVGDocumentIndexEntry const*) Line | Count | Source | 363 | 333k | { | 364 | 333k | unsigned int i; | 365 | 333k | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 333k | } |
OT::cff1::accelerator_t::gname_t* hb_sorted_array_t<OT::cff1::accelerator_t::gname_t>::bsearch<OT::cff1::accelerator_t::gname_t>(OT::cff1::accelerator_t::gname_t const&, OT::cff1::accelerator_t::gname_t*) Line | Count | Source | 363 | 19.1k | { | 364 | 19.1k | unsigned int i; | 365 | 19.1k | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 19.1k | } |
OT::BaseScriptRecord const* hb_sorted_array_t<OT::BaseScriptRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseScriptRecord const*) Line | Count | Source | 363 | 666k | { | 364 | 666k | unsigned int i; | 365 | 666k | return bfind (x, &i) ? &this->arrayZ[i] : not_found; | 366 | 666k | } |
Unexecuted instantiation: OT::FeatMinMaxRecord const* hb_sorted_array_t<OT::FeatMinMaxRecord const>::bsearch<unsigned int>(unsigned int const&, OT::FeatMinMaxRecord const*) Unexecuted instantiation: OT::BaseLangSysRecord const* hb_sorted_array_t<OT::BaseLangSysRecord const>::bsearch<unsigned int>(unsigned int const&, OT::BaseLangSysRecord const*) Unexecuted instantiation: sid_to_gid_t const* hb_sorted_array_t<sid_to_gid_t const>::bsearch<unsigned int>(unsigned int const&, sid_to_gid_t const*) |
367 | | template <typename T> |
368 | | const Type *bsearch (const T &x, const Type *not_found = nullptr) const |
369 | | { |
370 | | unsigned int i; |
371 | | return bfind (x, &i) ? &this->arrayZ[i] : not_found; |
372 | | } |
373 | | template <typename T> |
374 | | bool bfind (const T &x, unsigned int *i = nullptr, |
375 | | hb_not_found_t not_found = HB_NOT_FOUND_DONT_STORE, |
376 | | unsigned int to_store = (unsigned int) -1) const |
377 | 309M | { |
378 | 309M | unsigned pos; |
379 | | |
380 | 309M | if (bsearch_impl (x, &pos)) |
381 | 201M | { |
382 | 201M | if (i) |
383 | 201M | *i = pos; |
384 | 201M | return true; |
385 | 201M | } |
386 | | |
387 | 107M | if (i) |
388 | 107M | { |
389 | 107M | switch (not_found) |
390 | 107M | { |
391 | 51.0M | case HB_NOT_FOUND_DONT_STORE: |
392 | 51.0M | break; |
393 | | |
394 | 48.4M | case HB_NOT_FOUND_STORE: |
395 | 48.4M | *i = to_store; |
396 | 48.4M | break; |
397 | | |
398 | 7.98M | case HB_NOT_FOUND_STORE_CLOSEST: |
399 | 7.98M | *i = pos; |
400 | 7.98M | break; |
401 | 107M | } |
402 | 107M | } |
403 | 107M | return false; |
404 | 107M | } bool hb_sorted_array_t<AAT::FeatureName const>::bfind<hb_aat_layout_feature_type_t>(hb_aat_layout_feature_type_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 666k | { | 378 | 666k | unsigned pos; | 379 | | | 380 | 666k | if (bsearch_impl (x, &pos)) | 381 | 86 | { | 382 | 86 | if (i) | 383 | 86 | *i = pos; | 384 | 86 | return true; | 385 | 86 | } | 386 | | | 387 | 666k | if (i) | 388 | 666k | { | 389 | 666k | switch (not_found) | 390 | 666k | { | 391 | 666k | case HB_NOT_FOUND_DONT_STORE: | 392 | 666k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 666k | } | 402 | 666k | } | 403 | 666k | return false; | 404 | 666k | } |
Unexecuted instantiation: bool hb_sorted_array_t<hb_aat_feature_mapping_t const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const bool hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t const>::bfind<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 4.34M | { | 378 | 4.34M | unsigned pos; | 379 | | | 380 | 4.34M | if (bsearch_impl (x, &pos)) | 381 | 0 | { | 382 | 0 | if (i) | 383 | 0 | *i = pos; | 384 | 0 | return true; | 385 | 0 | } | 386 | | | 387 | 4.34M | if (i) | 388 | 4.34M | { | 389 | 4.34M | switch (not_found) | 390 | 4.34M | { | 391 | 4.34M | case HB_NOT_FOUND_DONT_STORE: | 392 | 4.34M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 4.34M | } | 402 | 4.34M | } | 403 | 4.34M | return false; | 404 | 4.34M | } |
bool hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 159M | { | 378 | 159M | unsigned pos; | 379 | | | 380 | 159M | if (bsearch_impl (x, &pos)) | 381 | 130M | { | 382 | 130M | if (i) | 383 | 130M | *i = pos; | 384 | 130M | return true; | 385 | 130M | } | 386 | | | 387 | 29.7M | if (i) | 388 | 29.7M | { | 389 | 29.7M | switch (not_found) | 390 | 29.7M | { | 391 | 29.7M | case HB_NOT_FOUND_DONT_STORE: | 392 | 29.7M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 29.7M | } | 402 | 29.7M | } | 403 | 29.7M | return false; | 404 | 29.7M | } |
bool hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 6.39M | { | 378 | 6.39M | unsigned pos; | 379 | | | 380 | 6.39M | if (bsearch_impl (x, &pos)) | 381 | 3.35M | { | 382 | 3.35M | if (i) | 383 | 3.35M | *i = pos; | 384 | 3.35M | return true; | 385 | 3.35M | } | 386 | | | 387 | 3.03M | if (i) | 388 | 3.03M | { | 389 | 3.03M | switch (not_found) | 390 | 3.03M | { | 391 | 3.03M | case HB_NOT_FOUND_DONT_STORE: | 392 | 3.03M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 3.03M | } | 402 | 3.03M | } | 403 | 3.03M | return false; | 404 | 3.03M | } |
bool hb_sorted_array_t<OT::HBGlyphID16 const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 100M | { | 378 | 100M | unsigned pos; | 379 | | | 380 | 100M | if (bsearch_impl (x, &pos)) | 381 | 60.6M | { | 382 | 60.6M | if (i) | 383 | 60.6M | *i = pos; | 384 | 60.6M | return true; | 385 | 60.6M | } | 386 | | | 387 | 40.0M | if (i) | 388 | 40.0M | { | 389 | 40.0M | switch (not_found) | 390 | 40.0M | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 40.0M | case HB_NOT_FOUND_STORE: | 395 | 40.0M | *i = to_store; | 396 | 40.0M | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 40.0M | } | 402 | 40.0M | } | 403 | 40.0M | return false; | 404 | 40.0M | } |
bool hb_sorted_array_t<OT::HBGlyphID24 const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 2.82M | { | 378 | 2.82M | unsigned pos; | 379 | | | 380 | 2.82M | if (bsearch_impl (x, &pos)) | 381 | 299k | { | 382 | 299k | if (i) | 383 | 299k | *i = pos; | 384 | 299k | return true; | 385 | 299k | } | 386 | | | 387 | 2.52M | if (i) | 388 | 2.52M | { | 389 | 2.52M | switch (not_found) | 390 | 2.52M | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 2.52M | case HB_NOT_FOUND_STORE: | 395 | 2.52M | *i = to_store; | 396 | 2.52M | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 2.52M | } | 402 | 2.52M | } | 403 | 2.52M | return false; | 404 | 2.52M | } |
bool hb_sorted_array_t<AAT::KernPair const>::bfind<AAT::hb_glyph_pair_t>(AAT::hb_glyph_pair_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 314k | { | 378 | 314k | unsigned pos; | 379 | | | 380 | 314k | if (bsearch_impl (x, &pos)) | 381 | 34.8k | { | 382 | 34.8k | if (i) | 383 | 34.8k | *i = pos; | 384 | 34.8k | return true; | 385 | 34.8k | } | 386 | | | 387 | 279k | if (i) | 388 | 279k | { | 389 | 279k | switch (not_found) | 390 | 279k | { | 391 | 279k | case HB_NOT_FOUND_DONT_STORE: | 392 | 279k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 279k | } | 402 | 279k | } | 403 | 279k | return false; | 404 | 279k | } |
bool hb_sorted_array_t<hb_ot_map_t::feature_map_t const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 5.28M | { | 378 | 5.28M | unsigned pos; | 379 | | | 380 | 5.28M | if (bsearch_impl (x, &pos)) | 381 | 1.77M | { | 382 | 1.77M | if (i) | 383 | 1.77M | *i = pos; | 384 | 1.77M | return true; | 385 | 1.77M | } | 386 | | | 387 | 3.50M | if (i) | 388 | 3.50M | { | 389 | 3.50M | switch (not_found) | 390 | 3.50M | { | 391 | 3.50M | case HB_NOT_FOUND_DONT_STORE: | 392 | 3.50M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 3.50M | } | 402 | 3.50M | } | 403 | 3.50M | return false; | 404 | 3.50M | } |
Unexecuted instantiation: bool hb_sorted_array_t<hb_bit_set_t::page_map_t const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const bool hb_sorted_array_t<hb_bit_set_t::page_map_t const>::bfind<hb_bit_set_t::page_map_t>(hb_bit_set_t::page_map_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 10.3M | { | 378 | 10.3M | unsigned pos; | 379 | | | 380 | 10.3M | if (bsearch_impl (x, &pos)) | 381 | 2.39M | { | 382 | 2.39M | if (i) | 383 | 2.39M | *i = pos; | 384 | 2.39M | return true; | 385 | 2.39M | } | 386 | | | 387 | 7.98M | if (i) | 388 | 7.98M | { | 389 | 7.98M | switch (not_found) | 390 | 7.98M | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 7.98M | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 7.98M | *i = pos; | 400 | 7.98M | break; | 401 | 7.98M | } | 402 | 7.98M | } | 403 | 7.98M | return false; | 404 | 7.98M | } |
bool hb_sorted_array_t<OT::Record<OT::LangSys> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 994k | { | 378 | 994k | unsigned pos; | 379 | | | 380 | 994k | if (bsearch_impl (x, &pos)) | 381 | 167 | { | 382 | 167 | if (i) | 383 | 167 | *i = pos; | 384 | 167 | return true; | 385 | 167 | } | 386 | | | 387 | 993k | if (i) | 388 | 993k | { | 389 | 993k | switch (not_found) | 390 | 993k | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 993k | case HB_NOT_FOUND_STORE: | 395 | 993k | *i = to_store; | 396 | 993k | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 993k | } | 402 | 993k | } | 403 | 993k | return false; | 404 | 993k | } |
bool hb_sorted_array_t<OT::Record<OT::Script> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 3.67M | { | 378 | 3.67M | unsigned pos; | 379 | | | 380 | 3.67M | if (bsearch_impl (x, &pos)) | 381 | 186k | { | 382 | 186k | if (i) | 383 | 186k | *i = pos; | 384 | 186k | return true; | 385 | 186k | } | 386 | | | 387 | 3.48M | if (i) | 388 | 3.48M | { | 389 | 3.48M | switch (not_found) | 390 | 3.48M | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 3.48M | case HB_NOT_FOUND_STORE: | 395 | 3.48M | *i = to_store; | 396 | 3.48M | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 3.48M | } | 402 | 3.48M | } | 403 | 3.48M | return false; | 404 | 3.48M | } |
Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::Feature> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Unexecuted instantiation: bool hb_sorted_array_t<OT::OS2Range const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const bool hb_sorted_array_t<OT::UnicodeValueRange const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 334k | { | 378 | 334k | unsigned pos; | 379 | | | 380 | 334k | if (bsearch_impl (x, &pos)) | 381 | 12 | { | 382 | 12 | if (i) | 383 | 0 | *i = pos; | 384 | 12 | return true; | 385 | 12 | } | 386 | | | 387 | 334k | if (i) | 388 | 0 | { | 389 | 0 | switch (not_found) | 390 | 0 | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 0 | } | 402 | 0 | } | 403 | 334k | return false; | 404 | 334k | } |
bool hb_sorted_array_t<OT::UVSMapping const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 334k | { | 378 | 334k | unsigned pos; | 379 | | | 380 | 334k | if (bsearch_impl (x, &pos)) | 381 | 9 | { | 382 | 9 | if (i) | 383 | 9 | *i = pos; | 384 | 9 | return true; | 385 | 9 | } | 386 | | | 387 | 334k | if (i) | 388 | 334k | { | 389 | 334k | switch (not_found) | 390 | 334k | { | 391 | 334k | case HB_NOT_FOUND_DONT_STORE: | 392 | 334k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 334k | } | 402 | 334k | } | 403 | 334k | return false; | 404 | 334k | } |
bool hb_sorted_array_t<OT::VariationSelectorRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 667k | { | 378 | 667k | unsigned pos; | 379 | | | 380 | 667k | if (bsearch_impl (x, &pos)) | 381 | 152 | { | 382 | 152 | if (i) | 383 | 152 | *i = pos; | 384 | 152 | return true; | 385 | 152 | } | 386 | | | 387 | 667k | if (i) | 388 | 667k | { | 389 | 667k | switch (not_found) | 390 | 667k | { | 391 | 667k | case HB_NOT_FOUND_DONT_STORE: | 392 | 667k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 667k | } | 402 | 667k | } | 403 | 667k | return false; | 404 | 667k | } |
bool hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 4.63M | { | 378 | 4.63M | unsigned pos; | 379 | | | 380 | 4.63M | if (bsearch_impl (x, &pos)) | 381 | 1.27M | { | 382 | 1.27M | if (i) | 383 | 1.27M | *i = pos; | 384 | 1.27M | return true; | 385 | 1.27M | } | 386 | | | 387 | 3.35M | if (i) | 388 | 3.35M | { | 389 | 3.35M | switch (not_found) | 390 | 3.35M | { | 391 | 3.35M | case HB_NOT_FOUND_DONT_STORE: | 392 | 3.35M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 3.35M | } | 402 | 3.35M | } | 403 | 3.35M | return false; | 404 | 3.35M | } |
bool hb_sorted_array_t<OT::EncodingRecord const>::bfind<OT::EncodingRecord>(OT::EncodingRecord const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 2.67M | { | 378 | 2.67M | unsigned pos; | 379 | | | 380 | 2.67M | if (bsearch_impl (x, &pos)) | 381 | 132k | { | 382 | 132k | if (i) | 383 | 132k | *i = pos; | 384 | 132k | return true; | 385 | 132k | } | 386 | | | 387 | 2.54M | if (i) | 388 | 2.54M | { | 389 | 2.54M | switch (not_found) | 390 | 2.54M | { | 391 | 2.54M | case HB_NOT_FOUND_DONT_STORE: | 392 | 2.54M | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 2.54M | } | 402 | 2.54M | } | 403 | 2.54M | return false; | 404 | 2.54M | } |
bool hb_sorted_array_t<OT::ClipRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 622k | { | 378 | 622k | unsigned pos; | 379 | | | 380 | 622k | if (bsearch_impl (x, &pos)) | 381 | 2.59k | { | 382 | 2.59k | if (i) | 383 | 2.59k | *i = pos; | 384 | 2.59k | return true; | 385 | 2.59k | } | 386 | | | 387 | 620k | if (i) | 388 | 620k | { | 389 | 620k | switch (not_found) | 390 | 620k | { | 391 | 620k | case HB_NOT_FOUND_DONT_STORE: | 392 | 620k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 620k | } | 402 | 620k | } | 403 | 620k | return false; | 404 | 620k | } |
bool hb_sorted_array_t<OT::BaseGlyphRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 343k | { | 378 | 343k | unsigned pos; | 379 | | | 380 | 343k | if (bsearch_impl (x, &pos)) | 381 | 536 | { | 382 | 536 | if (i) | 383 | 536 | *i = pos; | 384 | 536 | return true; | 385 | 536 | } | 386 | | | 387 | 342k | if (i) | 388 | 342k | { | 389 | 342k | switch (not_found) | 390 | 342k | { | 391 | 342k | case HB_NOT_FOUND_DONT_STORE: | 392 | 342k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 342k | } | 402 | 342k | } | 403 | 342k | return false; | 404 | 342k | } |
bool hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 621k | { | 378 | 621k | unsigned pos; | 379 | | | 380 | 621k | if (bsearch_impl (x, &pos)) | 381 | 561k | { | 382 | 561k | if (i) | 383 | 561k | *i = pos; | 384 | 561k | return true; | 385 | 561k | } | 386 | | | 387 | 60.4k | if (i) | 388 | 60.4k | { | 389 | 60.4k | switch (not_found) | 390 | 60.4k | { | 391 | 60.4k | case HB_NOT_FOUND_DONT_STORE: | 392 | 60.4k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 60.4k | } | 402 | 60.4k | } | 403 | 60.4k | return false; | 404 | 60.4k | } |
bool hb_sorted_array_t<OT::TableRecord const>::bfind<OT::Tag>(OT::Tag const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 2.12M | { | 378 | 2.12M | unsigned pos; | 379 | | | 380 | 2.12M | if (bsearch_impl (x, &pos)) | 381 | 659k | { | 382 | 659k | if (i) | 383 | 659k | *i = pos; | 384 | 659k | return true; | 385 | 659k | } | 386 | | | 387 | 1.46M | if (i) | 388 | 1.46M | { | 389 | 1.46M | switch (not_found) | 390 | 1.46M | { | 391 | 0 | case HB_NOT_FOUND_DONT_STORE: | 392 | 0 | break; | 393 | | | 394 | 1.46M | case HB_NOT_FOUND_STORE: | 395 | 1.46M | *i = to_store; | 396 | 1.46M | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 1.46M | } | 402 | 1.46M | } | 403 | 1.46M | return false; | 404 | 1.46M | } |
bool hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 333k | { | 378 | 333k | unsigned pos; | 379 | | | 380 | 333k | if (bsearch_impl (x, &pos)) | 381 | 133 | { | 382 | 133 | if (i) | 383 | 133 | *i = pos; | 384 | 133 | return true; | 385 | 133 | } | 386 | | | 387 | 333k | if (i) | 388 | 333k | { | 389 | 333k | switch (not_found) | 390 | 333k | { | 391 | 333k | case HB_NOT_FOUND_DONT_STORE: | 392 | 333k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 333k | } | 402 | 333k | } | 403 | 333k | return false; | 404 | 333k | } |
bool hb_sorted_array_t<OT::cff1::accelerator_t::gname_t>::bfind<OT::cff1::accelerator_t::gname_t>(OT::cff1::accelerator_t::gname_t const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 19.1k | { | 378 | 19.1k | unsigned pos; | 379 | | | 380 | 19.1k | if (bsearch_impl (x, &pos)) | 381 | 1.26k | { | 382 | 1.26k | if (i) | 383 | 1.26k | *i = pos; | 384 | 1.26k | return true; | 385 | 1.26k | } | 386 | | | 387 | 17.8k | if (i) | 388 | 17.8k | { | 389 | 17.8k | switch (not_found) | 390 | 17.8k | { | 391 | 17.8k | case HB_NOT_FOUND_DONT_STORE: | 392 | 17.8k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 17.8k | } | 402 | 17.8k | } | 403 | 17.8k | return false; | 404 | 17.8k | } |
bool hb_sorted_array_t<OT::VertOriginMetric const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 1.61k | { | 378 | 1.61k | unsigned pos; | 379 | | | 380 | 1.61k | if (bsearch_impl (x, &pos)) | 381 | 25 | { | 382 | 25 | if (i) | 383 | 25 | *i = pos; | 384 | 25 | return true; | 385 | 25 | } | 386 | | | 387 | 1.58k | if (i) | 388 | 1.58k | { | 389 | 1.58k | switch (not_found) | 390 | 1.58k | { | 391 | 1.58k | case HB_NOT_FOUND_DONT_STORE: | 392 | 1.58k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 1.58k | } | 402 | 1.58k | } | 403 | 1.58k | return false; | 404 | 1.58k | } |
bool hb_sorted_array_t<OT::BaseScriptRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 666k | { | 378 | 666k | unsigned pos; | 379 | | | 380 | 666k | if (bsearch_impl (x, &pos)) | 381 | 4.66k | { | 382 | 4.66k | if (i) | 383 | 4.66k | *i = pos; | 384 | 4.66k | return true; | 385 | 4.66k | } | 386 | | | 387 | 661k | if (i) | 388 | 661k | { | 389 | 661k | switch (not_found) | 390 | 661k | { | 391 | 661k | case HB_NOT_FOUND_DONT_STORE: | 392 | 661k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 661k | } | 402 | 661k | } | 403 | 661k | return false; | 404 | 661k | } |
bool hb_sorted_array_t<OT::Tag const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 4.11k | { | 378 | 4.11k | unsigned pos; | 379 | | | 380 | 4.11k | if (bsearch_impl (x, &pos)) | 381 | 16 | { | 382 | 16 | if (i) | 383 | 16 | *i = pos; | 384 | 16 | return true; | 385 | 16 | } | 386 | | | 387 | 4.10k | if (i) | 388 | 4.10k | { | 389 | 4.10k | switch (not_found) | 390 | 4.10k | { | 391 | 4.10k | case HB_NOT_FOUND_DONT_STORE: | 392 | 4.10k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 4.10k | } | 402 | 4.10k | } | 403 | 4.10k | return false; | 404 | 4.10k | } |
Unexecuted instantiation: bool hb_sorted_array_t<OT::FeatMinMaxRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Unexecuted instantiation: bool hb_sorted_array_t<OT::BaseLangSysRecord const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::JstfLangSys> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::JstfScript> const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Unexecuted instantiation: bool hb_sorted_array_t<sid_to_gid_t const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const bool hb_sorted_array_t<LangTag const>::bfind<unsigned int>(unsigned int const&, unsigned int*, hb_not_found_t, unsigned int) const Line | Count | Source | 377 | 497k | { | 378 | 497k | unsigned pos; | 379 | | | 380 | 497k | if (bsearch_impl (x, &pos)) | 381 | 0 | { | 382 | 0 | if (i) | 383 | 0 | *i = pos; | 384 | 0 | return true; | 385 | 0 | } | 386 | | | 387 | 497k | if (i) | 388 | 497k | { | 389 | 497k | switch (not_found) | 390 | 497k | { | 391 | 497k | case HB_NOT_FOUND_DONT_STORE: | 392 | 497k | break; | 393 | | | 394 | 0 | case HB_NOT_FOUND_STORE: | 395 | 0 | *i = to_store; | 396 | 0 | break; | 397 | | | 398 | 0 | case HB_NOT_FOUND_STORE_CLOSEST: | 399 | 0 | *i = pos; | 400 | 0 | break; | 401 | 497k | } | 402 | 497k | } | 403 | 497k | return false; | 404 | 497k | } |
|
405 | | template <typename T, typename ...Ts> |
406 | | bool bsearch_impl (const T &x, unsigned *pos, Ts... ds) const |
407 | 309M | { |
408 | 309M | return hb_bsearch_impl (pos, |
409 | 309M | x, |
410 | 309M | this->arrayZ, |
411 | 309M | this->length, |
412 | 309M | sizeof (Type), |
413 | 309M | _hb_cmp_method<T, Type, Ts...>, |
414 | 309M | std::forward<Ts> (ds)...); |
415 | 309M | } bool hb_sorted_array_t<AAT::FeatureName const>::bsearch_impl<hb_aat_layout_feature_type_t>(hb_aat_layout_feature_type_t const&, unsigned int*) const Line | Count | Source | 407 | 666k | { | 408 | 666k | return hb_bsearch_impl (pos, | 409 | 666k | x, | 410 | 666k | this->arrayZ, | 411 | 666k | this->length, | 412 | 666k | sizeof (Type), | 413 | 666k | _hb_cmp_method<T, Type, Ts...>, | 414 | 666k | std::forward<Ts> (ds)...); | 415 | 666k | } |
Unexecuted instantiation: bool hb_sorted_array_t<hb_aat_feature_mapping_t const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const bool hb_sorted_array_t<hb_aat_map_builder_t::feature_info_t const>::bsearch_impl<hb_aat_map_builder_t::feature_info_t>(hb_aat_map_builder_t::feature_info_t const&, unsigned int*) const Line | Count | Source | 407 | 4.34M | { | 408 | 4.34M | return hb_bsearch_impl (pos, | 409 | 4.34M | x, | 410 | 4.34M | this->arrayZ, | 411 | 4.34M | this->length, | 412 | 4.34M | sizeof (Type), | 413 | 4.34M | _hb_cmp_method<T, Type, Ts...>, | 414 | 4.34M | std::forward<Ts> (ds)...); | 415 | 4.34M | } |
bool hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 159M | { | 408 | 159M | return hb_bsearch_impl (pos, | 409 | 159M | x, | 410 | 159M | this->arrayZ, | 411 | 159M | this->length, | 412 | 159M | sizeof (Type), | 413 | 159M | _hb_cmp_method<T, Type, Ts...>, | 414 | 159M | std::forward<Ts> (ds)...); | 415 | 159M | } |
bool hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 6.39M | { | 408 | 6.39M | return hb_bsearch_impl (pos, | 409 | 6.39M | x, | 410 | 6.39M | this->arrayZ, | 411 | 6.39M | this->length, | 412 | 6.39M | sizeof (Type), | 413 | 6.39M | _hb_cmp_method<T, Type, Ts...>, | 414 | 6.39M | std::forward<Ts> (ds)...); | 415 | 6.39M | } |
bool hb_sorted_array_t<OT::HBGlyphID16 const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 100M | { | 408 | 100M | return hb_bsearch_impl (pos, | 409 | 100M | x, | 410 | 100M | this->arrayZ, | 411 | 100M | this->length, | 412 | 100M | sizeof (Type), | 413 | 100M | _hb_cmp_method<T, Type, Ts...>, | 414 | 100M | std::forward<Ts> (ds)...); | 415 | 100M | } |
bool hb_sorted_array_t<OT::HBGlyphID24 const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 2.82M | { | 408 | 2.82M | return hb_bsearch_impl (pos, | 409 | 2.82M | x, | 410 | 2.82M | this->arrayZ, | 411 | 2.82M | this->length, | 412 | 2.82M | sizeof (Type), | 413 | 2.82M | _hb_cmp_method<T, Type, Ts...>, | 414 | 2.82M | std::forward<Ts> (ds)...); | 415 | 2.82M | } |
bool hb_sorted_array_t<AAT::KernPair const>::bsearch_impl<AAT::hb_glyph_pair_t>(AAT::hb_glyph_pair_t const&, unsigned int*) const Line | Count | Source | 407 | 314k | { | 408 | 314k | return hb_bsearch_impl (pos, | 409 | 314k | x, | 410 | 314k | this->arrayZ, | 411 | 314k | this->length, | 412 | 314k | sizeof (Type), | 413 | 314k | _hb_cmp_method<T, Type, Ts...>, | 414 | 314k | std::forward<Ts> (ds)...); | 415 | 314k | } |
bool hb_sorted_array_t<hb_ot_map_t::feature_map_t const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 5.28M | { | 408 | 5.28M | return hb_bsearch_impl (pos, | 409 | 5.28M | x, | 410 | 5.28M | this->arrayZ, | 411 | 5.28M | this->length, | 412 | 5.28M | sizeof (Type), | 413 | 5.28M | _hb_cmp_method<T, Type, Ts...>, | 414 | 5.28M | std::forward<Ts> (ds)...); | 415 | 5.28M | } |
Unexecuted instantiation: bool hb_sorted_array_t<hb_bit_set_t::page_map_t const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const bool hb_sorted_array_t<hb_bit_set_t::page_map_t const>::bsearch_impl<hb_bit_set_t::page_map_t>(hb_bit_set_t::page_map_t const&, unsigned int*) const Line | Count | Source | 407 | 10.3M | { | 408 | 10.3M | return hb_bsearch_impl (pos, | 409 | 10.3M | x, | 410 | 10.3M | this->arrayZ, | 411 | 10.3M | this->length, | 412 | 10.3M | sizeof (Type), | 413 | 10.3M | _hb_cmp_method<T, Type, Ts...>, | 414 | 10.3M | std::forward<Ts> (ds)...); | 415 | 10.3M | } |
bool hb_sorted_array_t<OT::Record<OT::LangSys> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 994k | { | 408 | 994k | return hb_bsearch_impl (pos, | 409 | 994k | x, | 410 | 994k | this->arrayZ, | 411 | 994k | this->length, | 412 | 994k | sizeof (Type), | 413 | 994k | _hb_cmp_method<T, Type, Ts...>, | 414 | 994k | std::forward<Ts> (ds)...); | 415 | 994k | } |
bool hb_sorted_array_t<OT::Record<OT::Script> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 3.67M | { | 408 | 3.67M | return hb_bsearch_impl (pos, | 409 | 3.67M | x, | 410 | 3.67M | this->arrayZ, | 411 | 3.67M | this->length, | 412 | 3.67M | sizeof (Type), | 413 | 3.67M | _hb_cmp_method<T, Type, Ts...>, | 414 | 3.67M | std::forward<Ts> (ds)...); | 415 | 3.67M | } |
Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::Feature> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Unexecuted instantiation: bool hb_sorted_array_t<OT::OS2Range const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const bool hb_sorted_array_t<OT::UnicodeValueRange const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 334k | { | 408 | 334k | return hb_bsearch_impl (pos, | 409 | 334k | x, | 410 | 334k | this->arrayZ, | 411 | 334k | this->length, | 412 | 334k | sizeof (Type), | 413 | 334k | _hb_cmp_method<T, Type, Ts...>, | 414 | 334k | std::forward<Ts> (ds)...); | 415 | 334k | } |
bool hb_sorted_array_t<OT::UVSMapping const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 334k | { | 408 | 334k | return hb_bsearch_impl (pos, | 409 | 334k | x, | 410 | 334k | this->arrayZ, | 411 | 334k | this->length, | 412 | 334k | sizeof (Type), | 413 | 334k | _hb_cmp_method<T, Type, Ts...>, | 414 | 334k | std::forward<Ts> (ds)...); | 415 | 334k | } |
bool hb_sorted_array_t<OT::VariationSelectorRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 667k | { | 408 | 667k | return hb_bsearch_impl (pos, | 409 | 667k | x, | 410 | 667k | this->arrayZ, | 411 | 667k | this->length, | 412 | 667k | sizeof (Type), | 413 | 667k | _hb_cmp_method<T, Type, Ts...>, | 414 | 667k | std::forward<Ts> (ds)...); | 415 | 667k | } |
bool hb_sorted_array_t<OT::CmapSubtableLongGroup const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 4.63M | { | 408 | 4.63M | return hb_bsearch_impl (pos, | 409 | 4.63M | x, | 410 | 4.63M | this->arrayZ, | 411 | 4.63M | this->length, | 412 | 4.63M | sizeof (Type), | 413 | 4.63M | _hb_cmp_method<T, Type, Ts...>, | 414 | 4.63M | std::forward<Ts> (ds)...); | 415 | 4.63M | } |
bool hb_sorted_array_t<OT::EncodingRecord const>::bsearch_impl<OT::EncodingRecord>(OT::EncodingRecord const&, unsigned int*) const Line | Count | Source | 407 | 2.67M | { | 408 | 2.67M | return hb_bsearch_impl (pos, | 409 | 2.67M | x, | 410 | 2.67M | this->arrayZ, | 411 | 2.67M | this->length, | 412 | 2.67M | sizeof (Type), | 413 | 2.67M | _hb_cmp_method<T, Type, Ts...>, | 414 | 2.67M | std::forward<Ts> (ds)...); | 415 | 2.67M | } |
bool hb_sorted_array_t<OT::ClipRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 622k | { | 408 | 622k | return hb_bsearch_impl (pos, | 409 | 622k | x, | 410 | 622k | this->arrayZ, | 411 | 622k | this->length, | 412 | 622k | sizeof (Type), | 413 | 622k | _hb_cmp_method<T, Type, Ts...>, | 414 | 622k | std::forward<Ts> (ds)...); | 415 | 622k | } |
bool hb_sorted_array_t<OT::BaseGlyphRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 343k | { | 408 | 343k | return hb_bsearch_impl (pos, | 409 | 343k | x, | 410 | 343k | this->arrayZ, | 411 | 343k | this->length, | 412 | 343k | sizeof (Type), | 413 | 343k | _hb_cmp_method<T, Type, Ts...>, | 414 | 343k | std::forward<Ts> (ds)...); | 415 | 343k | } |
bool hb_sorted_array_t<OT::BaseGlyphPaintRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 621k | { | 408 | 621k | return hb_bsearch_impl (pos, | 409 | 621k | x, | 410 | 621k | this->arrayZ, | 411 | 621k | this->length, | 412 | 621k | sizeof (Type), | 413 | 621k | _hb_cmp_method<T, Type, Ts...>, | 414 | 621k | std::forward<Ts> (ds)...); | 415 | 621k | } |
bool hb_sorted_array_t<OT::TableRecord const>::bsearch_impl<OT::Tag>(OT::Tag const&, unsigned int*) const Line | Count | Source | 407 | 2.12M | { | 408 | 2.12M | return hb_bsearch_impl (pos, | 409 | 2.12M | x, | 410 | 2.12M | this->arrayZ, | 411 | 2.12M | this->length, | 412 | 2.12M | sizeof (Type), | 413 | 2.12M | _hb_cmp_method<T, Type, Ts...>, | 414 | 2.12M | std::forward<Ts> (ds)...); | 415 | 2.12M | } |
bool hb_sorted_array_t<OT::SVGDocumentIndexEntry const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 333k | { | 408 | 333k | return hb_bsearch_impl (pos, | 409 | 333k | x, | 410 | 333k | this->arrayZ, | 411 | 333k | this->length, | 412 | 333k | sizeof (Type), | 413 | 333k | _hb_cmp_method<T, Type, Ts...>, | 414 | 333k | std::forward<Ts> (ds)...); | 415 | 333k | } |
bool hb_sorted_array_t<OT::cff1::accelerator_t::gname_t>::bsearch_impl<OT::cff1::accelerator_t::gname_t>(OT::cff1::accelerator_t::gname_t const&, unsigned int*) const Line | Count | Source | 407 | 19.1k | { | 408 | 19.1k | return hb_bsearch_impl (pos, | 409 | 19.1k | x, | 410 | 19.1k | this->arrayZ, | 411 | 19.1k | this->length, | 412 | 19.1k | sizeof (Type), | 413 | 19.1k | _hb_cmp_method<T, Type, Ts...>, | 414 | 19.1k | std::forward<Ts> (ds)...); | 415 | 19.1k | } |
bool hb_sorted_array_t<OT::VertOriginMetric const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 1.61k | { | 408 | 1.61k | return hb_bsearch_impl (pos, | 409 | 1.61k | x, | 410 | 1.61k | this->arrayZ, | 411 | 1.61k | this->length, | 412 | 1.61k | sizeof (Type), | 413 | 1.61k | _hb_cmp_method<T, Type, Ts...>, | 414 | 1.61k | std::forward<Ts> (ds)...); | 415 | 1.61k | } |
bool hb_sorted_array_t<OT::BaseScriptRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 666k | { | 408 | 666k | return hb_bsearch_impl (pos, | 409 | 666k | x, | 410 | 666k | this->arrayZ, | 411 | 666k | this->length, | 412 | 666k | sizeof (Type), | 413 | 666k | _hb_cmp_method<T, Type, Ts...>, | 414 | 666k | std::forward<Ts> (ds)...); | 415 | 666k | } |
bool hb_sorted_array_t<OT::Tag const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 4.11k | { | 408 | 4.11k | return hb_bsearch_impl (pos, | 409 | 4.11k | x, | 410 | 4.11k | this->arrayZ, | 411 | 4.11k | this->length, | 412 | 4.11k | sizeof (Type), | 413 | 4.11k | _hb_cmp_method<T, Type, Ts...>, | 414 | 4.11k | std::forward<Ts> (ds)...); | 415 | 4.11k | } |
Unexecuted instantiation: bool hb_sorted_array_t<OT::FeatMinMaxRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Unexecuted instantiation: bool hb_sorted_array_t<OT::BaseLangSysRecord const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::JstfLangSys> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Unexecuted instantiation: bool hb_sorted_array_t<OT::Record<OT::JstfScript> const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Unexecuted instantiation: bool hb_sorted_array_t<sid_to_gid_t const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const bool hb_sorted_array_t<LangTag const>::bsearch_impl<unsigned int>(unsigned int const&, unsigned int*) const Line | Count | Source | 407 | 497k | { | 408 | 497k | return hb_bsearch_impl (pos, | 409 | 497k | x, | 410 | 497k | this->arrayZ, | 411 | 497k | this->length, | 412 | 497k | sizeof (Type), | 413 | 497k | _hb_cmp_method<T, Type, Ts...>, | 414 | 497k | std::forward<Ts> (ds)...); | 415 | 497k | } |
|
416 | | }; |
417 | | template <typename T> inline hb_sorted_array_t<T> |
418 | | hb_sorted_array (T *array, unsigned int length) |
419 | 291M | { return hb_sorted_array_t<T> (array, length); } hb_sorted_array_t<AAT::FeatureName const> hb_sorted_array<AAT::FeatureName const>(AAT::FeatureName const*, unsigned int) Line | Count | Source | 419 | 999k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const> hb_sorted_array<OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const>(OT::Layout::Common::RangeRecord<OT::Layout::SmallTypes> const*, unsigned int) Line | Count | Source | 419 | 159M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const> hb_sorted_array<OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const>(OT::Layout::Common::RangeRecord<OT::Layout::MediumTypes> const*, unsigned int) Line | Count | Source | 419 | 6.39M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::HBGlyphID16 const> hb_sorted_array<OT::HBGlyphID16 const>(OT::HBGlyphID16 const*, unsigned int) Line | Count | Source | 419 | 101M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::HBGlyphID24 const> hb_sorted_array<OT::HBGlyphID24 const>(OT::HBGlyphID24 const*, unsigned int) Line | Count | Source | 419 | 2.87M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<AAT::KernPair const> hb_sorted_array<AAT::KernPair const>(AAT::KernPair const*, unsigned int) Line | Count | Source | 419 | 314k | { return hb_sorted_array_t<T> (array, length); } |
Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::Feature> const> hb_sorted_array<OT::Record<OT::Feature> const>(OT::Record<OT::Feature> const*, unsigned int) hb_sorted_array_t<OT::Record<OT::LangSys> const> hb_sorted_array<OT::Record<OT::LangSys> const>(OT::Record<OT::LangSys> const*, unsigned int) Line | Count | Source | 419 | 994k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::Record<OT::Script> const> hb_sorted_array<OT::Record<OT::Script> const>(OT::Record<OT::Script> const*, unsigned int) Line | Count | Source | 419 | 3.67M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::UnicodeValueRange const> hb_sorted_array<OT::UnicodeValueRange const>(OT::UnicodeValueRange const*, unsigned int) Line | Count | Source | 419 | 334k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::UVSMapping const> hb_sorted_array<OT::UVSMapping const>(OT::UVSMapping const*, unsigned int) Line | Count | Source | 419 | 667k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::VariationSelectorRecord const> hb_sorted_array<OT::VariationSelectorRecord const>(OT::VariationSelectorRecord const*, unsigned int) Line | Count | Source | 419 | 1.00M | { return hb_sorted_array_t<T> (array, length); } |
Unexecuted instantiation: hb_sorted_array_t<OT::VariationSelectorRecord> hb_sorted_array<OT::VariationSelectorRecord>(OT::VariationSelectorRecord*, unsigned int) hb_sorted_array_t<OT::CmapSubtableLongGroup const> hb_sorted_array<OT::CmapSubtableLongGroup const>(OT::CmapSubtableLongGroup const*, unsigned int) Line | Count | Source | 419 | 4.63M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::EncodingRecord const> hb_sorted_array<OT::EncodingRecord const>(OT::EncodingRecord const*, unsigned int) Line | Count | Source | 419 | 2.67M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::ClipRecord const> hb_sorted_array<OT::ClipRecord const>(OT::ClipRecord const*, unsigned int) Line | Count | Source | 419 | 622k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::BaseGlyphPaintRecord const> hb_sorted_array<OT::BaseGlyphPaintRecord const>(OT::BaseGlyphPaintRecord const*, unsigned int) Line | Count | Source | 419 | 621k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::BaseGlyphRecord const> hb_sorted_array<OT::BaseGlyphRecord const>(OT::BaseGlyphRecord const*, unsigned int) Line | Count | Source | 419 | 343k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::TableRecord const> hb_sorted_array<OT::TableRecord const>(OT::TableRecord const*, unsigned int) Line | Count | Source | 419 | 2.12M | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::SVGDocumentIndexEntry const> hb_sorted_array<OT::SVGDocumentIndexEntry const>(OT::SVGDocumentIndexEntry const*, unsigned int) Line | Count | Source | 419 | 333k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::VertOriginMetric const> hb_sorted_array<OT::VertOriginMetric const>(OT::VertOriginMetric const*, unsigned int) Line | Count | Source | 419 | 1.61k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::BaseScriptRecord const> hb_sorted_array<OT::BaseScriptRecord const>(OT::BaseScriptRecord const*, unsigned int) Line | Count | Source | 419 | 666k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<OT::Tag const> hb_sorted_array<OT::Tag const>(OT::Tag const*, unsigned int) Line | Count | Source | 419 | 4.11k | { return hb_sorted_array_t<T> (array, length); } |
Unexecuted instantiation: hb_sorted_array_t<OT::FeatMinMaxRecord const> hb_sorted_array<OT::FeatMinMaxRecord const>(OT::FeatMinMaxRecord const*, unsigned int) Unexecuted instantiation: hb_sorted_array_t<OT::BaseLangSysRecord const> hb_sorted_array<OT::BaseLangSysRecord const>(OT::BaseLangSysRecord const*, unsigned int) Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::JstfLangSys> const> hb_sorted_array<OT::Record<OT::JstfLangSys> const>(OT::Record<OT::JstfLangSys> const*, unsigned int) Unexecuted instantiation: hb_sorted_array_t<OT::Record<OT::JstfScript> const> hb_sorted_array<OT::Record<OT::JstfScript> const>(OT::Record<OT::JstfScript> const*, unsigned int) hb_sorted_array_t<OT::HBGlyphID16> hb_sorted_array<OT::HBGlyphID16>(OT::HBGlyphID16*, unsigned int) Line | Count | Source | 419 | 19.8k | { return hb_sorted_array_t<T> (array, length); } |
hb_sorted_array_t<LangTag const> hb_sorted_array<LangTag const>(LangTag const*, unsigned int) Line | Count | Source | 419 | 497k | { return hb_sorted_array_t<T> (array, length); } |
|
420 | | template <typename T, unsigned int length_> inline hb_sorted_array_t<T> |
421 | | hb_sorted_array (T (&array_)[length_]) |
422 | 0 | { return hb_sorted_array_t<T> (array_); } Unexecuted instantiation: hb_sorted_array_t<hb_aat_feature_mapping_t const> hb_sorted_array<hb_aat_feature_mapping_t const, 78u>(hb_aat_feature_mapping_t const (&) [78u]) Unexecuted instantiation: hb_sorted_array_t<OT::OS2Range const> hb_sorted_array<OT::OS2Range const, 169u>(OT::OS2Range const (&) [169u]) Unexecuted instantiation: hb_sorted_array_t<sid_to_gid_t const> hb_sorted_array<sid_to_gid_t const, 165u>(sid_to_gid_t const (&) [165u]) Unexecuted instantiation: hb_sorted_array_t<sid_to_gid_t const> hb_sorted_array<sid_to_gid_t const, 86u>(sid_to_gid_t const (&) [86u]) |
423 | | |
424 | | template <typename T> |
425 | | inline bool hb_array_t<T>::operator == (const hb_array_t<T> &o) const |
426 | | { |
427 | | if (o.length != this->length) return false; |
428 | | for (unsigned int i = 0; i < this->length; i++) { |
429 | | if (this->arrayZ[i] != o.arrayZ[i]) return false; |
430 | | } |
431 | | return true; |
432 | | } |
433 | | template <> |
434 | | inline bool hb_array_t<const char>::operator == (const hb_array_t<const char> &o) const |
435 | 134k | { |
436 | 134k | if (o.length != this->length) return false; |
437 | 134k | return 0 == hb_memcmp (arrayZ, o.arrayZ, length); |
438 | 134k | } |
439 | | template <> |
440 | | inline bool hb_array_t<const unsigned char>::operator == (const hb_array_t<const unsigned char> &o) const |
441 | 0 | { |
442 | 0 | if (o.length != this->length) return false; |
443 | 0 | return 0 == hb_memcmp (arrayZ, o.arrayZ, length); |
444 | 0 | } |
445 | | |
446 | | |
447 | | /* Specialize hash() for byte arrays. */ |
448 | | |
449 | | template <> |
450 | | inline uint32_t hb_array_t<const char>::hash () const |
451 | 475k | { |
452 | 475k | uint32_t current = 0; |
453 | 475k | unsigned i = 0; |
454 | | |
455 | 475k | #if defined(__OPTIMIZE__) && !defined(HB_NO_PACKED) && \ |
456 | 475k | ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__)) |
457 | 475k | struct __attribute__((packed)) packed_uint32_t { uint32_t v; }; |
458 | 1.79M | for (; i + 4 <= this->length; i += 4) |
459 | 1.31M | current = current * 31 + hb_hash ((uint32_t) ((packed_uint32_t *) &this->arrayZ[i])->v); |
460 | 475k | #endif |
461 | | |
462 | 832k | for (; i < this->length; i++) |
463 | 356k | current = current * 31 + hb_hash (this->arrayZ[i]); |
464 | 475k | return current; |
465 | 475k | } |
466 | | |
467 | | template <> |
468 | | inline uint32_t hb_array_t<const unsigned char>::hash () const |
469 | 0 | { |
470 | 0 | uint32_t current = 0; |
471 | 0 | unsigned i = 0; |
472 | 0 |
|
473 | 0 | #if defined(__OPTIMIZE__) && !defined(HB_NO_PACKED) && \ |
474 | 0 | ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__)) |
475 | 0 | struct __attribute__((packed)) packed_uint32_t { uint32_t v; }; |
476 | 0 | for (; i + 4 <= this->length; i += 4) |
477 | 0 | current = current * 31 + hb_hash ((uint32_t) ((packed_uint32_t *) &this->arrayZ[i])->v); |
478 | 0 | #endif |
479 | 0 |
|
480 | 0 | for (; i < this->length; i++) |
481 | 0 | current = current * 31 + hb_hash (this->arrayZ[i]); |
482 | 0 | return current; |
483 | 0 | } |
484 | | |
485 | | |
486 | | typedef hb_array_t<const char> hb_bytes_t; |
487 | | typedef hb_array_t<const unsigned char> hb_ubytes_t; |
488 | | |
489 | | |
490 | | |
491 | | #endif /* HB_ARRAY_HH */ |