mirror of
https://github.com/php/php-src.git
synced 2024-11-24 02:15:04 +08:00
85e5635a8e
- Use gdFontCacheShutdown() to detect freetype Currently we look for gdImageStringFT() to determine whether or not gd has freetype support... but that function always exists. This leads PHP to believe that gd has freetype support when it does not, and can lead to build failures. The gdFontCacheShutdown() function, on the other hand, is only present when gd was built with freetype support. Let's use that instead. - Fix GD image format detection We currently check for, say, AVIF support by attempting to link a program that calls libgd's gdImageCreateFromAvif() function. But perversely, that function always exists in libgd; moreover when AVIF support is missing it emits a warning and returns normally. Thus our straightforward link test becomes not so straightforward. This commit adds a new macro PHP_GD_CHECK_FORMAT that compiles, links, and runs a test program instead. The test program overrides that "emit a warning" handler so that the program actually fails if the format we're looking for is not supported. This fixes detection of AVIF and the other formats we check for in an external libgd. - ext/gd/tests/bug77391.phpt: skip if gd lacks BMP support I don't actually know how to remove BMP support from libgd, but PHP has a ./configure test for it, so we should probably treat it as optional. Closes GH-12019
17 lines
368 B
PHP
17 lines
368 B
PHP
--TEST--
|
|
Bug #77391 (1bpp BMPs may fail to be loaded)
|
|
--EXTENSIONS--
|
|
gd
|
|
--SKIPIF--
|
|
<?php
|
|
if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.5', '<=')) die('skip upstream not yet fixed');
|
|
if (!(imagetypes() & IMG_BMP)) die('skip BMP support required');
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
var_dump(imagecreatefrombmp(__DIR__ . '/bug77391.bmp'));
|
|
?>
|
|
--EXPECT--
|
|
object(GdImage)#1 (0) {
|
|
}
|