From c9c97f13afd36dcbdde4e0acaacc8559bdce5ee9 Mon Sep 17 00:00:00 2001 From: Peter Veenstra Date: Sun, 31 Mar 2019 18:06:27 +0000 Subject: [PATCH] Correct bug related to signedness (M-HT). Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4198 --- src/gui/render_templates_hq.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/render_templates_hq.h b/src/gui/render_templates_hq.h index 002f1fff..3bfd65e3 100644 --- a/src/gui/render_templates_hq.h +++ b/src/gui/render_templates_hq.h @@ -41,17 +41,17 @@ static inline bool diffYUV(Bit32u yuv1, Bit32u yuv2) Bit32u mask; diff = ((yuv1 & Ymask) - (yuv2 & Ymask)); - mask = diff >> 31; // -1 if value < 0, 0 otherwise + mask = ((Bit32s)diff) >> 31; // ~1/-1 if value < 0, 0 otherwise diff = (diff ^ mask) - mask; //-1: ~value + 1; 0: value if (diff > trY) return true; diff = ((yuv1 & Umask) - (yuv2 & Umask)); - mask = diff >> 31; // -1 if value < 0, 0 otherwise + mask = ((Bit32s)diff)>> 31; // ~1/-1 if value < 0, 0 otherwise diff = (diff ^ mask) - mask; //-1: ~value + 1; 0: value if (diff > trU) return true; diff = ((yuv1 & Vmask) - (yuv2 & Vmask)); - mask = diff >> 31; // -1 if value < 0, 0 otherwise + mask = ((Bit32s)diff) >> 31; // ~1/-1 if value < 0, 0 otherwise diff = (diff ^ mask) - mask; //-1: ~value + 1; 0: value if (diff > trV) return true;