fa Tue, 01 Nov 2011 11:51:53 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=318638
Log: Fixed #60160 and added a test for it Bug: https://bugs.php.net/60160 (Analyzed) imagefill() doesn't work correctly for small images Changed paths: U php/php-src/branches/PHP_5_3/ext/gd/libgd/gd.c A php/php-src/branches/PHP_5_3/ext/gd/tests/bug60160.phpt U php/php-src/branches/PHP_5_4/ext/gd/libgd/gd.c A php/php-src/branches/PHP_5_4/ext/gd/tests/bug60160.phpt U php/php-src/trunk/ext/gd/libgd/gd.c A php/php-src/trunk/ext/gd/tests/bug60160.phpt Modified: php/php-src/branches/PHP_5_3/ext/gd/libgd/gd.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/gd/libgd/gd.c 2011-11-01 10:25:47 UTC (rev 318637) +++ php/php-src/branches/PHP_5_3/ext/gd/libgd/gd.c 2011-11-01 11:51:53 UTC (rev 318638) @@ -1894,19 +1894,14 @@ if (im->sx < 4) { int ix = x, iy = y, c; do { - c = gdImageGetPixel(im, ix, iy); - if (c != oc) { - goto done; - } - gdImageSetPixel(im, ix, iy, nc); - } while(ix++ < (im->sx -1)); - ix = x; iy = y + 1; - do { - c = gdImageGetPixel(im, ix, iy); - if (c != oc) { - goto done; - } - gdImageSetPixel(im, ix, iy, nc); + do { + c = gdImageGetPixel(im, ix, iy); + if (c != oc) { + goto done; + } + gdImageSetPixel(im, ix, iy, nc); + } while(ix++ < (im->sx -1)); + ix = x; } while(iy++ < (im->sy -1)); goto done; } Added: php/php-src/branches/PHP_5_3/ext/gd/tests/bug60160.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/gd/tests/bug60160.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/gd/tests/bug60160.phpt 2011-11-01 11:51:53 UTC (rev 318638) @@ -0,0 +1,26 @@ +--TEST-- +Bug #60160 (imagefill does not work correctly for small images) @see bug51671 +--SKIPIF-- +<?php + if(!extension_loaded('gd')){ die('skip gd extension not available'); } +?> +--FILE-- +<?php +$w = 3; +$h = 50; +$im = imagecreatetruecolor($w, $h); +$white = imagecolorallocate($im, 255, 255, 255); +imagefill($im, 0, 0, $white); + +for ($ix = 0; $ix < $w; $ix++) { + for ($iy = 0; $iy < $h; $iy++) { + if (($c = imagecolorat($im, $ix, $iy)) != $white) { + printf("Failed, ($ix, $iy) is %X\n", $c); + } + } +} + +echo "OK\n"; +?> +--EXPECTF-- +OK Modified: php/php-src/branches/PHP_5_4/ext/gd/libgd/gd.c =================================================================== --- php/php-src/branches/PHP_5_4/ext/gd/libgd/gd.c 2011-11-01 10:25:47 UTC (rev 318637) +++ php/php-src/branches/PHP_5_4/ext/gd/libgd/gd.c 2011-11-01 11:51:53 UTC (rev 318638) @@ -1894,19 +1894,14 @@ if (im->sx < 4) { int ix = x, iy = y, c; do { - c = gdImageGetPixel(im, ix, iy); - if (c != oc) { - goto done; - } - gdImageSetPixel(im, ix, iy, nc); - } while(ix++ < (im->sx -1)); - ix = x; iy = y + 1; - do { - c = gdImageGetPixel(im, ix, iy); - if (c != oc) { - goto done; - } - gdImageSetPixel(im, ix, iy, nc); + do { + c = gdImageGetPixel(im, ix, iy); + if (c != oc) { + goto done; + } + gdImageSetPixel(im, ix, iy, nc); + } while(ix++ < (im->sx -1)); + ix = x; } while(iy++ < (im->sy -1)); goto done; } Added: php/php-src/branches/PHP_5_4/ext/gd/tests/bug60160.phpt =================================================================== --- php/php-src/branches/PHP_5_4/ext/gd/tests/bug60160.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/ext/gd/tests/bug60160.phpt 2011-11-01 11:51:53 UTC (rev 318638) @@ -0,0 +1,26 @@ +--TEST-- +Bug #60160 (imagefill does not work correctly for small images) @see bug51671 +--SKIPIF-- +<?php + if(!extension_loaded('gd')){ die('skip gd extension not available'); } +?> +--FILE-- +<?php +$w = 3; +$h = 50; +$im = imagecreatetruecolor($w, $h); +$white = imagecolorallocate($im, 255, 255, 255); +imagefill($im, 0, 0, $white); + +for ($ix = 0; $ix < $w; $ix++) { + for ($iy = 0; $iy < $h; $iy++) { + if (($c = imagecolorat($im, $ix, $iy)) != $white) { + printf("Failed, ($ix, $iy) is %X\n", $c); + } + } +} + +echo "OK\n"; +?> +--EXPECTF-- +OK Modified: php/php-src/trunk/ext/gd/libgd/gd.c =================================================================== --- php/php-src/trunk/ext/gd/libgd/gd.c 2011-11-01 10:25:47 UTC (rev 318637) +++ php/php-src/trunk/ext/gd/libgd/gd.c 2011-11-01 11:51:53 UTC (rev 318638) @@ -1894,19 +1894,14 @@ if (im->sx < 4) { int ix = x, iy = y, c; do { - c = gdImageGetPixel(im, ix, iy); - if (c != oc) { - goto done; - } - gdImageSetPixel(im, ix, iy, nc); - } while(ix++ < (im->sx -1)); - ix = x; iy = y + 1; - do { - c = gdImageGetPixel(im, ix, iy); - if (c != oc) { - goto done; - } - gdImageSetPixel(im, ix, iy, nc); + do { + c = gdImageGetPixel(im, ix, iy); + if (c != oc) { + goto done; + } + gdImageSetPixel(im, ix, iy, nc); + } while(ix++ < (im->sx -1)); + ix = x; } while(iy++ < (im->sy -1)); goto done; } Added: php/php-src/trunk/ext/gd/tests/bug60160.phpt =================================================================== --- php/php-src/trunk/ext/gd/tests/bug60160.phpt (rev 0) +++ php/php-src/trunk/ext/gd/tests/bug60160.phpt 2011-11-01 11:51:53 UTC (rev 318638) @@ -0,0 +1,26 @@ +--TEST-- +Bug #60160 (imagefill does not work correctly for small images) @see bug51671 +--SKIPIF-- +<?php + if(!extension_loaded('gd')){ die('skip gd extension not available'); } +?> +--FILE-- +<?php +$w = 3; +$h = 50; +$im = imagecreatetruecolor($w, $h); +$white = imagecolorallocate($im, 255, 255, 255); +imagefill($im, 0, 0, $white); + +for ($ix = 0; $ix < $w; $ix++) { + for ($iy = 0; $iy < $h; $iy++) { + if (($c = imagecolorat($im, $ix, $iy)) != $white) { + printf("Failed, ($ix, $iy) is %X\n", $c); + } + } +} + +echo "OK\n"; +?> +--EXPECTF-- +OK
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php