WordPress.org

Make WordPress Core

Ticket #22543: 22543-7.diff

File 22543-7.diff, 2.0 KB (added by DH-Shredder, 3 years ago)

Make comments use ; Only check ImagePixel once, check queryFormats() again.

  • wp-includes/class-wp-image-editor-imagick.php

    diff --git wp-admin/includes/image-edit.php wp-admin/includes/image-edit.php
    diff --git wp-includes/class-wp-image-editor-imagick.php wp-includes/class-wp-image-editor-imagick.php
    index d29fefd..d7b450f 100644
    class WP_Image_Editor_Imagick extends WP_Image_Editor { 
    3939         */ 
    4040        public static function test( $args = array() ) { 
    4141 
     42                // First, test Imagick's extension and classes. 
     43                if ( ! extension_loaded( 'imagick' ) || ! class_exists( 'Imagick' ) || ! class_exists( 'ImagickPixel' ) ) 
     44                        return false; 
     45 
    4246                $required_methods = array( 
    4347                        'clear', 
    4448                        'destroy', 
    class WP_Image_Editor_Imagick extends WP_Image_Editor { 
    5963                        'flopimage', 
    6064                ); 
    6165 
    62                 // Check for requirements 
    63                 if ( ! extension_loaded( 'imagick' ) || 
    64                          ! class_exists( 'Imagick' ) || 
    65                          ! is_callable( 'Imagick', 'queryFormats' ) || 
    66                          ! class_exists( 'ImagickPixel' ) || 
     66                // Now, test for deep requirements within Imagick. 
     67                if ( ! is_callable( 'Imagick', 'queryFormats' ) || 
    6768                         ! defined( 'imagick::COMPRESSION_JPEG' ) || 
    6869                         array_diff( $required_methods, get_class_methods( 'Imagick' ) ) ) { 
    6970 
    7071                        return false; 
    7172                } 
    7273 
    73                 /** 
    74                  * setIteratorIndex is optional unless mime is an animated format. 
    75                  * Here, we just say no if a user is attempting to 
    76                  * edit a GIF and setIteratorIndex isn't available. 
    77                  */ 
    78                 if ( ( ! isset( $args['mime_type'] ) || $args['mime_type'] == 'image/gif' ) && 
    79                          ! method_exists( 'Imagick', 'setIteratorIndex' ) ) { 
    80  
    81                         return false; 
    82                 } 
    83  
    8474                return true; 
    8575        } 
    8676 
    class WP_Image_Editor_Imagick extends WP_Image_Editor { 
    9989                if ( ! $imagick_extension ) 
    10090                        return false; 
    10191 
     92                // setIteratorIndex is optional unless mime is an animated format. 
     93                // Here, we just say no if you are missing it and aren't loading a jpeg. 
     94                if ( ! method_exists( 'Imagick', 'setIteratorIndex' ) && $mime_type != 'image/jpeg' ) 
     95                                return false; 
     96 
    10297                try { 
    10398                        return ( (bool) Imagick::queryFormats( $imagick_extension ) ); 
    10499                }