From b9f9a96ce8debe9dce62f997f2689a2aa3dbc667 Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Mon, 1 Jun 2009 21:27:28 +0000 Subject: [PATCH] Fix issue 172: Ellipse overflow with large sizes on 32bit cpus. git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@825 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- misc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/misc.c b/misc.c index e0ba3ce4..1ca40a6e 100644 --- a/misc.c +++ b/misc.c @@ -203,17 +203,17 @@ void Replace_a_color(byte old_color, byte New_color) void Ellipse_compute_limites(short horizontal_radius,short vertical_radius) { Ellipse_horizontal_radius_squared = - horizontal_radius * horizontal_radius; + (long)horizontal_radius * horizontal_radius; Ellipse_vertical_radius_squared = - vertical_radius * vertical_radius; - Ellipse_limit = Ellipse_horizontal_radius_squared * Ellipse_vertical_radius_squared; + (long)vertical_radius * vertical_radius; + Ellipse_limit = (qword)Ellipse_horizontal_radius_squared * Ellipse_vertical_radius_squared; } // FIXME: move to graph.c, it's the only caller byte Pixel_in_ellipse(void) { - qword ediesi = Ellipse_cursor_X * Ellipse_cursor_X * Ellipse_vertical_radius_squared + - Ellipse_cursor_Y * Ellipse_cursor_Y * Ellipse_horizontal_radius_squared; + qword ediesi = (qword)Ellipse_cursor_X * Ellipse_cursor_X * Ellipse_vertical_radius_squared + + (qword)Ellipse_cursor_Y * Ellipse_cursor_Y * Ellipse_horizontal_radius_squared; if((ediesi) <= Ellipse_limit) return 255; return 0;