Add index on logging.log_user_text
[lhc/web/wiklou.git] / includes / Message.php
index 208f96e..6ac87b3 100644 (file)
@@ -799,7 +799,7 @@ class Message {
         * @return Tuple(type, value)
         */
        protected function extractParam( $param ) {
-               if ( is_array( $param ) ){
+               if ( is_array( $param ) ) {
                        if ( isset( $param['raw'] ) ) {
                                return array( 'after', $param['raw'] );
                        } elseif ( isset( $param['num'] ) ) {
@@ -818,11 +818,17 @@ class Message {
                                return array( 'before', $this->language->formatBitrate( $param['bitrate'] ) );
                        } else {
                                trigger_error(
-                                       "Invalid message parameter: " . htmlspecialchars( serialize( $param ) ),
+                                       'Invalid parameter for message "' . $this->getKey() . '": ' .
+                                       htmlspecialchars( serialize( $param ) ),
                                        E_USER_WARNING
                                );
                                return array( 'before', '[INVALID]' );
                        }
+               } elseif ( $param instanceof Message ) {
+                       // Message objects should not be before parameters because
+                       // then they'll get double escaped. If the message needs to be
+                       // escaped, it'll happen right here when we call toString().
+                       return array( 'after', $param->toString() );
                } else {
                        return array( 'before', $param );
                }
@@ -836,7 +842,7 @@ class Message {
         */
        protected function parseText( $string ) {
                $out = MessageCache::singleton()->parse( $string, $this->title, /*linestart*/true, $this->interface, $this->language );
-               return is_object( $out ) ? $out->getText() : $out;
+               return $out instanceof ParserOutput ? $out->getText() : $out;
        }
 
        /**