From b16e6343a0b3e650a3b9cc4cfd9ab0a75def98a3 Mon Sep 17 00:00:00 2001 From: Umherirrender Date: Sat, 22 Sep 2018 15:40:05 +0200 Subject: [PATCH] Pass title to Revision constructor in ContribsPager The information for a title already in the select result. Give it to Revision class to avoid extra Title::newFromId in Revision::ensureTitle for each row Change-Id: Ib8dd78f918bd0f3fe131f2a8ed9e659f87edd4a1 --- includes/specials/pagers/ContribsPager.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/includes/specials/pagers/ContribsPager.php b/includes/specials/pagers/ContribsPager.php index 5cfc437906..510bf92770 100644 --- a/includes/specials/pagers/ContribsPager.php +++ b/includes/specials/pagers/ContribsPager.php @@ -415,9 +415,10 @@ class ContribsPager extends RangeChronologicalPager { * id then null is returned. * * @param object $row + * @param Title|null $title * @return Revision|null */ - public function tryToCreateValidRevision( $row ) { + public function tryToCreateValidRevision( $row, $title = null ) { /* * There may be more than just revision rows. To make sure that we'll only be processing * revisions here, let's _try_ to build a revision out of our row (without displaying @@ -427,7 +428,7 @@ class ContribsPager extends RangeChronologicalPager { */ Wikimedia\suppressWarnings(); try { - $rev = new Revision( $row ); + $rev = new Revision( $row, 0, $title ); $validRevision = (bool)$rev->getId(); } catch ( Exception $e ) { $validRevision = false; @@ -455,11 +456,16 @@ class ContribsPager extends RangeChronologicalPager { $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer(); - $rev = $this->tryToCreateValidRevision( $row ); + $page = null; + // Create a title for the revision if possible + // Rows from the hook may not include title information + if ( isset( $row->page_namespace ) && isset( $row->page_title ) ) { + $page = Title::newFromRow( $row ); + } + $rev = $this->tryToCreateValidRevision( $row, $page ); if ( $rev ) { $attribs['data-mw-revid'] = $rev->getId(); - $page = Title::newFromRow( $row ); $link = $linkRenderer->makeLink( $page, $page->getPrefixedText(), -- 2.20.1