diff options
author | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2013-03-18 22:19:15 +0000 |
---|---|---|
committer | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2013-03-18 22:19:15 +0000 |
commit | 950bdce4b10d685c958c208d2bc15d9abc82565e (patch) | |
tree | dec21037ebd5a217ad791dd4e96fe005229eaffd /navit/graphics.c | |
parent | 245e568a0eeed29d9052b711c6cea941c2232e49 (diff) | |
download | navit-svn-950bdce4b10d685c958c208d2bc15d9abc82565e.tar.gz |
Fix:core:Fix signed int overflow in polygon clipping, to fix rendering errors in high zoom levels.|May be related to #1062.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5418 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/graphics.c')
-rw-r--r-- | navit/graphics.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/navit/graphics.c b/navit/graphics.c index 1cf0ac89..f8057c73 100644 --- a/navit/graphics.c +++ b/navit/graphics.c @@ -1689,19 +1689,19 @@ poly_intersection(struct point *p1, struct point *p2, struct point_rect *r, int int dy=p2->y-p1->y; switch(edge) { case 0: - ret->y=p1->y+(r->lu.x-p1->x)*dy/dx; + ret->y=p1->y+((float)r->lu.x-p1->x)*dy/dx; ret->x=r->lu.x; break; case 1: - ret->y=p1->y+(r->rl.x-p1->x)*dy/dx; + ret->y=p1->y+((float)r->rl.x-p1->x)*dy/dx; ret->x=r->rl.x; break; case 2: - ret->x=p1->x+(r->lu.y-p1->y)*dx/dy; + ret->x=p1->x+((float)r->lu.y-p1->y)*dx/dy; ret->y=r->lu.y; break; case 3: - ret->x=p1->x+(r->rl.y-p1->y)*dx/dy; + ret->x=p1->x+((float)r->rl.y-p1->y)*dx/dy; ret->y=r->rl.y; break; } |