From: Behdad Esfahbod Date: Thu, 2 May 2019 23:20:03 +0000 (-0700) Subject: [debug] Allow return_trace() to return any type X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7d497a3a92973d4cec14888b932091f49de1d190;p=platform%2Fupstream%2FlibHarfBuzzSharp.git [debug] Allow return_trace() to return any type --- diff --git a/src/hb-debug.hh b/src/hb-debug.hh index 52d5942..0069605 100644 --- a/src/hb-debug.hh +++ b/src/hb-debug.hh @@ -330,18 +330,20 @@ struct hb_auto_trace_t<0, ret_t> const char *message, ...) HB_PRINTF_FUNC(6, 7) {} - ret_t ret (ret_t v, - const char *func HB_UNUSED = nullptr, - unsigned int line HB_UNUSED = 0) { return v; } + template + T ret (T&& v, + const char *func HB_UNUSED = nullptr, + unsigned int line HB_UNUSED = 0) { return hb_forward (v); } }; /* For disabled tracing; optimize out everything. * https://github.com/harfbuzz/harfbuzz/pull/605 */ template struct hb_no_trace_t { - ret_t ret (ret_t v, - const char *func HB_UNUSED = "", - unsigned int line HB_UNUSED = 0) { return v; } + template + T ret (T&& v, + const char *func HB_UNUSED = nullptr, + unsigned int line HB_UNUSED = 0) { return hb_forward (v); } }; #define return_trace(RET) return trace.ret (RET, HB_FUNC, __LINE__)