http://www.mediawiki.org/wiki/Special:Code/MediaWiki/70062
Revision: 70062
Author: tstarling
Date: 2010-07-28 04:12:36 +0000 (Wed, 28 Jul 2010)
Log Message:
-----------
Reintroduced the extractRequestParams() memoization as in r69782, but
respecting $parseLimit. Fixes bug 24564 (fatal error due to duplicate calls to
addValue()).
Modified Paths:
--------------
trunk/phase3/includes/api/ApiBase.php
Modified: trunk/phase3/includes/api/ApiBase.php
===================================================================
--- trunk/phase3/includes/api/ApiBase.php 2010-07-28 02:01:03 UTC (rev
70061)
+++ trunk/phase3/includes/api/ApiBase.php 2010-07-28 04:12:36 UTC (rev
70062)
@@ -57,6 +57,7 @@
const LIMIT_SML2 = 500; // Slow query, bot/sysop limit
private $mMainModule, $mModuleName, $mModulePrefix;
+ private $mParamCache = array();
/**
* Constructor
@@ -479,16 +480,20 @@
* @return array
*/
public function extractRequestParams( $parseLimit = true ) {
- $params = $this->getFinalParams();
- $results = array();
+ // Cache parameters, for performance and to avoid bug 24564.
+ if ( !isset( $this->mParamCache[$parseLimit] ) ) {
+ $params = $this->getFinalParams();
+ $results = array();
- if ( $params ) { // getFinalParams() can return false
- foreach ( $params as $paramName => $paramSettings ) {
- $results[$paramName] =
$this->getParameterFromSettings( $paramName, $paramSettings, $parseLimit );
+ if ( $params ) { // getFinalParams() can return false
+ foreach ( $params as $paramName =>
$paramSettings ) {
+ $results[$paramName] =
$this->getParameterFromSettings(
+ $paramName, $paramSettings,
$parseLimit );
+ }
}
+ $this->mParamCache[$parseLimit] = $results;
}
-
- return $results;
+ return $this->mParamCache[$parseLimit];
}
/**
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs