This is a partial revert of a revert that reverted a fix believed to
have had its underlying issue fixed in:
https://gerrit.wikimedia.org/r/#/c/400577/
The compat layer (Revision), now passes a Title object into the
RevisionStore, and this title is used to construct the Record and
also any new Revision objects.
Bug: T184559
Bug: T183548
Change-Id: Id073265c173f60aa8c456550fdb4bb5196013be8
* @return Revision|null
*/
public function getPrevious() {
* @return Revision|null
*/
public function getPrevious() {
- $rec = self::getRevisionStore()->getPreviousRevision( $this->mRecord );
- return $rec === null ? null : new Revision( $rec );
+ $title = $this->getTitle();
+ $rec = self::getRevisionStore()->getPreviousRevision( $this->mRecord, $title );
+ return $rec === null ? null : new Revision( $rec, self::READ_NORMAL, $title );
* @return Revision|null
*/
public function getNext() {
* @return Revision|null
*/
public function getNext() {
- $rec = self::getRevisionStore()->getNextRevision( $this->mRecord );
- return $rec === null ? null : new Revision( $rec );
+ $title = $this->getTitle();
+ $rec = self::getRevisionStore()->getNextRevision( $this->mRecord, $title );
+ return $rec === null ? null : new Revision( $rec, self::READ_NORMAL, $title );
* MCR migration note: this replaces Revision::getPrevious
*
* @param RevisionRecord $rev
* MCR migration note: this replaces Revision::getPrevious
*
* @param RevisionRecord $rev
+ * @param Title $title if known (optional)
*
* @return RevisionRecord|null
*/
*
* @return RevisionRecord|null
*/
- public function getPreviousRevision( RevisionRecord $rev );
+ public function getPreviousRevision( RevisionRecord $rev, Title $title = null );
/**
* Get next revision for this title
/**
* Get next revision for this title
* MCR migration note: this replaces Revision::getNext
*
* @param RevisionRecord $rev
* MCR migration note: this replaces Revision::getNext
*
* @param RevisionRecord $rev
+ * @param Title $title if known (optional)
*
* @return RevisionRecord|null
*/
*
* @return RevisionRecord|null
*/
- public function getNextRevision( RevisionRecord $rev );
+ public function getNextRevision( RevisionRecord $rev, Title $title = null );
/**
* Load a revision based on a known page ID and current revision ID from the DB
/**
* Load a revision based on a known page ID and current revision ID from the DB
* MCR migration note: this replaces Revision::getPrevious
*
* @param RevisionRecord $rev
* MCR migration note: this replaces Revision::getPrevious
*
* @param RevisionRecord $rev
+ * @param Title $title if known (optional)
*
* @return RevisionRecord|null
*/
*
* @return RevisionRecord|null
*/
- public function getPreviousRevision( RevisionRecord $rev ) {
- $title = $this->getTitle( $rev->getPageId(), $rev->getId() );
+ public function getPreviousRevision( RevisionRecord $rev, Title $title = null ) {
+ if ( $title === null ) {
+ $title = $this->getTitle( $rev->getPageId(), $rev->getId() );
+ }
$prev = $title->getPreviousRevisionID( $rev->getId() );
if ( $prev ) {
return $this->getRevisionByTitle( $title, $prev );
$prev = $title->getPreviousRevisionID( $rev->getId() );
if ( $prev ) {
return $this->getRevisionByTitle( $title, $prev );
* MCR migration note: this replaces Revision::getNext
*
* @param RevisionRecord $rev
* MCR migration note: this replaces Revision::getNext
*
* @param RevisionRecord $rev
+ * @param Title $title if known (optional)
*
* @return RevisionRecord|null
*/
*
* @return RevisionRecord|null
*/
- public function getNextRevision( RevisionRecord $rev ) {
- $title = $this->getTitle( $rev->getPageId(), $rev->getId() );
+ public function getNextRevision( RevisionRecord $rev, Title $title = null ) {
+ if ( $title === null ) {
+ $title = $this->getTitle( $rev->getPageId(), $rev->getId() );
+ }
$next = $title->getNextRevisionID( $rev->getId() );
if ( $next ) {
return $this->getRevisionByTitle( $title, $next );
$next = $title->getNextRevisionID( $rev->getId() );
if ( $next ) {
return $this->getRevisionByTitle( $title, $next );