Don't create new Revision and Title object if we can use the ones that we already...
authorAlexandre Emsenhuber <ialex@users.mediawiki.org>
Wed, 14 Mar 2012 09:52:34 +0000 (09:52 +0000)
committerAlexandre Emsenhuber <ialex@users.mediawiki.org>
Wed, 14 Mar 2012 09:52:34 +0000 (09:52 +0000)
includes/diff/DifferenceEngine.php

index a4d0c65..39e555e 100644 (file)
@@ -1003,17 +1003,23 @@ class DifferenceEngine extends ContextSource {
                $this->loadRevisionIds();
 
                // Load the new revision object
-               $this->mNewRev = $this->mNewid
-                       ? Revision::newFromId( $this->mNewid )
-                       : Revision::newFromTitle( $this->getTitle() );
+               if ( $this->mNewid && ( !$this->canUseWikiPage()
+                       || $this->mNewid !== $this->getWikiPage()->getLatest() ) )
+               {
+                       $this->mNewRev = Revision::newFromId( $this->mNewid );
+               } else {
+                       $this->mNewRev = $this->getWikiPage()->getRevision();
+                       $this->mNewPage = $this->getTitle();
+               }
 
                if ( !$this->mNewRev instanceof Revision ) {
                        return false;
                }
-
+               if ( !$this->mNewPage instanceof Title ) {
+                       $this->mNewPage = $this->mNewRev->getTitle();
+               }
                // Update the new revision ID in case it was 0 (makes life easier doing UI stuff)
                $this->mNewid = $this->mNewRev->getId();
-               $this->mNewPage = $this->mNewRev->getTitle();
 
                // Load the old revision object
                $this->mOldRev = false;