From 1e06282105a2d579aab32094cc7abc10ed231978 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Thu, 31 Jan 2019 13:56:58 -0800 Subject: [PATCH] Adjust hb_is_signed<> Fixes https://github.com/harfbuzz/harfbuzz/issues/1535 --- src/hb-dsalgs.hh | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/src/hb-dsalgs.hh b/src/hb-dsalgs.hh index 6ccba158c..0da244f0a 100644 --- a/src/hb-dsalgs.hh +++ b/src/hb-dsalgs.hh @@ -299,24 +299,15 @@ hb_ceil_to_4 (unsigned int v) } template struct hb_is_signed; -template <> struct hb_is_signed { enum { value = true }; }; -template <> struct hb_is_signed { enum { value = true }; }; -template <> struct hb_is_signed { enum { value = true }; }; -template <> struct hb_is_signed { enum { value = true }; }; -template <> struct hb_is_signed { enum { value = false }; }; -template <> struct hb_is_signed { enum { value = false }; }; -template <> struct hb_is_signed { enum { value = false }; }; -template <> struct hb_is_signed { enum { value = false }; }; -/* We need to define hb_is_signed for the typedefs we use on pre-Visual - * Studio 2010 for the int8_t type, since __int8/__int64 is not considered - * the same as char/long. The previous lines will suffice for the other - * types, though. Note that somehow, unsigned __int8 is considered same - * as unsigned char. - * https://github.com/harfbuzz/harfbuzz/pull/1499 - */ -#if defined(_MSC_VER) && (_MSC_VER < 1600) -template <> struct hb_is_signed<__int8> { enum { value = true }; }; -#endif +/* https://github.com/harfbuzz/harfbuzz/issues/1535 */ +template <> struct hb_is_signed { enum { value = true }; }; +template <> struct hb_is_signed { enum { value = true }; }; +template <> struct hb_is_signed { enum { value = true }; }; +template <> struct hb_is_signed { enum { value = true }; }; +template <> struct hb_is_signed { enum { value = false }; }; +template <> struct hb_is_signed { enum { value = false }; }; +template <> struct hb_is_signed { enum { value = false }; }; +template <> struct hb_is_signed { enum { value = false }; }; template static inline bool hb_in_range (T u, T lo, T hi)