From 63601400e476c6cf43d985f3e7b9864681695ed4 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Fri, 18 Jan 2013 16:46:04 +0100 Subject: Update to MediaWiki 1.20.2 this update includes: * adjusted Arch Linux skin * updated FluxBBAuthPlugin * patch for https://bugzilla.wikimedia.org/show_bug.cgi?id=44024 --- includes/BacklinkCache.php | 62 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 51 insertions(+), 11 deletions(-) (limited to 'includes/BacklinkCache.php') diff --git a/includes/BacklinkCache.php b/includes/BacklinkCache.php index d17104f8..05bf3186 100644 --- a/includes/BacklinkCache.php +++ b/includes/BacklinkCache.php @@ -1,7 +1,28 @@ title = $title; } + /** + * Create a new BacklinkCache or reuse any existing one. + * Currently, only one cache instance can exist; callers that + * need multiple backlink cache objects should keep them in scope. + * + * @param Title $title : Title object to get a backlink cache for + * @return BacklinkCache + */ + public static function get( Title $title ) { + if ( !self::$cache ) { // init cache + self::$cache = new ProcessCacheLRU( 1 ); + } + $dbKey = $title->getPrefixedDBkey(); + if ( !self::$cache->has( $dbKey, 'obj' ) ) { + self::$cache->set( $dbKey, 'obj', new self( $title ) ); + } + return self::$cache->get( $dbKey, 'obj' ); + } + /** * Serialization handler, diasallows to serialize the database to prevent * failures after this class is deserialized from cache with dead DB @@ -103,7 +141,7 @@ class BacklinkCache { /** * Get the slave connection to the database * When non existing, will initialize the connection. - * @return Database object + * @return DatabaseBase object */ protected function getDB() { if ( !isset( $this->db ) ) { @@ -179,6 +217,7 @@ class BacklinkCache { /** * Get the field name prefix for a given table * @param $table String + * @return null|string */ protected function getPrefix( $table ) { static $prefixes = array( @@ -206,6 +245,7 @@ class BacklinkCache { * Get the SQL condition array for selecting backlinks, with a join * on the page table. * @param $table String + * @return array|null */ protected function getConditions( $table ) { $prefix = $this->getPrefix( $table ); @@ -285,7 +325,7 @@ class BacklinkCache { */ public function partition( $table, $batchSize ) { - // 1) try partition cache ... + // 1) try partition cache ... if ( isset( $this->partitionCache[$table][$batchSize] ) ) { wfDebug( __METHOD__ . ": got from partition cache\n" ); @@ -340,7 +380,7 @@ class BacklinkCache { * Partition a DB result with backlinks in it into batches * @param $res ResultWrapper database result * @param $batchSize integer - * @return array @see + * @return array @see */ protected function partitionResult( $res, $batchSize ) { $batches = array(); -- cgit v1.2.2