Don't call wfFindFile twice when it's not necessary.
authorBryan Tong Minh <btongminh@users.mediawiki.org>
Sat, 10 May 2008 14:19:25 +0000 (14:19 +0000)
committerBryan Tong Minh <btongminh@users.mediawiki.org>
Sat, 10 May 2008 14:19:25 +0000 (14:19 +0000)
includes/ImagePage.php
includes/Wiki.php

index 9b48d1b..7579399 100644 (file)
@@ -134,6 +134,10 @@ class ImagePage extends Article {
        public function isLocal() {
                return $this->img->isLocal();
        }
+       
+       public function getFile() {
+               return $this->img;
+       }
 
        /**
         * Create the TOC
index 3c178aa..9dc570f 100644 (file)
@@ -278,12 +278,13 @@ class MediaWiki {
                
                // Namespace might change when using redirects
                // Check for redirects ...
+               $file = $title->getNamespace() == NS_IMAGE ? $article->getFile() : null;
                if( ( $action == 'view' || $action == 'render' )        // ... for actions that show content
                                        && !$request->getVal( 'oldid' ) &&                      // ... and are not old revisions
                                        $request->getVal( 'redirect' ) != 'no' &&       // ... unless explicitly told not to
                                        // ... and the article is not an image page with associated file
-                                       !( $title->getNamespace() == NS_IMAGE && wfFindFile( $title->getText(), false,
-                                                       FileRepo::FIND_IGNORE_REDIRECT ) ) ) { // ... unless it is really an image redirect
+                                       !( is_object( $file ) && $file->exists() &&
+                                                       !$file->getRedirected() ) ) { // ... unless it is really an image redirect
 
                        $dbr = wfGetDB( DB_SLAVE );
                        $article->loadPageData( $article->pageDataFromTitle( $dbr, $title ) );
@@ -303,8 +304,8 @@ class MediaWiki {
                                        $rarticle = self::articleFromTitle( $target );
                                        $rarticle->loadPageData( $rarticle->pageDataFromTitle( $dbr, $target ) );
                                        if ( $rarticle->getTitle()->exists() || 
-                                                               ( $title->getNamespace() == NS_IMAGE && 
-                                                               !$article->isLocal() ) ) {
+                                                               ( is_object( $file ) && 
+                                                               !$file->isLocal() ) ) {
                                                $rarticle->setRedirectedFrom( $title );
                                                $article = $rarticle;
                                                $title = $target;