]> granicus.if.org Git - graphviz/commitdiff
core plugin: suppress 'offset' double comparison warning
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 12 Nov 2022 23:53:05 +0000 (15:53 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 13 Nov 2022 21:00:02 +0000 (13:00 -0800)
This code is trying to abbreviate printing `0.000` or `1.000`. We can more
accurately describe the situations under which this will happen, squashing:

  gvrender_core_svg.c: In function ‘svg_print_stop’:
  gvrender_core_svg.c:525:16: warning: comparing floating-point with ‘==’ or
    ‘!=’ is unsafe [-Wfloat-equal]
    525 |     if (offset == 0.0)
        |                ^~
  gvrender_core_svg.c:527:21: warning: comparing floating-point with ‘==’ or
    ‘!=’ is unsafe [-Wfloat-equal]
    527 |     else if (offset == 1.0)
        |                     ^~

plugin/core/gvrender_core_svg.c

index e26bc0d428fdf165890d97827a861c3cdeaf20d4..76ceb7f817a5870e1bff30ae3229c056a4f82013 100644 (file)
@@ -534,9 +534,9 @@ static void svg_textspan(GVJ_t * job, pointf p, textspan_t * span)
 
 static void svg_print_stop(GVJ_t * job, double offset, gvcolor_t color)
 {
-    if (offset == 0.0)
+    if (fabs(offset - 0.0) < 0.0005)
        gvputs(job, "<stop offset=\"0\" style=\"stop-color:");
-    else if (offset == 1.0)
+    else if (fabs(offset - 1.0) < 0.0005)
        gvputs(job, "<stop offset=\"1\" style=\"stop-color:");
     else
        gvprintf(job, "<stop offset=\"%.03f\" style=\"stop-color:", offset);