Revision: Interpret a NULL rev_content_model as the default model

If a revision using the default content model is saved, the
rev_content_model field will be set to NULL in order to save space.
However, Revision::getContentModel() was using Title::getContentModel()
when it found a NULL, which will return the current content model rather
than the default. So change that to use the default content model, as
returned by ContentHandler::getDefaultModelFor() rather than the current
one.

Change-Id: I7011812b6b131170b3c593917ad263bcba83898d
This commit is contained in:
Kunal Mehta 2015-07-02 00:40:40 -07:00
parent 9668611c4a
commit a5bc9f49cd

View file

@ -1087,7 +1087,7 @@ class Revision implements IDBAccessObject {
/**
* Returns the content model for this revision.
*
* If no content model was stored in the database, $this->getTitle()->getContentModel() is
* If no content model was stored in the database, the default content model for the title is
* used to determine the content model to use. If no title is know, CONTENT_MODEL_WIKITEXT
* is used as a last resort.
*
@ -1097,7 +1097,11 @@ class Revision implements IDBAccessObject {
public function getContentModel() {
if ( !$this->mContentModel ) {
$title = $this->getTitle();
$this->mContentModel = ( $title ? $title->getContentModel() : CONTENT_MODEL_WIKITEXT );
if ( $title ) {
$this->mContentModel = ContentHandler::getDefaultModelFor( $title );
} else {
$this->mContentModel = CONTENT_MODEL_WIKITEXT;
}
assert( !empty( $this->mContentModel ) );
}