pajoye Wed, 03 Feb 2010 20:46:41 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=294460
Log: - fix libgd FS100 (spurious horizontal line drawn by gdImageFilledPolygon) Changed paths: _U php/php-src/branches/PHP_5_3_2/ U php/php-src/branches/PHP_5_3_2/ext/gd/libgd/gd.c A + php/php-src/branches/PHP_5_3_2/ext/gd/tests/libgd00100.phpt (from php/php-src/branches/PHP_5_3/ext/gd/tests/libgd00100.phpt:r293762) _U php/php-src/branches/PHP_5_3_2/ext/tidy/tests/ _U php/php-src/branches/PHP_5_3_2/tests/security/open_basedir_parse_ini_file.phpt Property changes on: php/php-src/branches/PHP_5_3_2 ___________________________________________________________________ Modified: svn:mergeinfo - /php/php-src/branches/PHP_5_3:292504,292574,292594-292595,292611,292624,292630,292632-292635,292654,292677,292682-292683,292693,292719,292762,292765,292771,292777,292823,293051,293075,293114,293126,293131,293144,293146,293152,293176,293180,293216,293235,293253,293268,293341,293380,293400,293442,293447,293466,293487,293502,293538,293548,293558,293588,293590,293597,293627,293644,293653,293655,293699,293726-293728,293974 /php/php-src/trunk:284726 + /php/php-src/branches/PHP_5_3:292504,292574,292594-292595,292611,292624,292630,292632-292635,292654,292677,292682-292683,292693,292719,292762,292765,292771,292777,292823,293051,293075,293114,293126,293131,293144,293146,293152,293176,293180,293216,293235,293253,293268,293341,293380,293400,293442,293447,293466,293487,293502,293538,293548,293558,293588,293590,293597,293627,293644,293653,293655,293699,293726-293728,293762,293974 /php/php-src/trunk:284726 Modified: php/php-src/branches/PHP_5_3_2/ext/gd/libgd/gd.c =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/gd/libgd/gd.c 2010-02-03 20:44:43 UTC (rev 294459) +++ php/php-src/branches/PHP_5_3_2/ext/gd/libgd/gd.c 2010-02-03 20:46:41 UTC (rev 294460) @@ -2614,7 +2614,7 @@ { int i; int y; - int miny, maxy; + int miny, maxy, pmaxy; int x1, y1; int x2, y2; int ind1, ind2; @@ -2658,7 +2658,7 @@ maxy = p[i].y; } } - + pmaxy = maxy; /* 2.0.16: Optimization by Ilia Chipitsine -- don't waste time offscreen */ if (miny < 0) { miny = 0; @@ -2700,13 +2700,13 @@ */ if (y >= y1 && y < y2) { im->polyInts[ints++] = (float) ((y - y1) * (x2 - x1)) / (float) (y2 - y1) + 0.5 + x1; - } else if (y == maxy && y > y1 && y <= y2) { - im->polyInts[ints++] = (float) ((y - y1) * (x2 - x1)) / (float) (y2 - y1) + 0.5 + x1; + } else if (y == pmaxy && y == y2) { + im->polyInts[ints++] = x2; } } qsort(im->polyInts, ints, sizeof(int), gdCompareInt); - for (i = 0; i < ints; i += 2) { + for (i = 0; i < ints - 1; i += 2) { gdImageLine(im, im->polyInts[i], y, im->polyInts[i + 1], y, fill_color); } } Copied: php/php-src/branches/PHP_5_3_2/ext/gd/tests/libgd00100.phpt (from rev 293762, php/php-src/branches/PHP_5_3/ext/gd/tests/libgd00100.phpt) =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/gd/tests/libgd00100.phpt (rev 0) +++ php/php-src/branches/PHP_5_3_2/ext/gd/tests/libgd00100.phpt 2010-02-03 20:46:41 UTC (rev 294460) @@ -0,0 +1,119 @@ +--TEST-- +libgd #100 (spurious horizontal line drawn by gdImageFilledPolygon) +--SKIPIF-- +<?php + if (!extension_loaded('gd')) die("skip gd extension not available\n"); + if (!GD_BUNDLED) die("skip requires bundled GD library\n"); +?> +--FILE-- +<?php +$im = imagecreatetruecolor(256, 256); + +$white = imagecolorallocatealpha($im, 255, 255, 255, 10); +$black = imagecolorallocatealpha($im, 0, 0, 0, 10); +$red = imagecolorallocatealpha($im, 255, 0, 0, 10); +$green = imagecolorallocatealpha($im, 0, 255, 0, 10); +$blue = imagecolorallocatealpha($im, 0, 0, 255, 10); +$yellow = imagecolorallocatealpha($im, 255, 255, 0, 10); +$cyan = imagecolorallocatealpha($im, 0, 255, 255, 10); +$magenta = imagecolorallocatealpha($im, 255, 0, 255, 10); +$purple = imagecolorallocatealpha($im, 100, 0, 100, 10); + +imagefilledrectangle($im, 0, 0, 255, 255, $white); + +// M (bridge) +$top = 240; +$bot = 255; +$d = 30; +$x = 100; +$points = array( + $x, $top, + $x+2*$d, $top, + $x+2*$d, $bot, + $x+$d, ($top+$bot)/2, + $x, $bot +); +imagefilledpolygon($im, $points, 5, $yellow); + +// left-facing M not on baseline +$top = 40; +$bot = 70; +$left = 120; +$right = 180; +$points = array( + $left, $top, + $right, $top, + $right, $bot, + $left, $bot, + ($left+$right)/2, ($top+$bot)/2 +); +imagefilledpolygon($im, $points, 5, $purple); + +// left-facing M on baseline +$top = 240; +$bot = 270; +$left = 20; +$right = 80; +$points = array( + $left, $top, + $right, $top, + $right, $bot, + $left, $bot, + ($left+$right)/2, ($top+$bot)/2 +); +imagefilledpolygon($im, $points, 5, $magenta); + +// left-facing M on ceiling +$top = -15; +$bot = 15; +$left = 20; +$right = 80; +$points = array( + $left, $top, + $right, $top, + $right, $bot, + $left, $bot, + ($left+$right)/2, ($top+$bot)/2 +); +imagefilledpolygon($im, $points, 5, $blue); + +$d = 30; +$x = 150; +$y = 150; +$diamond = array($x-$d, $y, $x, $y+$d, $x+$d, $y, $x, $y-$d); +imagefilledpolygon($im, $diamond, 4, $green); + +$x = 180; +$y = 225; +$diamond = array($x-$d, $y, $x, $y+$d, $x+$d, $y, $x, $y-$d); +imagefilledpolygon($im, $diamond, 4, $red); + +$x = 225; +$y = 255; +$diamond = array($x-$d, $y, $x, $y+$d, $x+$d, $y, $x, $y-$d); +imagefilledpolygon($im, $diamond, 4, $cyan); + +// M (bridge) not touching bottom boundary +$top = 100; +$bot = 150; +$x = 30; +$points = array( + $x, $top, + $x+2*$d, $top, + $x+2*$d, $bot, + $x+$d, ($top+$bot)/2, + $x, $bot +); +imagefilledpolygon($im, $points, 5, $black); + +ob_start(); +imagepng($im); +$png = ob_get_contents(); +ob_end_clean(); + +echo md5($png); + +imagedestroy($im); +?> +--EXPECTF-- +2e6cf558bb4dadf60c8b608d5f8cda4e Property changes on: php/php-src/branches/PHP_5_3_2/ext/tidy/tests ___________________________________________________________________ Modified: svn:mergeinfo - /php/php-src/branches/PHP_5_3/ext/tidy/tests:292562,292566,292571,292574,292635,292719,292765,293146,293152,293176,293180,293216,293235,293253,293380,293400,293442,293447,293466,293487,293502,293538,293548,293558,293588,293590,293597,293627,293644,293653,293655,293699,293726-293728 /php/php-src/trunk/ext/tidy/tests:284726,287798-287941 + /php/php-src/branches/PHP_5_3/ext/tidy/tests:292562,292566,292571,292574,292635,292719,292765,293146,293152,293176,293180,293216,293235,293253,293380,293400,293442,293447,293466,293487,293502,293538,293548,293558,293588,293590,293597,293627,293644,293653,293655,293699,293726-293728,293762 /php/php-src/trunk/ext/tidy/tests:284726,287798-287941 Property changes on: php/php-src/branches/PHP_5_3_2/tests/security/open_basedir_parse_ini_file.phpt ___________________________________________________________________ Modified: svn:mergeinfo - /php/php-src/branches/PHP_5_3/tests/security/open_basedir_parse_ini_file.phpt:292562,292566,292571,292574,293146,293152,293176,293180,293216,293235,293253,293380,293400,293442,293447,293466,293487,293502,293538,293548,293558,293588,293590,293597,293627,293644,293653,293655,293699,293726-293728 /php/php-src/trunk/tests/security/open_basedir_parse_ini_file.phpt:265951 + /php/php-src/branches/PHP_5_3/tests/security/open_basedir_parse_ini_file.phpt:292562,292566,292571,292574,293146,293152,293176,293180,293216,293235,293253,293380,293400,293442,293447,293466,293487,293502,293538,293548,293558,293588,293590,293597,293627,293644,293653,293655,293699,293726-293728,293762 /php/php-src/trunk/tests/security/open_basedir_parse_ini_file.phpt:265951
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php