Document that ParserCache::get() may be passed a WikiPage or Article
authorKunal Mehta <legoktm@gmail.com>
Tue, 23 Jun 2015 21:57:52 +0000 (14:57 -0700)
committerOri.livneh <ori@wikimedia.org>
Wed, 24 Jun 2015 01:21:10 +0000 (01:21 +0000)
This is terrible, but at least it is no longer lying.

Change-Id: Id1cc1616b60dbde45a12ce9a23b76282efd1c6a9

includes/parser/ParserCache.php

index 2919c6c..117b6e7 100644 (file)
@@ -176,7 +176,7 @@ class ParserCache {
         * Retrieve the ParserOutput from ParserCache.
         * false if not found or outdated.
         *
-        * @param WikiPage $article
+        * @param WikiPage|Article $article
         * @param ParserOptions $popts
         * @param bool $useOutdated (default false)
         *
@@ -213,6 +213,11 @@ class ParserCache {
                // key. Force it here. See bug 31445.
                $value->setEditSectionTokens( $popts->getEditSection() );
 
+               $wikiPage = method_exists( $article, 'getPage' )
+                       ? $article->getPage()
+                       : $article;
+
+
                if ( !$useOutdated && $value->expired( $touched ) ) {
                        wfIncrStats( "pcache.miss.expired" );
                        $cacheTime = $value->getCacheTime();
@@ -225,7 +230,7 @@ class ParserCache {
                        $cachedRevId = $value->getCacheRevisionId();
                        wfDebug( "ParserOutput key is for an old revision, latest $revId, cached $cachedRevId\n" );
                        $value = false;
-               } elseif ( Hooks::run( 'RejectParserCacheValue', array( $value, $article, $popts ) ) === false ) {
+               } elseif ( Hooks::run( 'RejectParserCacheValue', array( $value, $wikiPage, $popts ) ) === false ) {
                        wfIncrStats( 'pcache.miss.rejected' );
                        wfDebug( "ParserOutput key valid, but rejected by RejectParserCacheValue hook handler.\n" );
                        $value = false;