Commit 2c691c2fbd for wordpress.org

commit 2c691c2fbd8831b306bbdd14a0207909a4d7d7d1
Author: desrosj <desrosj@git.wordpress.org>
Date:   Mon Nov 18 18:05:18 2024 +0000

    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.

    Props adamsilverstein, glynnquelch.
    Fixes #62331.
    Built from https://develop.svn.wordpress.org/trunk@59413


    git-svn-id: http://core.svn.wordpress.org/trunk@58799 1a063a9b-81f0-0310-95a4-ce76da25c4cd

diff --git a/wp-includes/class-wp-image-editor-gd.php b/wp-includes/class-wp-image-editor-gd.php
index 54fd7957cb..e4f0655376 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 2534a27871..86127b9378 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
  *
  * @global string $wp_version
  */
-$wp_version = '6.8-alpha-59412';
+$wp_version = '6.8-alpha-59413';

 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.