Revision: Assert that $mRecord is never null in Revision
authordaniel <dkinzler@wikimedia.org>
Thu, 20 Dec 2018 18:26:42 +0000 (19:26 +0100)
committerKrinkle <krinklemail@gmail.com>
Fri, 21 Dec 2018 23:09:11 +0000 (23:09 +0000)
Bug: T187153
Change-Id: I828954855aa24114ec756e45d4dfe1468b2efa27

includes/Revision.php

index 6d1812a..b0a3ba3 100644 (file)
@@ -29,6 +29,7 @@ use MediaWiki\Revision\RevisionStore;
 use MediaWiki\Revision\RevisionStoreRecord;
 use MediaWiki\Revision\SlotRecord;
 use MediaWiki\Storage\SqlBlobStore;
+use Wikimedia\Assert\Assert;
 use Wikimedia\Rdbms\IDatabase;
 use MediaWiki\Linker\LinkTarget;
 use MediaWiki\MediaWikiServices;
@@ -589,6 +590,8 @@ class Revision implements IDBAccessObject {
                                '$row must be a row object, an associative array, or a RevisionRecord'
                        );
                }
+
+               Assert::postcondition( $this->mRecord !== null, 'Failed to construct a RevisionRecord' );
        }
 
        /**
@@ -1180,9 +1183,7 @@ class Revision implements IDBAccessObject {
                $rec = self::getRevisionStore()->insertRevisionOn( $this->mRecord, $dbw );
 
                $this->mRecord = $rec;
-
-               // Avoid PHP 7.1 warning of passing $this by reference
-               $revision = $this;
+               Assert::postcondition( $this->mRecord !== null, 'Failed to acquire a RevisionRecord' );
 
                return $rec->getId();
        }