diff -r 3d4e9c994f10 -r a86126ab1dd4 wp/wp-includes/class-wp-widget-factory.php --- a/wp/wp-includes/class-wp-widget-factory.php Tue Oct 22 16:11:46 2019 +0200 +++ b/wp/wp-includes/class-wp-widget-factory.php Tue Dec 15 13:49:49 2020 +0100 @@ -36,55 +36,16 @@ * PHP4 constructor. * * @since 2.8.0 + * @deprecated 4.3.0 Use __construct() instead. + * + * @see WP_Widget_Factory::__construct() */ public function WP_Widget_Factory() { - _deprecated_constructor( 'WP_Widget_Factory', '4.2.0' ); + _deprecated_constructor( 'WP_Widget_Factory', '4.3.0' ); self::__construct(); } /** - * Memory for the number of times unique class instances have been hashed. - * - * This can be eliminated in favor of straight spl_object_hash() when 5.3 - * is the minimum requirement for PHP. - * - * @since 4.6.0 - * @var array - * - * @see WP_Widget_Factory::hash_object() - */ - private $hashed_class_counts = array(); - - /** - * Hashes an object, doing fallback of `spl_object_hash()` if not available. - * - * This can be eliminated in favor of straight spl_object_hash() when 5.3 - * is the minimum requirement for PHP. - * - * @since 4.6.0 - * - * @param WP_Widget $widget Widget. - * @return string Object hash. - */ - private function hash_object( $widget ) { - if ( function_exists( 'spl_object_hash' ) ) { - return spl_object_hash( $widget ); - } else { - $class_name = get_class( $widget ); - $hash = $class_name; - if ( ! isset( $widget->_wp_widget_factory_hash_id ) ) { - if ( ! isset( $this->hashed_class_counts[ $class_name ] ) ) { - $this->hashed_class_counts[ $class_name ] = 0; - } - $this->hashed_class_counts[ $class_name ] += 1; - $widget->_wp_widget_factory_hash_id = $this->hashed_class_counts[ $class_name ]; - } - $hash .= ':' . $widget->_wp_widget_factory_hash_id; - return $hash; - } - } - - /** * Registers a widget subclass. * * @since 2.8.0 @@ -95,7 +56,7 @@ */ public function register( $widget ) { if ( $widget instanceof WP_Widget ) { - $this->widgets[ $this->hash_object( $widget ) ] = $widget; + $this->widgets[ spl_object_hash( $widget ) ] = $widget; } else { $this->widgets[ $widget ] = new $widget(); } @@ -112,7 +73,7 @@ */ public function unregister( $widget ) { if ( $widget instanceof WP_Widget ) { - unset( $this->widgets[ $this->hash_object( $widget ) ] ); + unset( $this->widgets[ spl_object_hash( $widget ) ] ); } else { unset( $this->widgets[ $widget ] ); } @@ -132,7 +93,7 @@ $registered = array_map( '_get_widget_id_base', $registered ); foreach ( $keys as $key ) { - // don't register new widget if old widget with the same id is already registered + // Don't register new widget if old widget with the same id is already registered. if ( in_array( $this->widgets[ $key ]->id_base, $registered, true ) ) { unset( $this->widgets[ $key ] ); continue;