From 7aaf81c7cc43aef316c6da3dab418f3b73a73fda Mon Sep 17 00:00:00 2001 From: desrosj Date: Tue, 19 Nov 2024 20:23:19 +0000 Subject: [PATCH] Media: Avoid running expensive logic twice using GD. Support for uploading AVIF was added in [57524]. A new block of conditional logic was added determine which function should be used to create the new image file that resulted in these expensive functions being run twice. This combines the two conditional logic to ensure the appropriate function is only run once regardless of format. Reviewed by adamsilverstein. Merges [59413] to the 6.7 branch. Props adamsilverstein, glynnquelch. Fixes #62331. Built from https://develop.svn.wordpress.org/branches/6.7@59423 git-svn-id: http://core.svn.wordpress.org/branches/6.7@58809 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/class-wp-image-editor-gd.php | 15 ++++----------- wp-includes/version.php | 2 +- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/wp-includes/class-wp-image-editor-gd.php b/wp-includes/class-wp-image-editor-gd.php index dfa90545f6..138c48fad3 100644 --- a/wp-includes/class-wp-image-editor-gd.php +++ b/wp-includes/class-wp-image-editor-gd.php @@ -103,20 +103,13 @@ class WP_Image_Editor_GD extends WP_Image_Editor { return new WP_Error( 'error_loading_image', __( 'File does not exist?' ), $this->file ); } - // WebP may not work with imagecreatefromstring(). + // Handle WebP and AVIF mime types explicitly, falling back to imagecreatefromstring. if ( - function_exists( 'imagecreatefromwebp' ) && - ( 'image/webp' === wp_get_image_mime( $this->file ) ) + function_exists( 'imagecreatefromwebp' ) && ( 'image/webp' === wp_get_image_mime( $this->file ) ) ) { $this->image = @imagecreatefromwebp( $this->file ); - } else { - $this->image = @imagecreatefromstring( $file_contents ); - } - - // AVIF may not work with imagecreatefromstring(). - if ( - function_exists( 'imagecreatefromavif' ) && - ( 'image/avif' === wp_get_image_mime( $this->file ) ) + } elseif ( + function_exists( 'imagecreatefromavif' ) && ( 'image/avif' === wp_get_image_mime( $this->file ) ) ) { $this->image = @imagecreatefromavif( $this->file ); } else { diff --git a/wp-includes/version.php b/wp-includes/version.php index c72776710f..7e518a5da5 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.7.1-alpha-59421'; +$wp_version = '6.7.1-alpha-59423'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.