mirror of
https://github.com/php/php-src.git
synced 2024-12-14 04:16:30 +08:00
Fixed #60160 and added a test for it
This commit is contained in:
parent
b5f15ef561
commit
58a134fb48
@ -1894,19 +1894,14 @@ void gdImageFill(gdImagePtr im, int x, int y, int nc)
|
||||
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;
|
||||
}
|
||||
|
26
ext/gd/tests/bug60160.phpt
Normal file
26
ext/gd/tests/bug60160.phpt
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user