Make WordPress Core

Ticket #46089: 46089.diff

File 46089.diff, 1.2 KB (added by noisysocks, 5 years ago)
  • src/wp-includes/class.wp-dependencies.php

    diff --git a/src/wp-includes/class.wp-dependencies.php b/src/wp-includes/class.wp-dependencies.php
    index 9ed26568ed..a05dc14b00 100644
    a b class WP_Dependencies { 
    8383         */
    8484        private $all_queued_deps;
    8585
     86        private $all_seen_deps;
     87
    8688        /**
    8789         * Processes the items and dependencies.
    8890         *
    class WP_Dependencies { 
    102104                 * If nothing is passed, print the queue. If a string is passed,
    103105                 * print that item. If an array is passed, print those items.
    104106                 */
    105                 $handles = false === $handles ? $this->queue : (array) $handles;
     107                $handles             = false === $handles ? $this->queue : (array) $handles;
     108                $this->all_seen_deps = array();
    106109                $this->all_deps( $handles );
    107110
    108111                foreach ( $this->to_do as $key => $handle ) {
    class WP_Dependencies { 
    167170                        $handle       = $handle_parts[0];
    168171                        $queued       = in_array( $handle, $this->to_do, true );
    169172
     173                        if ( in_array( $handle, $this->all_seen_deps, true ) ) {
     174                                continue;
     175                        }
     176                        $this->all_seen_deps[] = $handle;
     177
    170178                        if ( in_array( $handle, $this->done, true ) ) { // Already done.
    171179                                continue;
    172180                        }