-/*
- * Trace
- */
-
-
-template <int max_depth>
-struct hb_trace_t {
- explicit hb_trace_t (unsigned int *pdepth) : pdepth(pdepth) { if (max_depth) ++*pdepth; }
- ~hb_trace_t (void) { if (max_depth) --*pdepth; }
-
- inline void log (const char *what, const char *function, const void *obj)
- {
- if (*pdepth < max_depth)
- fprintf (stderr, "%s(%p) %-*d-> %s\n", what, obj, *pdepth, *pdepth, function);
- }
-
- private:
- unsigned int *pdepth;
-};
-template <> /* Optimize when tracing is disabled */
-struct hb_trace_t<0> {
- explicit hb_trace_t (unsigned int *p) {}
- inline void log (const char *what, const char *function, const void *obj) {};
-};
-
-