]> granicus.if.org Git - php/commitdiff
Fix #68714: copy 'n paste error
authorChristoph M. Becker <cmb@php.net>
Sun, 12 Jul 2015 14:26:16 +0000 (16:26 +0200)
committerChristoph M. Becker <cmb@php.net>
Sun, 12 Jul 2015 14:32:38 +0000 (16:32 +0200)
Actually, this is not really a bug fix, but rather a simplification and
optimization in the same vein as has been done with the external libgd, but
going a small step further and joining both for loops.

ext/gd/libgd/gd_arc.c
ext/gd/tests/imagefilledellipse_basic.phpt [new file with mode: 0644]

index 545dcb3fc5a42cd0495f0fd9248fd8b6d5468bd0..1c74871388815fa677f204447c2353107684dca0 100644 (file)
@@ -58,7 +58,7 @@ void gdImageFilledEllipse (gdImagePtr im, int mx, int my, int w, int h, int c)
        int x=0,mx1=0,mx2=0,my1=0,my2=0;
        long aq,bq,dx,dy,r,rx,ry,a,b;
        int i;
-       int old_y1,old_y2;
+       int old_y2;
 
        a=w>>1;
        b=h>>1;
@@ -79,7 +79,6 @@ void gdImageFilledEllipse (gdImagePtr im, int mx, int my, int w, int h, int c)
        ry = 0;
        x = a;
        old_y2=-2;
-       old_y1=-2;
        while (x > 0){
                if (r > 0) {
                        my1++;my2--;
@@ -95,15 +94,10 @@ void gdImageFilledEllipse (gdImagePtr im, int mx, int my, int w, int h, int c)
                if(old_y2!=my2){
                        for(i=mx1;i<=mx2;i++){
                                gdImageSetPixel(im,i,my1,c);
-                       }
-               }
-               if(old_y2!=my2){
-                       for(i=mx1;i<=mx2;i++){
                                gdImageSetPixel(im,i,my2,c);
                        }
                }
                old_y2 = my2;
-               old_y1 = my1;
        }
 }
 
diff --git a/ext/gd/tests/imagefilledellipse_basic.phpt b/ext/gd/tests/imagefilledellipse_basic.phpt
new file mode 100644 (file)
index 0000000..a1a578a
--- /dev/null
@@ -0,0 +1,25 @@
+--TEST--
+Testing imagefilledellipse() of GD library
+--SKIPIF--
+<?php 
+if (!extension_loaded("gd")) die("skip GD not present");
+?>
+--FILE--
+<?php
+
+$image = imagecreatetruecolor(100, 100);
+
+$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
+
+//create an ellipse and fill it with white color    
+imagefilledellipse($image, 50, 50, 40, 30, $white);
+
+ob_start();
+imagepng($image);
+$img = ob_get_contents();
+ob_end_clean();
+
+echo md5(base64_encode($img));
+?>
+--EXPECT--
+9ba540bba1b78c9f08efaa6fa0afd93b