Coverage Report

Created: 2025-12-31 10:39

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/workdir/UnpackedTarball/harfbuzz/src/hb-debug.hh
Line
Count
Source
1
/*
2
 * Copyright © 2017  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_DEBUG_HH
28
#define HB_DEBUG_HH
29
30
#include "hb.hh"
31
#include "hb-atomic.hh"
32
#include "hb-algs.hh"
33
34
35
#ifndef HB_DEBUG
36
4.26M
#define HB_DEBUG 0
37
#endif
38
39
40
/*
41
 * Debug output (needs enabling at compile time.)
42
 */
43
44
static inline bool
45
_hb_debug (unsigned int level,
46
     unsigned int max_level)
47
0
{
48
0
  return level < max_level;
49
0
}
Unexecuted instantiation: hb-aat-layout.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-aat-map.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-blob.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-buffer.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-common.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-draw.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-face.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-face-builder.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-fallback-shape.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-font.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-number.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-color.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-face.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-font.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-outline.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: VARC.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-layout.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-metrics.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-name.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shape.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-tag.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-var.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-set.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-shape-plan.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-shape.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-shaper.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-static.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-unicode.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-graphite2.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-icu.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-buffer-verify.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-paint.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-paint-bounded.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-paint-extents.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-cff1-table.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-cff2-table.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-map.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-arabic.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-default.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-hangul.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-hebrew.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-indic.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-khmer.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-myanmar.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-syllabic.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-thai.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-use.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-vowel-constraints.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shape-fallback.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shape-normalize.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ucd.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-buffer-serialize.cc:_hb_debug(unsigned int, unsigned int)
Unexecuted instantiation: hb-ot-shaper-indic-table.cc:_hb_debug(unsigned int, unsigned int)
50
51
#define DEBUG_LEVEL_ENABLED(WHAT, LEVEL) (_hb_debug ((LEVEL), HB_DEBUG_##WHAT))
52
#define DEBUG_ENABLED(WHAT) (DEBUG_LEVEL_ENABLED (WHAT, 0))
53
54
static inline void
55
_hb_print_func (const char *func)
56
0
{
57
0
  if (func)
58
0
  {
59
0
    unsigned int func_len = strlen (func);
60
0
    /* Skip "static" */
61
0
    if (0 == strncmp (func, "static ", 7))
62
0
      func += 7;
63
0
    /* Skip "typename" */
64
0
    if (0 == strncmp (func, "typename ", 9))
65
0
      func += 9;
66
0
    /* Skip return type */
67
0
    const char *space = strchr (func, ' ');
68
0
    if (space)
69
0
      func = space + 1;
70
0
    /* Skip parameter list */
71
0
    const char *paren = strchr (func, '(');
72
0
    if (paren)
73
0
      func_len = paren - func;
74
0
    fprintf (stderr, "%.*s", (int) func_len, func);
75
0
  }
76
0
}
Unexecuted instantiation: hb-aat-layout.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-aat-map.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-blob.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-buffer.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-common.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-draw.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-face.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-face-builder.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-fallback-shape.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-font.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-number.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-color.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-face.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-font.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-outline.cc:_hb_print_func(char const*)
Unexecuted instantiation: VARC.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-layout.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-metrics.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-name.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shape.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-tag.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-var.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-set.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-shape-plan.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-shape.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-shaper.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-static.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-unicode.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-graphite2.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-icu.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-buffer-verify.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-paint.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-paint-bounded.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-paint-extents.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-cff1-table.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-cff2-table.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-map.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shaper-arabic.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shaper-default.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shaper-hangul.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shaper-hebrew.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shaper-indic.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shaper-khmer.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shaper-myanmar.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shaper-syllabic.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shaper-thai.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shaper-use.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shaper-vowel-constraints.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shape-fallback.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shape-normalize.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ucd.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-buffer-serialize.cc:_hb_print_func(char const*)
Unexecuted instantiation: hb-ot-shaper-indic-table.cc:_hb_print_func(char const*)
77
78
template <int max_level> static inline void
79
_hb_debug_msg_va (const char *what,
80
      const void *obj,
81
      const char *func,
82
      bool indented,
83
      unsigned int level,
84
      int level_dir,
85
      const char *message,
86
      va_list ap) HB_PRINTF_FUNC(7, 0);
87
template <int max_level> static inline void
88
_hb_debug_msg_va (const char *what,
89
      const void *obj,
90
      const char *func,
91
      bool indented,
92
      unsigned int level,
93
      int level_dir,
94
      const char *message,
95
      va_list ap)
96
{
97
  if (!_hb_debug (level, max_level))
98
    return;
99
100
  fprintf (stderr, "%-10s", what ? what : "");
101
102
  if (obj)
103
    fprintf (stderr, "(%*p) ", (int) (2 * sizeof (void *)), obj);
104
  else
105
    fprintf (stderr, " %*s  ", (int) (2 * sizeof (void *)), "");
106
107
  if (indented) {
108
#define VBAR  "\342\224\202"  /* U+2502 BOX DRAWINGS LIGHT VERTICAL */
109
#define VRBAR "\342\224\234"  /* U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT */
110
#define DLBAR "\342\225\256"  /* U+256E BOX DRAWINGS LIGHT ARC DOWN AND LEFT */
111
#define ULBAR "\342\225\257"  /* U+256F BOX DRAWINGS LIGHT ARC UP AND LEFT */
112
#define LBAR  "\342\225\264"  /* U+2574 BOX DRAWINGS LIGHT LEFT */
113
    static const char bars[] =
114
      VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR
115
      VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR
116
      VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR
117
      VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR
118
      VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR;
119
    fprintf (stderr, "%2u %s" VRBAR "%s",
120
       level,
121
       bars + sizeof (bars) - 1 - hb_min ((unsigned int) sizeof (bars) - 1, (unsigned int) (sizeof (VBAR) - 1) * level),
122
       level_dir ? (level_dir > 0 ? DLBAR : ULBAR) : LBAR);
123
  } else
124
    fprintf (stderr, "   " VRBAR LBAR);
125
126
  _hb_print_func (func);
127
128
  if (message)
129
  {
130
    fprintf (stderr, ": ");
131
    vfprintf (stderr, message, ap);
132
  }
133
134
  fprintf (stderr, "\n");
135
}
136
template <> inline void HB_PRINTF_FUNC(7, 0)
137
_hb_debug_msg_va<0> (const char *what HB_UNUSED,
138
         const void *obj HB_UNUSED,
139
         const char *func HB_UNUSED,
140
         bool indented HB_UNUSED,
141
         unsigned int level HB_UNUSED,
142
         int level_dir HB_UNUSED,
143
         const char *message HB_UNUSED,
144
0
         va_list ap HB_UNUSED) {}
Unexecuted instantiation: hb-aat-layout.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-aat-map.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-blob.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-buffer.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-common.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-draw.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-face.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-face-builder.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-fallback-shape.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-font.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-number.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-color.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-face.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-font.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-outline.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: VARC.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-layout.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-metrics.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-name.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shape.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-tag.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-var.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-set.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-shape-plan.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-shape.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-shaper.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-static.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-unicode.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-graphite2.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-icu.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-buffer-verify.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-paint.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-paint-bounded.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-paint-extents.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-cff1-table.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-cff2-table.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-map.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shaper-arabic.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shaper-default.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shaper-hangul.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shaper-hebrew.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shaper-indic.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shaper-khmer.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shaper-myanmar.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shaper-syllabic.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shaper-thai.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shaper-use.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shaper-vowel-constraints.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shape-fallback.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shape-normalize.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ucd.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-buffer-serialize.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
Unexecuted instantiation: hb-ot-shaper-indic-table.cc:void _hb_debug_msg_va<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, __va_list_tag*)
145
146
template <int max_level> static inline void
147
_hb_debug_msg (const char *what,
148
         const void *obj,
149
         const char *func,
150
         bool indented,
151
         unsigned int level,
152
         int level_dir,
153
         const char *message,
154
         ...) HB_PRINTF_FUNC(7, 8);
155
template <int max_level> static inline void HB_PRINTF_FUNC(7, 8)
156
_hb_debug_msg (const char *what,
157
         const void *obj,
158
         const char *func,
159
         bool indented,
160
         unsigned int level,
161
         int level_dir,
162
         const char *message,
163
         ...)
164
{
165
  va_list ap;
166
  va_start (ap, message);
167
  _hb_debug_msg_va<max_level> (what, obj, func, indented, level, level_dir, message, ap);
168
  va_end (ap);
169
}
170
template <> inline void
171
_hb_debug_msg<0> (const char *what HB_UNUSED,
172
      const void *obj HB_UNUSED,
173
      const char *func HB_UNUSED,
174
      bool indented HB_UNUSED,
175
      unsigned int level HB_UNUSED,
176
      int level_dir HB_UNUSED,
177
      const char *message HB_UNUSED,
178
      ...) HB_PRINTF_FUNC(7, 8);
179
template <> inline void HB_PRINTF_FUNC(7, 8)
180
_hb_debug_msg<0> (const char *what HB_UNUSED,
181
      const void *obj HB_UNUSED,
182
      const char *func HB_UNUSED,
183
      bool indented HB_UNUSED,
184
      unsigned int level HB_UNUSED,
185
      int level_dir HB_UNUSED,
186
      const char *message HB_UNUSED,
187
786M
      ...) {}
hb-aat-layout.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
136M
      ...) {}
Unexecuted instantiation: hb-aat-map.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
hb-blob.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
266M
      ...) {}
hb-buffer.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
42.2M
      ...) {}
Unexecuted instantiation: hb-common.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-draw.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
hb-face.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
566k
      ...) {}
Unexecuted instantiation: hb-face-builder.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-fallback-shape.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
hb-font.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
2.18M
      ...) {}
Unexecuted instantiation: hb-number.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
hb-ot-color.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
116
      ...) {}
Unexecuted instantiation: hb-ot-face.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
hb-ot-font.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
1.60k
      ...) {}
Unexecuted instantiation: hb-outline.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: VARC.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
hb-ot-layout.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
79.5M
      ...) {}
hb-ot-metrics.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
61
      ...) {}
Unexecuted instantiation: hb-ot-name.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shape.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-tag.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
hb-ot-var.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
61
      ...) {}
hb-set.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
936
      ...) {}
hb-shape-plan.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
195M
      ...) {}
Unexecuted instantiation: hb-shape.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-shaper.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-static.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
hb-unicode.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
63.3M
      ...) {}
Unexecuted instantiation: hb-graphite2.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-icu.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-buffer-verify.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-paint.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-paint-bounded.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-paint-extents.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-cff1-table.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-cff2-table.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-map.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
hb-ot-shaper-arabic.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Line
Count
Source
187
763k
      ...) {}
Unexecuted instantiation: hb-ot-shaper-default.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shaper-hangul.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shaper-hebrew.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shaper-indic.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shaper-khmer.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shaper-myanmar.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shaper-syllabic.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shaper-thai.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shaper-use.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shaper-vowel-constraints.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shape-fallback.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shape-normalize.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ucd.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-buffer-serialize.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
Unexecuted instantiation: hb-ot-shaper-indic-table.cc:void _hb_debug_msg<0>(char const*, void const*, char const*, bool, unsigned int, int, char const*, ...)
188
189
216M
#define DEBUG_MSG_LEVEL(WHAT, OBJ, LEVEL, LEVEL_DIR, ...) _hb_debug_msg<HB_DEBUG_##WHAT> (#WHAT, (OBJ), nullptr,    true, (LEVEL), (LEVEL_DIR), __VA_ARGS__)
190
906M
#define DEBUG_MSG(WHAT, OBJ, ...)       _hb_debug_msg<HB_DEBUG_##WHAT> (#WHAT, (OBJ), nullptr,    false, 0, 0, __VA_ARGS__)
191
117M
#define DEBUG_MSG_FUNC(WHAT, OBJ, ...)        _hb_debug_msg<HB_DEBUG_##WHAT> (#WHAT, (OBJ), HB_FUNC, false, 0, 0, __VA_ARGS__)
192
193
194
/*
195
 * Printer
196
 */
197
198
template <typename T>
199
struct hb_printer_t {
200
  const char *print (const T&) { return "something"; }
201
};
202
203
template <>
204
struct hb_printer_t<bool> {
205
0
  const char *print (bool v) { return v ? "true" : "false"; }
206
};
207
208
template <>
209
struct hb_printer_t<hb_empty_t> {
210
0
  const char *print (hb_empty_t) { return ""; }
211
};
212
213
214
/*
215
 * Trace
216
 */
217
218
template <typename T>
219
static inline void _hb_warn_no_return (bool returned)
220
{
221
  if (unlikely (!returned)) {
222
    fprintf (stderr, "OUCH, returned with no call to return_trace().  This is a bug, please report.\n");
223
  }
224
}
225
template <>
226
0
/*static*/ inline void _hb_warn_no_return<hb_empty_t> (bool returned HB_UNUSED) {}
Unexecuted instantiation: hb-aat-layout.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-aat-map.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-blob.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-buffer.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-common.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-draw.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-face.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-face-builder.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-fallback-shape.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-font.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-number.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-color.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-face.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-font.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-outline.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: VARC.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-layout.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-metrics.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-name.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shape.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-tag.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-var.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-set.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-shape-plan.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-shape.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-shaper.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-static.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-unicode.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-graphite2.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-icu.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-buffer-verify.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-paint.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-paint-bounded.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-paint-extents.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-cff1-table.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-cff2-table.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-map.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shaper-arabic.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shaper-default.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shaper-hangul.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shaper-hebrew.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shaper-indic.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shaper-khmer.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shaper-myanmar.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shaper-syllabic.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shaper-thai.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shaper-use.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shaper-vowel-constraints.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shape-fallback.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shape-normalize.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ucd.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-buffer-serialize.cc:void _hb_warn_no_return<hb_empty_t>(bool)
Unexecuted instantiation: hb-ot-shaper-indic-table.cc:void _hb_warn_no_return<hb_empty_t>(bool)
227
template <>
228
0
/*static*/ inline void _hb_warn_no_return<void> (bool returned HB_UNUSED) {}
Unexecuted instantiation: hb-aat-layout.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-aat-map.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-blob.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-buffer.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-common.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-draw.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-face.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-face-builder.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-fallback-shape.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-font.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-number.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-color.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-face.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-font.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-outline.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: VARC.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-layout.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-metrics.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-name.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shape.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-tag.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-var.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-set.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-shape-plan.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-shape.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-shaper.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-static.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-unicode.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-graphite2.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-icu.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-buffer-verify.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-paint.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-paint-bounded.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-paint-extents.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-cff1-table.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-cff2-table.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-map.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shaper-arabic.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shaper-default.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shaper-hangul.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shaper-hebrew.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shaper-indic.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shaper-khmer.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shaper-myanmar.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shaper-syllabic.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shaper-thai.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shaper-use.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shaper-vowel-constraints.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shape-fallback.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shape-normalize.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ucd.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-buffer-serialize.cc:void _hb_warn_no_return<void>(bool)
Unexecuted instantiation: hb-ot-shaper-indic-table.cc:void _hb_warn_no_return<void>(bool)
229
230
template <int max_level, typename ret_t>
231
struct hb_auto_trace_t
232
{
233
  explicit inline hb_auto_trace_t (unsigned int *plevel_,
234
           const char *what_,
235
           const void *obj_,
236
           const char *func,
237
           const char *message,
238
           ...) HB_PRINTF_FUNC(6, 7)
239
           : plevel (plevel_), what (what_), obj (obj_), returned (false)
240
  {
241
    if (plevel) ++*plevel;
242
243
    va_list ap;
244
    va_start (ap, message);
245
    _hb_debug_msg_va<max_level> (what, obj, func, true, plevel ? *plevel : 0, +1, message, ap);
246
    va_end (ap);
247
  }
248
  ~hb_auto_trace_t ()
249
  {
250
    _hb_warn_no_return<ret_t> (returned);
251
    if (!returned) {
252
      _hb_debug_msg<max_level> (what, obj, nullptr, true, plevel ? *plevel : 1, -1, " ");
253
    }
254
    if (plevel) --*plevel;
255
  }
256
257
  template <typename T>
258
  T ret (T&& v,
259
   const char *func = "",
260
   unsigned int line = 0)
261
  {
262
    if (unlikely (returned)) {
263
      fprintf (stderr, "OUCH, double calls to return_trace().  This is a bug, please report.\n");
264
      return std::forward<T> (v);
265
    }
266
267
    _hb_debug_msg<max_level> (what, obj, func, true, plevel ? *plevel : 1, -1,
268
            "return %s (line %u)",
269
            hb_printer_t<hb_decay<decltype (v)>>().print (v), line);
270
    if (plevel) --*plevel;
271
    plevel = nullptr;
272
    returned = true;
273
    return std::forward<T> (v);
274
  }
275
276
  private:
277
  unsigned int *plevel;
278
  const char *what;
279
  const void *obj;
280
  bool returned;
281
};
282
template <typename ret_t> /* Make sure we don't use hb_auto_trace_t when not tracing. */
283
struct hb_auto_trace_t<0, ret_t>
284
{
285
  explicit inline hb_auto_trace_t (unsigned int *plevel_,
286
           const char *what_,
287
           const void *obj_,
288
           const char *func,
289
           const char *message,
290
           ...) HB_PRINTF_FUNC(6, 7) {}
291
292
  template <typename T>
293
  T ret (T&& v,
294
   const char *func HB_UNUSED = nullptr,
295
   unsigned int line HB_UNUSED = 0) { return std::forward<T> (v); }
296
};
297
298
/* For disabled tracing; optimize out everything.
299
 * https://github.com/harfbuzz/harfbuzz/pull/605 */
300
template <typename ret_t>
301
struct hb_no_trace_t {
302
  template <typename T>
303
  T ret (T&& v,
304
   const char *func HB_UNUSED = nullptr,
305
247M
   unsigned int line HB_UNUSED = 0) { return std::forward<T> (v); }
bool hb_no_trace_t<bool>::ret<bool>(bool&&, char const*, unsigned int)
Line
Count
Source
305
247M
   unsigned int line HB_UNUSED = 0) { return std::forward<T> (v); }
long hb_no_trace_t<bool>::ret<long>(long&&, char const*, unsigned int)
Line
Count
Source
305
2.56k
   unsigned int line HB_UNUSED = 0) { return std::forward<T> (v); }
hb_empty_t hb_no_trace_t<hb_empty_t>::ret<hb_empty_t>(hb_empty_t&&, char const*, unsigned int)
Line
Count
Source
305
4.29k
   unsigned int line HB_UNUSED = 0) { return std::forward<T> (v); }
Unexecuted instantiation: bool& hb_no_trace_t<bool>::ret<bool&>(bool&, char const*, unsigned int)
Unexecuted instantiation: OT::LangSys* hb_no_trace_t<bool>::ret<OT::LangSys*>(OT::LangSys*&&, char const*, unsigned int)
Unexecuted instantiation: OT::VarRegionAxis* hb_no_trace_t<bool>::ret<OT::VarRegionAxis*>(OT::VarRegionAxis*&&, char const*, unsigned int)
Unexecuted instantiation: OT::SparseVarRegionAxis* hb_no_trace_t<bool>::ret<OT::SparseVarRegionAxis*>(OT::SparseVarRegionAxis*&&, char const*, unsigned int)
Unexecuted instantiation: decltype(nullptr) hb_no_trace_t<bool>::ret<decltype(nullptr)>(decltype(nullptr)&&, char const*, unsigned int)
Unexecuted instantiation: OT::ItemVariationStore*& hb_no_trace_t<bool>::ret<OT::ItemVariationStore*&>(OT::ItemVariationStore*&, char const*, unsigned int)
Unexecuted instantiation: OT::DeltaSetIndexMapFormat01<OT::NumType<true, unsigned short, 2u> >* hb_no_trace_t<bool>::ret<OT::DeltaSetIndexMapFormat01<OT::NumType<true, unsigned short, 2u> >*>(OT::DeltaSetIndexMapFormat01<OT::NumType<true, unsigned short, 2u> >*&&, char const*, unsigned int)
Unexecuted instantiation: OT::DeltaSetIndexMap* hb_no_trace_t<bool>::ret<OT::DeltaSetIndexMap*>(OT::DeltaSetIndexMap*&&, char const*, unsigned int)
Unexecuted instantiation: OT::DeltaSetIndexMapFormat01<OT::NumType<true, unsigned int, 4u> >* hb_no_trace_t<bool>::ret<OT::DeltaSetIndexMapFormat01<OT::NumType<true, unsigned int, 4u> >*>(OT::DeltaSetIndexMapFormat01<OT::NumType<true, unsigned int, 4u> >*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Condition, OT::NumType<true, unsigned int, 4u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Condition, OT::NumType<true, unsigned int, 4u>, void, true>*>(OT::OffsetTo<OT::Condition, OT::NumType<true, unsigned int, 4u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::FeatureTableSubstitutionRecord* hb_no_trace_t<bool>::ret<OT::FeatureTableSubstitutionRecord*>(OT::FeatureTableSubstitutionRecord*&&, char const*, unsigned int)
Unexecuted instantiation: OT::FeatureVariations* hb_no_trace_t<bool>::ret<OT::FeatureVariations*>(OT::FeatureVariations*&&, char const*, unsigned int)
Unexecuted instantiation: OT::HintingDevice* hb_no_trace_t<bool>::ret<OT::HintingDevice*>(OT::HintingDevice*&&, char const*, unsigned int)
Unexecuted instantiation: OT::VariationDevice*& hb_no_trace_t<bool>::ret<OT::VariationDevice*&>(OT::VariationDevice*&, char const*, unsigned int)
Unexecuted instantiation: OT::Device* hb_no_trace_t<bool>::ret<OT::Device*>(OT::Device*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::AttachPoint, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::AttachPoint, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::AttachPoint, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::CaretValue, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::CaretValue, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::CaretValue, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::LigGlyph, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::LigGlyph, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::LigGlyph, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Layout::Common::Coverage, OT::NumType<true, unsigned int, 4u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Layout::Common::Coverage, OT::NumType<true, unsigned int, 4u>, void, true>*>(OT::OffsetTo<OT::Layout::Common::Coverage, OT::NumType<true, unsigned int, 4u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Layout::Common::Coverage, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Layout::Common::Coverage, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::Layout::Common::Coverage, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::Layout::GPOS_impl::AnchorFormat1*& hb_no_trace_t<bool>::ret<OT::Layout::GPOS_impl::AnchorFormat1*&>(OT::Layout::GPOS_impl::AnchorFormat1*&, char const*, unsigned int)
Unexecuted instantiation: OT::Layout::GPOS_impl::AnchorFormat2* hb_no_trace_t<bool>::ret<OT::Layout::GPOS_impl::AnchorFormat2*>(OT::Layout::GPOS_impl::AnchorFormat2*&&, char const*, unsigned int)
Unexecuted instantiation: OT::Layout::GPOS_impl::AnchorFormat3*& hb_no_trace_t<bool>::ret<OT::Layout::GPOS_impl::AnchorFormat3*&>(OT::Layout::GPOS_impl::AnchorFormat3*&, char const*, unsigned int)
Unexecuted instantiation: hb_empty_t& hb_no_trace_t<hb_empty_t>::ret<hb_empty_t&>(hb_empty_t&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::Layout::GPOS_impl::PosLookupSubTable, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::Layout::GPOS_impl::PosLookup, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::AxisValueFormat1* hb_no_trace_t<bool>::ret<OT::AxisValueFormat1*>(OT::AxisValueFormat1*&&, char const*, unsigned int)
Unexecuted instantiation: OT::AxisValueFormat2* hb_no_trace_t<bool>::ret<OT::AxisValueFormat2*>(OT::AxisValueFormat2*&&, char const*, unsigned int)
Unexecuted instantiation: OT::AxisValueFormat3* hb_no_trace_t<bool>::ret<OT::AxisValueFormat3*>(OT::AxisValueFormat3*&&, char const*, unsigned int)
Unexecuted instantiation: unsigned int& hb_no_trace_t<bool>::ret<unsigned int&>(unsigned int&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookupSubTable, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::Layout::GSUB_impl::SubstLookup, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: OT::EncodingRecord*& hb_no_trace_t<bool>::ret<OT::EncodingRecord*&>(OT::EncodingRecord*&, char const*, unsigned int)
Unexecuted instantiation: OT::AxisValueMap* hb_no_trace_t<bool>::ret<OT::AxisValueMap*>(OT::AxisValueMap*&&, char const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::NumType<true, unsigned int, 4u> const> hb_no_trace_t<bool>::ret<hb_array_t<OT::NumType<true, unsigned int, 4u> const> >(hb_array_t<OT::NumType<true, unsigned int, 4u> const>&&, char const*, unsigned int)
Unexecuted instantiation: OT::UnsizedArrayOf<OT::NumType<true, unsigned int, 4u> >*& hb_no_trace_t<bool>::ret<OT::UnsizedArrayOf<OT::NumType<true, unsigned int, 4u> >*&>(OT::UnsizedArrayOf<OT::NumType<true, unsigned int, 4u> >*&, char const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::Index const> hb_no_trace_t<bool>::ret<hb_array_t<OT::Index const> >(hb_array_t<OT::Index const>&&, char const*, unsigned int)
Unexecuted instantiation: OT::UnsizedArrayOf<OT::Index>*& hb_no_trace_t<bool>::ret<OT::UnsizedArrayOf<OT::Index>*&>(OT::UnsizedArrayOf<OT::Index>*&, char const*, unsigned int)
Unexecuted instantiation: OT::VarIdx* hb_no_trace_t<bool>::ret<OT::VarIdx*>(OT::VarIdx*&&, char const*, unsigned int)
Unexecuted instantiation: int hb_no_trace_t<bool>::ret<int>(int&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::Paint, OT::NumType<true, unsigned int, 4u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::Paint, OT::NumType<true, unsigned int, 4u>, void, true>*>(OT::OffsetTo<OT::Paint, OT::NumType<true, unsigned int, 4u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::LayerRecord const> hb_no_trace_t<bool>::ret<hb_array_t<OT::LayerRecord const> >(hb_array_t<OT::LayerRecord const>&&, char const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::NumType<true, unsigned char, 1u> const> hb_no_trace_t<bool>::ret<hb_array_t<OT::NumType<true, unsigned char, 1u> const> >(hb_array_t<OT::NumType<true, unsigned char, 1u> const>&&, char const*, unsigned int)
Unexecuted instantiation: OT::UnsizedArrayOf<OT::NumType<true, unsigned char, 1u> >*& hb_no_trace_t<bool>::ret<OT::UnsizedArrayOf<OT::NumType<true, unsigned char, 1u> >*&>(OT::UnsizedArrayOf<OT::NumType<true, unsigned char, 1u> >*&, char const*, unsigned int)
Unexecuted instantiation: OT::SBIXGlyph*& hb_no_trace_t<bool>::ret<OT::SBIXGlyph*&>(OT::SBIXGlyph*&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::SBIXStrike, OT::NumType<true, unsigned int, 4u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::SBIXStrike, OT::NumType<true, unsigned int, 4u>, void, true>*>(OT::OffsetTo<OT::SBIXStrike, OT::NumType<true, unsigned int, 4u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: hb_array_t<char const> hb_no_trace_t<bool>::ret<hb_array_t<char const> >(hb_array_t<char const>&&, char const*, unsigned int)
Unexecuted instantiation: CFF::Encoding* hb_no_trace_t<bool>::ret<CFF::Encoding*>(CFF::Encoding*&&, char const*, unsigned int)
Unexecuted instantiation: char* hb_no_trace_t<bool>::ret<char*>(char*&&, char const*, unsigned int)
Unexecuted instantiation: OT::NameRecord*& hb_no_trace_t<bool>::ret<OT::NameRecord*&>(OT::NameRecord*&, char const*, unsigned int)
Unexecuted instantiation: unsigned int& hb_no_trace_t<unsigned int>::ret<unsigned int&>(unsigned int&, char const*, unsigned int)
Unexecuted instantiation: unsigned int hb_no_trace_t<unsigned int>::ret<unsigned int>(unsigned int&&, char const*, unsigned int)
Unexecuted instantiation: OT::OffsetTo<OT::BaseCoord, OT::NumType<true, unsigned short, 2u>, void, true>* hb_no_trace_t<bool>::ret<OT::OffsetTo<OT::BaseCoord, OT::NumType<true, unsigned short, 2u>, void, true>*>(OT::OffsetTo<OT::BaseCoord, OT::NumType<true, unsigned short, 2u>, void, true>*&&, char const*, unsigned int)
Unexecuted instantiation: hb_array_t<OT::Tag const> hb_no_trace_t<bool>::ret<hb_array_t<OT::Tag const> >(hb_array_t<OT::Tag const>&&, char const*, unsigned int)
Unexecuted instantiation: OT::ArrayOf<OT::Tag, OT::NumType<true, unsigned short, 2u> >*& hb_no_trace_t<bool>::ret<OT::ArrayOf<OT::Tag, OT::NumType<true, unsigned short, 2u> >*&>(OT::ArrayOf<OT::Tag, OT::NumType<true, unsigned short, 2u> >*&, char const*, unsigned int)
Unexecuted instantiation: OT::SortedArrayOf<OT::Tag, OT::NumType<true, unsigned short, 2u> >*& hb_no_trace_t<bool>::ret<OT::SortedArrayOf<OT::Tag, OT::NumType<true, unsigned short, 2u> >*&>(OT::SortedArrayOf<OT::Tag, OT::NumType<true, unsigned short, 2u> >*&, char const*, unsigned int)
306
};
307
308
247M
#define return_trace(RET) return trace.ret (RET, HB_FUNC, __LINE__)
Unexecuted instantiation: OT::RuleSet<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*, OT::ContextApplyLookupContext const&) const::{lambda(OT::Rule<OT::Layout::SmallTypes> const&)#1}::operator()(OT::Rule<OT::Layout::SmallTypes> const&) const
Unexecuted instantiation: OT::RuleSet<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*, OT::ContextApplyLookupContext const&) const::{lambda(OT::Rule<OT::Layout::SmallTypes> const&)#3}::operator()(OT::Rule<OT::Layout::SmallTypes> const&) const
Unexecuted instantiation: OT::RuleSet<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*, OT::ContextApplyLookupContext const&) const::{lambda(OT::Rule<OT::Layout::SmallTypes> const&)#2}::operator()(OT::Rule<OT::Layout::SmallTypes> const&) const
Unexecuted instantiation: OT::ChainRuleSet<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*, OT::ChainContextApplyLookupContext const&) const::{lambda(OT::ChainRule<OT::Layout::SmallTypes> const&)#1}::operator()(OT::ChainRule<OT::Layout::SmallTypes> const&) const
Unexecuted instantiation: OT::ChainRuleSet<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*, OT::ChainContextApplyLookupContext const&) const::{lambda(OT::ChainRule<OT::Layout::SmallTypes> const&)#3}::operator()(OT::ChainRule<OT::Layout::SmallTypes> const&) const
Unexecuted instantiation: OT::ChainRuleSet<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*, OT::ChainContextApplyLookupContext const&) const::{lambda(OT::ChainRule<OT::Layout::SmallTypes> const&)#2}::operator()(OT::ChainRule<OT::Layout::SmallTypes> const&) const
309
310
311
/*
312
 * Instances.
313
 */
314
315
#ifndef HB_DEBUG_ARABIC
316
#define HB_DEBUG_ARABIC (HB_DEBUG+0)
317
#endif
318
319
#ifndef HB_DEBUG_BLOB
320
#define HB_DEBUG_BLOB (HB_DEBUG+0)
321
#endif
322
323
#ifndef HB_DEBUG_CORETEXT
324
#define HB_DEBUG_CORETEXT (HB_DEBUG+0)
325
#endif
326
327
#ifndef HB_DEBUG_DIRECTWRITE
328
#define HB_DEBUG_DIRECTWRITE (HB_DEBUG+0)
329
#endif
330
331
#ifndef HB_DEBUG_FT
332
#define HB_DEBUG_FT (HB_DEBUG+0)
333
#endif
334
335
#ifndef HB_DEBUG_JUSTIFY
336
#define HB_DEBUG_JUSTIFY (HB_DEBUG+0)
337
#endif
338
339
#ifndef HB_DEBUG_OBJECT
340
#define HB_DEBUG_OBJECT (HB_DEBUG+0)
341
#endif
342
343
#ifndef HB_DEBUG_SHAPE_PLAN
344
#define HB_DEBUG_SHAPE_PLAN (HB_DEBUG+0)
345
#endif
346
347
#ifndef HB_DEBUG_UNISCRIBE
348
#define HB_DEBUG_UNISCRIBE (HB_DEBUG+0)
349
#endif
350
351
#ifndef HB_DEBUG_WASM
352
#define HB_DEBUG_WASM (HB_DEBUG+0)
353
#endif
354
355
#ifndef HB_DEBUG_KBTS
356
#define HB_DEBUG_KBTS (HB_DEBUG+0)
357
#endif
358
359
/*
360
 * With tracing.
361
 */
362
363
#ifndef HB_DEBUG_APPLY
364
#define HB_DEBUG_APPLY (HB_DEBUG+0)
365
#endif
366
#if HB_DEBUG_APPLY
367
#define TRACE_APPLY(this) \
368
  hb_auto_trace_t<HB_DEBUG_APPLY, bool> trace \
369
  (&c->debug_depth, c->get_name (), this, HB_FUNC, \
370
   "idx %u gid %u lookup %d", \
371
   c->buffer->idx, c->buffer->cur().codepoint, (int) c->lookup_index)
372
#else
373
215M
#define TRACE_APPLY(this) hb_no_trace_t<bool> trace
374
#endif
375
376
#ifndef HB_DEBUG_SANITIZE
377
#define HB_DEBUG_SANITIZE (HB_DEBUG+0)
378
#endif
379
#if HB_DEBUG_SANITIZE
380
#define TRACE_SANITIZE(this) \
381
  hb_auto_trace_t<HB_DEBUG_SANITIZE, bool> trace \
382
  (&c->debug_depth, c->get_name (), this, HB_FUNC, \
383
   " ")
384
#else
385
1.03M
#define TRACE_SANITIZE(this) hb_no_trace_t<bool> trace
386
#endif
387
388
#ifndef HB_DEBUG_SERIALIZE
389
#define HB_DEBUG_SERIALIZE (HB_DEBUG+0)
390
#endif
391
#if HB_DEBUG_SERIALIZE
392
#define TRACE_SERIALIZE(this) \
393
  hb_auto_trace_t<HB_DEBUG_SERIALIZE, bool> trace \
394
  (&c->debug_depth, "SERIALIZE", c, HB_FUNC, \
395
   " ")
396
#else
397
0
#define TRACE_SERIALIZE(this) hb_no_trace_t<bool> trace
398
#endif
399
400
#ifndef HB_DEBUG_SUBSET
401
#define HB_DEBUG_SUBSET (HB_DEBUG+0)
402
#endif
403
#if HB_DEBUG_SUBSET
404
#define TRACE_SUBSET(this) \
405
  hb_auto_trace_t<HB_DEBUG_SUBSET, bool> trace \
406
  (&c->debug_depth, c->get_name (), this, HB_FUNC, \
407
   " ")
408
#else
409
#define TRACE_SUBSET(this) hb_no_trace_t<bool> trace
410
#endif
411
412
#ifndef HB_DEBUG_SUBSET_REPACK
413
#define HB_DEBUG_SUBSET_REPACK (HB_DEBUG+0)
414
#endif
415
416
#ifndef HB_DEBUG_PAINT
417
#define HB_DEBUG_PAINT (HB_DEBUG+0)
418
#endif
419
#if HB_DEBUG_PAINT
420
#define TRACE_PAINT(this) \
421
  HB_UNUSED hb_auto_trace_t<HB_DEBUG_PAINT, void> trace \
422
  (&c->debug_depth, c->get_name (), this, HB_FUNC, \
423
   " ")
424
#else
425
0
#define TRACE_PAINT(this) HB_UNUSED hb_no_trace_t<void> trace
426
#endif
427
428
429
#ifndef HB_DEBUG_DISPATCH
430
#define HB_DEBUG_DISPATCH ( \
431
  HB_DEBUG_APPLY + \
432
  HB_DEBUG_SANITIZE + \
433
  HB_DEBUG_SERIALIZE + \
434
  HB_DEBUG_SUBSET + \
435
  HB_DEBUG_PAINT + \
436
  0)
437
#endif
438
#if HB_DEBUG_DISPATCH
439
#define TRACE_DISPATCH(this, format) \
440
  hb_auto_trace_t<context_t::max_debug_depth, typename context_t::return_t> trace \
441
  (&c->debug_depth, c->get_name (), this, HB_FUNC, \
442
   "format %u", (unsigned) format)
443
#else
444
30.6M
#define TRACE_DISPATCH(this, format) hb_no_trace_t<typename context_t::return_t> trace
445
#endif
446
447
448
#ifndef HB_BUFFER_MESSAGE_MORE
449
8.52M
#define HB_BUFFER_MESSAGE_MORE (HB_DEBUG+0)
450
#endif
451
452
453
#endif /* HB_DEBUG_HH */