Improved version of the fix. Also remove a regression present in the
previous version.
--- libgd2-2.0.33-5.2-patched/gd.c      2007-05-15 19:44:43.000000000 +0200
+++ libgd2-2.0.33-5.2-patched-fx/gd.c   2007-06-21 14:33:53.000000000 +0200
@@ -1513,10 +1513,31 @@ BGD_DECLARE(void) gdImageFilledArc (gdIm
   int i;
   int lx = 0, ly = 0;
   int fx = 0, fy = 0;
-  while (e < s)
-    {
-      e += 360;
-    }
+
+  if ((s % 360)  == (e % 360)) {
+         s = 0; e = 360;
+  } else {
+         if (s > 360) {
+                 s = s % 360;
+         }
+
+         if (e > 360) {
+                 e = e % 360;
+         }
+
+         while (s < 0) {
+                 s += 360;
+         }
+
+         while (e < s) {
+                 e += 360;
+         }
+
+         if (s == e) {
+                 s = 0; e = 360;
+         }
+  }
+
   for (i = s; (i <= e); i++)
     {
       int x, y;

Reply via email to