Replace MimeMagic::singleton() calls
[lhc/web/wiklou.git] / includes / filerepo / FileRepo.php
index 8edf81f..5d22b8d 100644 (file)
@@ -776,7 +776,7 @@ class FileRepo {
        public function getDescriptionRenderUrl( $name, $lang = null ) {
                $query = 'action=render';
                if ( !is_null( $lang ) ) {
-                       $query .= '&uselang=' . $lang;
+                       $query .= '&uselang=' . urlencode( $lang );
                }
                if ( isset( $this->scriptDirUrl ) ) {
                        return $this->makeUrl(
@@ -1543,7 +1543,7 @@ class FileRepo {
         */
        public function getFileProps( $virtualUrl ) {
                $fsFile = $this->getLocalReference( $virtualUrl );
-               $mwProps = new MWFileProps( MimeMagic::singleton() );
+               $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                if ( $fsFile ) {
                        $props = $mwProps->getPropsFromPath( $fsFile->getPath(), true );
                } else {
@@ -1602,9 +1602,15 @@ class FileRepo {
                $path = $this->resolveToStoragePath( $virtualUrl );
                $params = [ 'src' => $path, 'headers' => $headers, 'options' => $optHeaders ];
 
+               // T172851: HHVM does not flush the output properly, causing OOM
+               ob_start( null, 1048576 );
+               ob_implicit_flush( true );
+
                $status = $this->newGood();
                $status->merge( $this->backend->streamFile( $params ) );
 
+               ob_end_flush();
+
                return $status;
        }