From 351dc9e11f493aacec2c07e8aa10f608060fc79a Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Mon, 13 Apr 2015 11:40:30 -0400 Subject: [PATCH] Message::inLanguage() shouldn't unstub StubUserLang When a string is passed to Message::inLanguage(), it first checks whether the message's current language's code is equal to the string, to avoid a call to Language::factory(). But if the message's current language is an instance of StubUserLang, it's probably less expensive to just call Language::factory() than it is to unstub. This also avoids a possible recursion warning from T56193, particularly if inLanguage() is being used intentionally in an attempt to avoid that warning. Change-Id: Ia09adec05cfbb09c09e07c6be1e2d613435664d9 --- includes/Message.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/Message.php b/includes/Message.php index 134af0ed45..4935e33946 100644 --- a/includes/Message.php +++ b/includes/Message.php @@ -597,7 +597,7 @@ class Message implements MessageSpecifier { if ( $lang instanceof Language || $lang instanceof StubUserLang ) { $this->language = $lang; } elseif ( is_string( $lang ) ) { - if ( $this->language->getCode() != $lang ) { + if ( !$this->language instanceof Language || $this->language->getCode() != $lang ) { $this->language = Language::factory( $lang ); } } else { -- 2.20.1