diff --git "a/win32ss/gdi/dib/i386/dib32bpp_hline.s" "b/win32ss/gdi/dib/i386/dib32bpp_hline.s" index 2ce896ea65e..10675ff7cbd 100644 --- "a/win32ss/gdi/dib/i386/dib32bpp_hline.s" +++ "b/win32ss/gdi/dib/i386/dib32bpp_hline.s" @@ -24,6 +24,7 @@ _DIB_32BPP_HLine: imul eax, edi mov edi, [ecx+32] sub ebx, edx // cx = (x2 - x1) ; + jc short .exit // cx must not be negative add eax, edi lea edx, [eax+edx*4] mov [esp], edx @@ -47,7 +48,7 @@ _save_rest: rep stosd // The actual fill shr eax, 16 stosw - +.exit: mov ebx, [esp+4] mov edi, [esp+8] add esp, 12