Cenarium has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/278608

Change subject: Tidy parser cache
......................................................................

Tidy parser cache

This avoids an unecessary function-wide indentation and
removes the deprecated $casToken in BagOstuff::get calls.

Change-Id: Iadbc6d8e124ab475c4ea56b0273e08b147423255
---
M includes/parser/ParserCache.php
1 file changed, 47 insertions(+), 48 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/08/278608/1

diff --git a/includes/parser/ParserCache.php b/includes/parser/ParserCache.php
index bd5afaf..fc987fc 100644
--- a/includes/parser/ParserCache.php
+++ b/includes/parser/ParserCache.php
@@ -28,6 +28,7 @@
 class ParserCache {
        /** @var BagOStuff */
        private $mMemc;
+
        /**
         * Get an instance of this object
         *
@@ -139,9 +140,8 @@
                }
 
                // Determine the options which affect this article
-               $casToken = null;
                $optionsKey = $this->mMemc->get(
-                       $this->getOptionsKey( $article ), $casToken, 
BagOStuff::READ_VERIFIED );
+                       $this->getOptionsKey( $article ), 
BagOStuff::READ_VERIFIED );
                if ( $optionsKey instanceof CacheTime ) {
                        if ( !$useOutdated && $optionsKey->expired( 
$article->getTouched() ) ) {
                                wfIncrStats( "pcache.miss.expired" );
@@ -180,10 +180,11 @@
         * @param WikiPage|Article $article
         * @param ParserOptions $popts
         * @param bool $useOutdated (default false)
+        * @param string &$parserOutputKey Allows to get the key at the same 
time
         *
         * @return ParserOutput|bool False on failure
         */
-       public function get( $article, $popts, $useOutdated = false ) {
+       public function get( $article, $popts, $useOutdated = false, 
&$parserOutputKey ) {
                global $wgCacheEpoch;
 
                $canCache = $article->checkTouched();
@@ -192,16 +193,13 @@
                        return false;
                }
 
-               $touched = $article->getTouched();
-
                $parserOutputKey = $this->getKey( $article, $popts, 
$useOutdated );
                if ( $parserOutputKey === false ) {
                        wfIncrStats( 'pcache.miss.absent' );
                        return false;
                }
 
-               $casToken = null;
-               $value = $this->mMemc->get( $parserOutputKey, $casToken, 
BagOStuff::READ_VERIFIED );
+               $value = $this->mMemc->get( $parserOutputKey, 
BagOStuff::READ_VERIFIED );
                if ( !$value ) {
                        wfDebug( "ParserOutput cache miss.\n" );
                        wfIncrStats( "pcache.miss.absent" );
@@ -219,6 +217,7 @@
                        ? $article->getPage()
                        : $article;
 
+               $touched = $article->getTouched();
                if ( !$useOutdated && $value->expired( $touched ) ) {
                        wfIncrStats( "pcache.miss.expired" );
                        $cacheTime = $value->getCacheTime();
@@ -257,48 +256,48 @@
         */
        public function save( $parserOutput, $page, $popts, $cacheTime = null, 
$revId = null ) {
                $expire = $parserOutput->getCacheExpiry();
-               if ( $expire > 0 ) {
-                       $cacheTime = $cacheTime ?: wfTimestampNow();
-                       if ( !$revId ) {
-                               $revision = $page->getRevision();
-                               $revId = $revision ? $revision->getId() : null;
-                       }
-
-                       $optionsKey = new CacheTime;
-                       $optionsKey->mUsedOptions = 
$parserOutput->getUsedOptions();
-                       $optionsKey->updateCacheExpiry( $expire );
-
-                       $optionsKey->setCacheTime( $cacheTime );
-                       $parserOutput->setCacheTime( $cacheTime );
-                       $optionsKey->setCacheRevisionId( $revId );
-                       $parserOutput->setCacheRevisionId( $revId );
-
-                       $parserOutputKey = $this->getParserOutputKey( $page,
-                               $popts->optionsHash( $optionsKey->mUsedOptions, 
$page->getTitle() ) );
-
-                       // Save the timestamp so that we don't have to load the 
revision row on view
-                       $parserOutput->setTimestamp( $page->getTimestamp() );
-
-                       $msg = "Saved in parser cache with key 
$parserOutputKey" .
-                               " and timestamp $cacheTime" .
-                               " and revision id $revId" .
-                               "\n";
-
-                       $parserOutput->mText .= "\n<!-- $msg -->\n";
-                       wfDebug( $msg );
-
-                       // Save the parser output
-                       $this->mMemc->set( $parserOutputKey, $parserOutput, 
$expire );
-
-                       // ...and its pointer
-                       $this->mMemc->set( $this->getOptionsKey( $page ), 
$optionsKey, $expire );
-
-                       Hooks::run(
-                               'ParserCacheSaveComplete',
-                               [ $this, $parserOutput, $page->getTitle(), 
$popts, $revId ]
-                       );
-               } else {
+               if ( $expire <= 0 ) {
                        wfDebug( "Parser output was marked as uncacheable and 
has not been saved.\n" );
+                       return;
                }
+               $cacheTime = $cacheTime ?: wfTimestampNow();
+               if ( !$revId ) {
+                       $revision = $page->getRevision();
+                       $revId = $revision ? $revision->getId() : null;
+               }
+
+               $optionsKey = new CacheTime;
+               $optionsKey->mUsedOptions = $parserOutput->getUsedOptions();
+               $optionsKey->updateCacheExpiry( $expire );
+
+               $optionsKey->setCacheTime( $cacheTime );
+               $parserOutput->setCacheTime( $cacheTime );
+               $optionsKey->setCacheRevisionId( $revId );
+               $parserOutput->setCacheRevisionId( $revId );
+
+               $parserOutputKey = $this->getParserOutputKey( $page,
+                       $popts->optionsHash( $optionsKey->mUsedOptions, 
$page->getTitle() ) );
+
+               // Save the timestamp so that we don't have to load the 
revision row on view
+               $parserOutput->setTimestamp( $page->getTimestamp() );
+
+               $msg = "Saved in parser cache with key $parserOutputKey" .
+                       " and timestamp $cacheTime" .
+                       " and revision id $revId" .
+                       "\n";
+
+               $parserOutput->mText .= "\n<!-- $msg -->\n";
+               wfDebug( $msg );
+
+               // Save the parser output
+               $this->mMemc->set( $parserOutputKey, $parserOutput, $expire );
+
+               // ...and its pointer
+               $this->mMemc->set( $this->getOptionsKey( $page ), $optionsKey, 
$expire );
+
+               Hooks::run(
+                       'ParserCacheSaveComplete',
+                       [ $this, $parserOutput, $page->getTitle(), $popts, 
$revId ]
+               );
        }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/278608
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iadbc6d8e124ab475c4ea56b0273e08b147423255
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Cenarium <cenarium.sy...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to