From 119a792d74d01e4eb897659e311eadad8ff30937 Mon Sep 17 00:00:00 2001 From: Chad Horohoe Date: Mon, 26 Oct 2015 11:50:23 -0700 Subject: [PATCH] PrefixSearch: avoid looking for titles that don't exist WikiPage::getRedirectTarget() can very easily return null. Don't blow up when that happens. Properly document PrefixSearch::getRedirectTarget() while we're here. Bug: T116029 Change-Id: Ib509e8e3e6ec04a787de3857a4b5ee9b01560559 --- includes/PrefixSearch.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/includes/PrefixSearch.php b/includes/PrefixSearch.php index 430b4b8972..f36635be9d 100644 --- a/includes/PrefixSearch.php +++ b/includes/PrefixSearch.php @@ -258,12 +258,18 @@ abstract class PrefixSearch { return $array; } + /** + * Get a redirect's destination from a title + * @param Title $title A title to redirect. It may not redirect or even exist + * @return null|string If title exists and redirects, get the destination's prefixed name + */ private function getRedirectTarget( $title ) { $page = WikiPage::factory( $title ); if ( !$page->exists() ) { return null; } - return $page->getRedirectTarget()->getPrefixedText(); + $redir = $page->getRedirectTarget(); + return $redir ? $redir->getPrefixedText() : null; } /** -- 2.20.1