From aa21cf32facdb3f7c315bea0a4072d9da450c947 Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Tue, 19 Apr 2016 22:21:09 -0700 Subject: [PATCH] Specially handle Title objects in Title::newFromLinkTarget() Every single caller of Title::newFromLinkTarget() already special cases when the LinkTarget object is already a Title, so move that logic into one function. Change-Id: Iba5432ae01c87850e5b34893092427c5b1629188 --- includes/Title.php | 4 ++++ includes/WatchedItem.php | 6 +----- includes/WatchedItemStore.php | 8 ++------ includes/title/MediaWikiPageLinkRenderer.php | 7 ++----- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/includes/Title.php b/includes/Title.php index 95588a222a..3fd4631af8 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -248,6 +248,10 @@ class Title implements LinkTarget { * @return Title */ public static function newFromLinkTarget( LinkTarget $linkTarget ) { + if ( $linkTarget instanceof Title ) { + // Special case if it's already a Title object + return $linkTarget; + } return self::makeTitle( $linkTarget->getNamespace(), $linkTarget->getText(), diff --git a/includes/WatchedItem.php b/includes/WatchedItem.php index 0495536a26..4dbe0f674f 100644 --- a/includes/WatchedItem.php +++ b/includes/WatchedItem.php @@ -140,11 +140,7 @@ class WatchedItem { */ public function getTitle() { if ( !$this->title ) { - if ( $this->linkTarget instanceof Title ) { - $this->title = $this->linkTarget; - } else { - $this->title = Title::newFromLinkTarget( $this->linkTarget ); - } + $this->title = Title::newFromLinkTarget( $this->linkTarget ); } return $this->title; } diff --git a/includes/WatchedItemStore.php b/includes/WatchedItemStore.php index 8ae7932be0..5e99f8ea47 100644 --- a/includes/WatchedItemStore.php +++ b/includes/WatchedItemStore.php @@ -905,12 +905,8 @@ class WatchedItemStore implements StatsdAwareInterface { * @param LinkTarget $newTarget */ public function duplicateAllAssociatedEntries( LinkTarget $oldTarget, LinkTarget $newTarget ) { - if ( !$oldTarget instanceof Title ) { - $oldTarget = Title::newFromLinkTarget( $oldTarget ); - } - if ( !$newTarget instanceof Title ) { - $newTarget = Title::newFromLinkTarget( $newTarget ); - } + $oldTarget = Title::newFromLinkTarget( $oldTarget ); + $newTarget = Title::newFromLinkTarget( $newTarget ); $this->duplicateEntry( $oldTarget->getSubjectPage(), $newTarget->getSubjectPage() ); $this->duplicateEntry( $oldTarget->getTalkPage(), $newTarget->getTalkPage() ); diff --git a/includes/title/MediaWikiPageLinkRenderer.php b/includes/title/MediaWikiPageLinkRenderer.php index 302c9e8c4e..b458578337 100644 --- a/includes/title/MediaWikiPageLinkRenderer.php +++ b/includes/title/MediaWikiPageLinkRenderer.php @@ -106,11 +106,8 @@ class MediaWikiPageLinkRenderer implements PageLinkRenderer { // TODO: move the logic implemented by Linker here, // using $this->formatter and $this->baseUrl, and // re-implement Linker to use a HtmlPageLinkRenderer. - if ( $linkTarget instanceof Title ) { - $title = $linkTarget; - } else { - $title = Title::newFromLinkTarget( $linkTarget ); - } + + $title = Title::newFromLinkTarget( $linkTarget ); $link = Linker::link( $title, htmlspecialchars( $text ) ); return $link; -- 2.20.1