From: Simon Tatham Date: Fri, 10 Apr 2015 06:55:16 +0000 (+0100) Subject: Sort out abs/fabs confusion. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=7f64f4a50e46304b7bad011a1251e146ab63ca15;p=sgt-puzzles.git Sort out abs/fabs confusion. My Mac has just upgraded itself to include a version of clang which warns if you use abs() on a floating-point value, or fabs() on an integer. Fixed the two occurrences that came up in this build (and which were actual build failures, because of -Werror), one in each direction. I think both were benign. The potentially dangerous one was using abs in place of fabs in grid_find_incentre(), because that could actually lose precision, but I think that function had plenty of precision to spare (grid point separation being of the order of tens of pixels) so nothing should have gone seriously wrong with the old code. --- diff --git a/grid.c b/grid.c index bae29f4..6a90c99 100644 --- a/grid.c +++ b/grid.c @@ -1069,7 +1069,7 @@ void grid_find_incentre(grid_face *f) eq[2] = eqs[0][3]*eqs[1][2] - eqs[1][3]*eqs[0][2]; /* Parametrise x and y in terms of some t. */ - if (abs(eq[0]) < abs(eq[1])) { + if (fabs(eq[0]) < fabs(eq[1])) { /* Parameter is x. */ xt[0] = 1; xt[1] = 0; yt[0] = -eq[0]/eq[1]; yt[1] = eq[2]/eq[1]; diff --git a/signpost.c b/signpost.c index 5650b2b..9dd8699 100644 --- a/signpost.c +++ b/signpost.c @@ -1982,7 +1982,7 @@ static void draw_drag_indicator(drawing *dr, game_drawstate *ds, /* Draw an arrow pointing away from/towards the origin cell. */ int ox = COORD(ui->sx) + TILE_SIZE/2, oy = COORD(ui->sy) + TILE_SIZE/2; double tana, offset; - double xdiff = fabs(ox - ui->dx), ydiff = fabs(oy - ui->dy); + double xdiff = abs(ox - ui->dx), ydiff = abs(oy - ui->dy); if (xdiff == 0) { ang = (oy > ui->dy) ? 0.0F : PI;