|
[MediaWiki-CVS] SVN: [54117] trunk/extensions/Translate: msg#01495mediawiki-cvs
http://www.mediawiki.org/wiki/Special:Code/MediaWiki/54117 Revision: 54117 Author: nikerabbit Date: 2009-07-31 18:58:10 +0000 (Fri, 31 Jul 2009) Log Message: ----------- * Bugfix in mangler construction * messageKeyToGroup was deadslow - no idea why, but now it is fast again Modified Paths: -------------- trunk/extensions/Translate/Stats.php trunk/extensions/Translate/TranslateUtils.php trunk/extensions/Translate/utils/StringMatcher.php Modified: trunk/extensions/Translate/Stats.php =================================================================== --- trunk/extensions/Translate/Stats.php 2009-07-31 18:53:46 UTC (rev 54116) +++ trunk/extensions/Translate/Stats.php 2009-07-31 18:58:10 UTC (rev 54117) @@ -448,7 +448,7 @@ if ( $this->filters['group'] ) { $group = TranslateUtils::messageKeyToGroup( $row->rc_namespace, $key ); - if ( $group === null ) return - 1; + if ( $group === null ) return -1; $indexKey .= $group; } Modified: trunk/extensions/Translate/TranslateUtils.php =================================================================== --- trunk/extensions/Translate/TranslateUtils.php 2009-07-31 18:53:46 UTC (rev 54116) +++ trunk/extensions/Translate/TranslateUtils.php 2009-07-31 18:58:10 UTC (rev 54117) @@ -167,18 +167,28 @@ return $selector->getHTML(); } + static $mi = null; + public static function messageKeyToGroup( $namespace, $key ) { - $normkey = self::normaliseKey( $namespace, $key ); - $index = self::messageIndex(); - $group = @$index[$normkey]; + if ( self::$mi === null ) self::messageIndex(); + + # Performance hotspot + #$normkey = self::normaliseKey( $namespace, $key ); + $normkey = str_replace( " ", "_", strtolower( "$namespace:$key" ) ); + + $group = @self::$mi[$normkey]; if ( is_array($group) ) $group = $group[0]; return $group; } public static function messageKeyToGroups( $namespace, $key ) { - $normkey = self::normaliseKey( $namespace, $key ); - $index = self::messageIndex(); - return (array) @$index[$normkey]; + if ( self::$mi === null ) self::messageIndex(); + + # Performance hotspot + #$normkey = self::normaliseKey( $namespace, $key ); + $normkey = str_replace( " ", "_", strtolower( "$namespace:$key" ) ); + + return (array) @self::$mi[$normkey]; } public static function normaliseKey( $namespace, $key ) { @@ -186,9 +196,6 @@ } public static function messageIndex() { - static $keyToGroup = null; - if ( $keyToGroup !== null ) return $keyToGroup; - global $wgCacheDirectory; $filename = "$wgCacheDirectory/translate_messageindex.cdb"; if ( !file_exists($filename) ) MessageIndexRebuilder::execute(); @@ -201,6 +208,7 @@ wfDebug( __METHOD__ . ": Message index missing." ); } + self::$mi = $keyToGroup; return $keyToGroup; } Modified: trunk/extensions/Translate/utils/StringMatcher.php =================================================================== --- trunk/extensions/Translate/utils/StringMatcher.php 2009-07-31 18:53:46 UTC (rev 54116) +++ trunk/extensions/Translate/utils/StringMatcher.php 2009-07-31 18:58:10 UTC (rev 54117) @@ -17,10 +17,10 @@ protected $aRegex = array(); public static function EmptyMatcher() { - return new StringMatcher( '', array() ); + return new StringMatcher; } - public function __construct( $prefix, $patterns = array() ) { + public function __construct( $prefix = '', $patterns = array() ) { $this->sPrefix = $prefix; $this->init( $patterns ); } _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@xxxxxxxxxxxxxxxxxxx https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs
|
|
||||||||||||||||||||||||||
|
|
|
| News | Mail Home | sitemap | FAQ | advertise |