From 77bc054a32c7ef2f6de9bcbe2c50d736fff15def Mon Sep 17 00:00:00 2001 From: Reedy Date: Wed, 10 Sep 2014 20:07:18 +0100 Subject: [PATCH] Don't cast SpecialPageFactory::$aliases to an object Change-Id: I4793c5916cfa227681f3e8d95d03a5ce25cbe356 --- includes/specialpage/SpecialPageFactory.php | 27 +++++++++------------ 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/includes/specialpage/SpecialPageFactory.php b/includes/specialpage/SpecialPageFactory.php index 055e5887e8..8080b41626 100644 --- a/includes/specialpage/SpecialPageFactory.php +++ b/includes/specialpage/SpecialPageFactory.php @@ -260,14 +260,13 @@ class SpecialPageFactory { } /** - * Initialise and return the list of special page aliases. Returns an object with - * properties which can be accessed $obj->pagename - each property name is an - * alias, with the value being the canonical name of the special page. All - * registered special pages are guaranteed to map to themselves. - * @return object + * Initialise and return the list of special page aliases. Returns an array where + * the key is an alias, and the value is the canonical name of the special page. + * All registered special pages are guaranteed to map to themselves. + * @return array */ - private static function getAliasListObject() { - if ( !is_object( self::$aliases ) ) { + private static function getAliasList() { + if ( is_null( self::$aliases ) ) { global $wgContLang; $aliases = $wgContLang->getSpecialPageAliases(); $pageList = self::getPageList(); @@ -310,9 +309,6 @@ class SpecialPageFactory { } } } - - // Cast to object: func()[$key] doesn't work, but func()->$key does - self::$aliases = (object)self::$aliases; } return self::$aliases; @@ -332,8 +328,9 @@ class SpecialPageFactory { $caseFoldedAlias = $wgContLang->caseFold( $bits[0] ); $caseFoldedAlias = str_replace( ' ', '_', $caseFoldedAlias ); - if ( isset( self::getAliasListObject()->$caseFoldedAlias ) ) { - $name = self::getAliasListObject()->$caseFoldedAlias; + $aliases = self::getAliasList(); + if ( isset( $aliases[$caseFoldedAlias] ) ) { + $name = $aliases[$caseFoldedAlias]; } else { return array( null, null ); } @@ -609,7 +606,7 @@ class SpecialPageFactory { public static function getLocalNameFor( $name, $subpage = false ) { global $wgContLang; $aliases = $wgContLang->getSpecialPageAliases(); - $aliasList = self::getAliasListObject(); + $aliasList = self::getAliasList(); // Find the first alias that maps back to $name if ( isset( $aliases[$name] ) ) { @@ -617,8 +614,8 @@ class SpecialPageFactory { foreach ( $aliases[$name] as $alias ) { $caseFoldedAlias = $wgContLang->caseFold( $alias ); $caseFoldedAlias = str_replace( ' ', '_', $caseFoldedAlias ); - if ( isset( $aliasList->$caseFoldedAlias ) && - $aliasList->$caseFoldedAlias === $name + if ( isset( $aliasList[$caseFoldedAlias] ) && + $aliasList[$caseFoldedAlias] === $name ) { $name = $alias; $found = true; -- 2.20.1