1 #include "hb-benchmark.hh"
2
BM_hb_ot_tags_from_script_and_language(benchmark::State & state,hb_script_t script,const char * language_str)3 static void BM_hb_ot_tags_from_script_and_language (benchmark::State& state,
4 hb_script_t script,
5 const char *language_str) {
6
7 hb_language_t language = hb_language_from_string (language_str, -1);
8
9 for (auto _ : state)
10 {
11 hb_tag_t script_tags[HB_OT_MAX_TAGS_PER_SCRIPT];
12 unsigned script_count = HB_OT_MAX_TAGS_PER_SCRIPT;
13
14 hb_tag_t language_tags[HB_OT_MAX_TAGS_PER_LANGUAGE];
15 unsigned language_count = HB_OT_MAX_TAGS_PER_LANGUAGE;
16
17 hb_ot_tags_from_script_and_language (script,
18 language,
19 &script_count /* IN/OUT */,
20 script_tags /* OUT */,
21 &language_count /* IN/OUT */,
22 language_tags /* OUT */);
23 }
24 }
25 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_abcd, HB_SCRIPT_COMMON, "zh_abcd");
26 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_hans, HB_SCRIPT_COMMON, "zh_hans");
27 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON ab_abcd, HB_SCRIPT_COMMON, "ab_abcd");
28 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON ab_abc, HB_SCRIPT_COMMON, "ab_abc");
29 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON abcdef_XY, HB_SCRIPT_COMMON, "abcdef_XY");
30 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON abcd_XY, HB_SCRIPT_COMMON, "abcd_XY");
31 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON cxy_CN, HB_SCRIPT_COMMON, "cxy_CN");
32 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON exy_CN, HB_SCRIPT_COMMON, "exy_CN");
33 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_CN, HB_SCRIPT_COMMON, "zh_CN");
34 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON en_US, HB_SCRIPT_COMMON, "en_US");
35 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, LATIN en_US, HB_SCRIPT_LATIN, "en_US");
36 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON none, HB_SCRIPT_LATIN, nullptr);
37 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, LATIN none, HB_SCRIPT_LATIN, nullptr);
38
39 BENCHMARK_MAIN();
40