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 | 543da9acfae043153e1e390e3f69b1133df64d25 (patch) | |
tree | dec21037ebd5a217ad791dd4e96fe005229eaffd /navit/graphics.c | |
parent | ebabe92513b2799ca950ddea6d768061ce4ac679 (diff) | |
download | navit-543da9acfae043153e1e390e3f69b1133df64d25.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 1cf0ac898..f8057c73b 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; } |