Page MenuHomePhabricator

imagedestroy() is deprecated since PHP 8.5, as it has no effect since PHP 8.0
Open, In Progress, MediumPublic

Description

https://www.php.net/manual/en/migration85.deprecated.php#migration85.deprecated.gd:

The imagedestroy() function has been deprecated, as GdImage objects are freed automatically.

https://www.php.net/manual/en/function.imagedestroy.php:

This function has no effect. Prior to PHP 8.0.0, this function was used to close the resource.


https://codesearch.wmcloud.org/search/?q=imagedestroy (false positives removed):

Event Timeline

A_smart_kitten claimed this task.
A_smart_kitten triaged this task as Medium priority.

Planning to file patches

This causes test failures on PHP 8.5 for mediawiki/core & mediawiki/extensions/FileImporter - pasting the failures below for searchability. (I haven't checked for the other repos.)

mediawiki/core
$ composer phpunit:entrypoint -- --filter ExifRotationTest
[...]
1) ExifRotationTest::testRotationRendering with data set #0 ('landscape-plain.jpg', 'image/jpeg', array(160, 120), array(array(80, 60), array(107, 80), array(80, 60), array(60, 45)))
Function imagedestroy() is deprecated since 8.5, as it has no effect since PHP 8.0

/[...]/includes/Media/BitmapHandler.php:504
/[...]/includes/Media/TransformationalImageHandler.php:252
/[...]/includes/FileRepo/File/File.php:1406
/[...]/includes/FileRepo/File/File.php:1351
/[...]/tests/phpunit/includes/Media/ExifRotationTest.php:92
=== Logs generated by test case
[...]
===

2) ExifRotationTest::testRotationRendering with data set #1 ('portrait-rotated.jpg', 'image/jpeg', array(120, 160), array(array(45, 60), array(60, 80), array(80, 107), array(60, 80)))
Function imagedestroy() is deprecated since 8.5, as it has no effect since PHP 8.0

/[...]/includes/Media/BitmapHandler.php:491
/[...]/includes/Media/TransformationalImageHandler.php:252
/[...]/includes/FileRepo/File/File.php:1406
/[...]/includes/FileRepo/File/File.php:1351
/[...]/tests/phpunit/includes/Media/ExifRotationTest.php:92
=== Logs generated by test case
[...]
===

3) ExifRotationTest::testRotationRenderingNoAutoRotate with data set #0 ('landscape-plain.jpg', 'image/jpeg', array(160, 120), array(array(80, 60), array(107, 80), array(80, 60), array(60, 45)))
Function imagedestroy() is deprecated since 8.5, as it has no effect since PHP 8.0

/[...]/includes/Media/BitmapHandler.php:504
/[...]/includes/Media/TransformationalImageHandler.php:252
/[...]/includes/FileRepo/File/File.php:1406
/[...]/includes/FileRepo/File/File.php:1351
/[...]/tests/phpunit/includes/Media/ExifRotationTest.php:198
=== Logs generated by test case
[...]
===

4) ExifRotationTest::testRotationRenderingNoAutoRotate with data set #1 ('portrait-rotated.jpg', 'image/jpeg', array(160, 120), array(array(80, 60), array(107, 80), array(80, 60), array(60, 45)))
Function imagedestroy() is deprecated since 8.5, as it has no effect since PHP 8.0

/[...]/includes/Media/BitmapHandler.php:504
/[...]/includes/Media/TransformationalImageHandler.php:252
/[...]/includes/FileRepo/File/File.php:1406
/[...]/includes/FileRepo/File/File.php:1351
/[...]/tests/phpunit/includes/Media/ExifRotationTest.php:198
=== Logs generated by test case
[...]
===
mediawiki/extensions/FileImporter
$ composer phpunit:entrypoint -- extensions/FileImporter/ --filter FileImporterUploadBaseTest
[...]
1) FileImporter\Tests\MediaWiki\FileImporterUploadBaseTest::testPerformFileChecks with data set "validPNG" ('Foo.png', 'png')
Function imagedestroy() is deprecated since 8.5, as it has no effect since PHP 8.0

/[...]/extensions/FileImporter/tests/phpunit/MediaWiki/FileImporterUploadBaseTest.php:82
/[...]/extensions/FileImporter/tests/phpunit/MediaWiki/FileImporterUploadBaseTest.php:59
=== Logs generated by test case
[...]
===

2) FileImporter\Tests\MediaWiki\FileImporterUploadBaseTest::testPerformFileChecks with data set "validGIF" ('Foo.gif', 'gif')
Function imagedestroy() is deprecated since 8.5, as it has no effect since PHP 8.0

/[...]/extensions/FileImporter/tests/phpunit/MediaWiki/FileImporterUploadBaseTest.php:82
/[...]/extensions/FileImporter/tests/phpunit/MediaWiki/FileImporterUploadBaseTest.php:59
=== Logs generated by test case
[...]
===

3) FileImporter\Tests\MediaWiki\FileImporterUploadBaseTest::testPerformFileChecks with data set "validJPEG" ('Foo.jpeg', 'jpeg')
Function imagedestroy() is deprecated since 8.5, as it has no effect since PHP 8.0

/[...]/extensions/FileImporter/tests/phpunit/MediaWiki/FileImporterUploadBaseTest.php:82
/[...]/extensions/FileImporter/tests/phpunit/MediaWiki/FileImporterUploadBaseTest.php:59
=== Logs generated by test case
[...]
===

4) FileImporter\Tests\MediaWiki\FileImporterUploadBaseTest::testPerformFileChecks with data set "PNGwithBadExtension" ('Foo.jpeg', 'png', 'filetype-mime-mismatch')
Function imagedestroy() is deprecated since 8.5, as it has no effect since PHP 8.0

/[...]/extensions/FileImporter/tests/phpunit/MediaWiki/FileImporterUploadBaseTest.php:82
/[...]/extensions/FileImporter/tests/phpunit/MediaWiki/FileImporterUploadBaseTest.php:59
=== Logs generated by test case
[...]
===

5) FileImporter\Tests\MediaWiki\FileImporterUploadBaseTest::testPerformFileChecks with data set "GIFwithBadExtension" ('Foo.jpeg', 'gif', 'filetype-mime-mismatch')
Function imagedestroy() is deprecated since 8.5, as it has no effect since PHP 8.0

/[...]/extensions/FileImporter/tests/phpunit/MediaWiki/FileImporterUploadBaseTest.php:82
/[...]/extensions/FileImporter/tests/phpunit/MediaWiki/FileImporterUploadBaseTest.php:59
=== Logs generated by test case
[...]
===

6) FileImporter\Tests\MediaWiki\FileImporterUploadBaseTest::testPerformFileChecks with data set "JPEGwithBadExtension" ('Foo.gif', 'jpeg', 'filetype-mime-mismatch')
Function imagedestroy() is deprecated since 8.5, as it has no effect since PHP 8.0

/[...]/extensions/FileImporter/tests/phpunit/MediaWiki/FileImporterUploadBaseTest.php:82
/[...]/extensions/FileImporter/tests/phpunit/MediaWiki/FileImporterUploadBaseTest.php:59
=== Logs generated by test case
[...]
===

Change #1224960 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/FileImporter@master] Remove deprecated imagedestroy() call

https://gerrit.wikimedia.org/r/1224960

Change #1224960 merged by jenkins-bot:

[mediawiki/extensions/FileImporter@master] Remove deprecated imagedestroy() call

https://gerrit.wikimedia.org/r/1224960

A_smart_kitten changed the task status from Open to In Progress.Jan 14 2026, 3:55 PM
A_smart_kitten updated the task description. (Show Details)

Change #1229675 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/core@master] Media: Remove deprecated imagedestroy

https://gerrit.wikimedia.org/r/1229675

Change #1229675 merged by jenkins-bot:

[mediawiki/core@master] Media: Remove deprecated imagedestroy

https://gerrit.wikimedia.org/r/1229675

Change #1229691 had a related patch set uploaded (by Zabe; author: Umherirrender):

[mediawiki/core@REL1_43] Media: Remove deprecated imagedestroy

https://gerrit.wikimedia.org/r/1229691

Change #1229692 had a related patch set uploaded (by Zabe; author: Umherirrender):

[mediawiki/core@REL1_44] Media: Remove deprecated imagedestroy

https://gerrit.wikimedia.org/r/1229692

Change #1229693 had a related patch set uploaded (by Zabe; author: Umherirrender):

[mediawiki/core@REL1_45] Media: Remove deprecated imagedestroy

https://gerrit.wikimedia.org/r/1229693

Change #1229691 merged by jenkins-bot:

[mediawiki/core@REL1_43] Media: Remove deprecated imagedestroy

https://gerrit.wikimedia.org/r/1229691

Change #1229693 merged by jenkins-bot:

[mediawiki/core@REL1_45] Media: Remove deprecated imagedestroy

https://gerrit.wikimedia.org/r/1229693

Change #1229692 merged by jenkins-bot:

[mediawiki/core@REL1_44] Media: Remove deprecated imagedestroy

https://gerrit.wikimedia.org/r/1229692

Change #1230319 had a related patch set uploaded (by A smart kitten; author: A smart kitten):

[mediawiki/extensions/BlueSpiceFoundation@master] BsFileSystemHelper: Remove call to `imagedestroy()`

https://gerrit.wikimedia.org/r/1230319

Change #1230322 had a related patch set uploaded (by A smart kitten; author: A smart kitten):

[mediawiki/extensions/SportsTeams@master] specials: Remove calls to `imagedestroy()`

https://gerrit.wikimedia.org/r/1230322

Change #1230324 had a related patch set uploaded (by A smart kitten; author: A smart kitten):

[mediawiki/extensions/SocialProfile@master] Remove calls to `imagedestroy()`

https://gerrit.wikimedia.org/r/1230324

Change #1230337 had a related patch set uploaded (by A smart kitten; author: A smart kitten):

[mediawiki/extensions/EImage@master] EImageIMG: Wrap calls to `imagedestroy()` in a check for PHP < 8.0

https://gerrit.wikimedia.org/r/1230337

Change #1230324 merged by jenkins-bot:

[mediawiki/extensions/SocialProfile@master] Remove calls to `imagedestroy()`

https://gerrit.wikimedia.org/r/1230324

Change #1230337 merged by jenkins-bot:

[mediawiki/extensions/EImage@master] EImageIMG: Wrap calls to `imagedestroy()` in a check for PHP < 8.0

https://gerrit.wikimedia.org/r/1230337

Change #1230322 merged by Umherirrender:

[mediawiki/extensions/SportsTeams@master] specials: Remove calls to `imagedestroy()`

https://gerrit.wikimedia.org/r/1230322