r64066 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r64065‎ | r64066 | r64067 >
Date:11:35, 23 March 2010
Author:mglaser
Status:deferred
Tags:
Comment:
several code reviews and comments.
Modified paths:
  • /trunk/extensions/PagedTiffHandler/PagedTiffHandler_body.php (modified) (history)

Diff [purge]

Index: trunk/extensions/PagedTiffHandler/PagedTiffHandler_body.php
@@ -47,7 +47,7 @@
4848 /**
4949 * Customize the thumbnail shell command.
5050 */
51 - static function renderCommand( &$cmd, $srcPath, $dstPath, $page, $width, $height ) {
 51+ static function renderCommand( &$cmd, $srcPath, $dstPath, $page, $width, $height ) { ### why? ^DK
5252 return true;
5353 }
5454
@@ -72,7 +72,7 @@
7373 function check( $saveName, $tempName, &$error ) {
7474 global $wgTiffMaxEmbedFiles, $wgTiffMaxMetaSize, $wgMaxUploadSize, $wgTiffRejectOnError, $wgTiffRejectOnWarning,
7575 $wgTiffUseTiffReader, $wgTiffReaderPath, $wgTiffReaderCheckEofForJS;
76 - if (!(substr($saveName, -5, 5)=='.tiff' || substr($saveName, -4, 4)=='.tif')) return true;
 76+ if (!(substr($saveName, -5, 5)=='.tiff' || substr($saveName, -4, 4)=='.tif')) return true; ### why? ^DK
7777 wfLoadExtensionMessages( 'PagedTiffHandler' );
7878 if($wgTiffUseTiffReader) {
7979 require_once($wgTiffReaderPath.'/TiffReader.php');
@@ -114,6 +114,7 @@
115115
116116 //NOTE: in future, it will become possible to pass parameters
117117 //$error = array( 'tiff_bad_file' , join('<br />', $meta['errors']) );
 118+ ### does that work now? ^DK
118119
119120 wfDebug( __METHOD__.": tiff_bad_file ($saveName) " . join('; ', $meta['errors']) . "\n" );
120121 return false;
@@ -138,7 +139,8 @@
139140 function getParamMap() {
140141 return array(
141142 'img_width' => 'width',
142 - // @todo check height
 143+ // @todo check height ### height!! ^DK
 144+ ## Die Methode gibt nur die ParamMap für die MagicWordIDs zurück. Es gibt keine MagicWordID für height. ^SU
143145 'img_page' => 'page',
144146 'img_lossy' => 'lossy',
145147 );
@@ -157,10 +159,10 @@
158160 }
159161 return false;
160162 }
161 - if ( $value <= 0 ) {
 163+ if ( $value <= 0 || $value > PHP_INT_MAX ) { ## check against integer overflow ^SU
162164 return false;
163165 } else {
164 - return true;
 166+ return true; ## spills at 65536?? ^DK
165167 }
166168 } else {
167169 return false;
@@ -176,7 +178,8 @@
177179 if ( !isset( $params['width'] ) ) {
178180 return false;
179181 }
180 - return "page{$page}-{$params['width']}px";
 182+ $lossy = isset( $params['lossy'] ) && $params['lossy'] ? 'lossy' : 'lossless';
 183+ return "{$lossy}-page{$page}-{$params['width']}px";
181184 }
182185
183186 /**
@@ -184,8 +187,8 @@
185188 */
186189 function parseParamString( $str ) {
187190 $m = false;
188 - if ( preg_match( '/^page(\d+)-(\d+)px$/', $str, $m ) ) {
189 - return array( 'width' => $m[2], 'page' => $m[1] );
 191+ if ( preg_match( '/^(\w+)-page(\d+)-(\d+)px$/', $str, $m ) ) {
 192+ return array( 'width' => $m[3], 'page' => $m[2], 'lossy' => $m[1] );
190193 } else {
191194 return false;
192195 }
@@ -195,7 +198,7 @@
196199 * lossy-paramter added
197200 * TODO: The purpose of this function is not yet fully clear.
198201 */
199 - function getScriptParams( $params ) {
 202+ function getScriptParams( $params ) { ## wtf?? ^DK
200203 return array(
201204 'width' => $params['width'],
202205 'page' => $params['page'],
@@ -229,7 +232,8 @@
230233 $srcHeight = $size['height'];
231234
232235 if ( isset( $params['height'] ) && $params['height'] != -1 ) {
233 - if ( $params['width'] * $srcHeight > $params['height'] * $srcWidth ) {
 236+ ## checks if with the given ratio the image box should be fitted ^SU
 237+ if ( $params['width'] * $srcHeight > $params['height'] * $srcWidth ) { ## huh?? what does this do? ^DK
234238 $params['width'] = wfFitBoxWidth( $srcWidth, $srcHeight, $params['height'] );
235239 }
236240 }
@@ -253,17 +257,18 @@
254258
255259 if ( !$metadata ) {
256260 if($metadata == -1) {
257 - return $this->doThumbError( @$params['width'], @$params['height'], 'tiff_error_cached' );
 261+ return $this->doThumbError( @$params['width'], @$params['height'], 'tiff_error_cached' ); ##test this ^DK
258262 }
259263 return $this->doThumbError( @$params['width'], @$params['height'], 'tiff_no_metadata' );
260264 }
261265 if ( !$this->normaliseParams( $image, $params ) )
262266 return new TransformParameterError( $params );
263267
264 - $width = $params['width'];
265 - $height = $params['height'];
 268+ ## get params an forces width, height and page to be integer
 269+ $width = $params['width'] - 0;
 270+ $height = $params['height'] - 0;
266271 $srcPath = $image->getPath();
267 - $page = $params['page'];
 272+ $page = $params['page'] - 0;
268273
269274 $extension = $this->getThumbExtension($image, $page, $params['lossy']);
270275 $dstPath .= $extension;
@@ -282,13 +287,16 @@
283288 if(isset($meta['pages'][$page]['pixels']) && $meta['pages'][$page]['pixels'] > $wgTiffMaxEmbedFileResolution)
284289 return $this->doThumbError( $width, $height, 'tiff_sourcefile_too_large' );
285290
 291+ if(($width * $height) > $wgTiffMaxEmbedFileResolution)
 292+ return $this->doThumbError( $width, $height, 'tiff_targetfile_too_large' );
 293+
286294 if ( !wfMkdirParents( dirname( $dstPath ) ) )
287295 return $this->doThumbError( $width, $height, 'thumbnail_dest_directory' );
288296
289297 if($wgTiffUseVips) {
290298 // tested in Linux
291299 $cmd = wfEscapeShellArg( $wgTiffVipsCommand );
292 - $cmd .= ' im_resize_linear "'.$srcPath.':'.($page-1).'" ';
 300+ $cmd .= ' im_resize_linear "'.wfEscapeShellArg( $srcPath ).':'.($page-1).'" ';
293301 $cmd .= wfEscapeShellArg( $dstPath );
294302 $cmd .= " {$width} {$height} 2>&1";
295303 }
@@ -392,7 +400,7 @@
393401 $wgLang->formatNum( $metadata['pages'][$page]['width'] ),
394402 $wgLang->formatNum( $metadata['pages'][$page]['height'] ),
395403 $wgLang->formatSize( $image->getSize() ),
396 - 'image/tiff',
 404+ $image->getMimeType(),
397405 $page );
398406 }
399407 return true;
@@ -405,7 +413,8 @@
406414 function isMetadataValid( $image, $metadata ) {
407415 if(!empty( $metadata ) && $metadata != serialize(array())) {
408416 $meta = unserialize($metadata);
409 - if(isset($meta['Pages']) && isset($meta['pages'])) {
 417+ ## Sollte das wirklich geändert werden, werden bereits bestehende Bilder Fehler produzieren. ^SU
 418+ if(isset($meta['Pages']) && isset($meta['pages'])) { # ['Pages'] UND ['pages']? wieso das denn? das ist verwirrend... ^DK
410419 return true;
411420 }
412421 }
@@ -419,7 +428,8 @@
420429 * @return array of strings
421430 * @access private
422431 */
423 - function visibleMetadataFields() {
 432+ ## könnte in den ImageHandler ... ist bis jetzt aber nur im BitmapHandler implementiert. ^SU
 433+ function visibleMetadataFields() { #sieht vollig generisch aus. gehört das nicht in die oberklasse? ^DK
424434 $fields = array();
425435 $lines = explode( "\n", wfMsg( 'metadata-fields' ) );
426436 foreach( $lines as $line ) {
@@ -490,7 +500,7 @@
491501 'collapsed',
492502 'identify',
493503 'error',
494 - join('<br />', $errors)
 504+ join('<br />', $errors)
495505 );
496506 }
497507 if(isset($meta['warnings'])) {
@@ -502,7 +512,7 @@
503513 'collapsed',
504514 'identify',
505515 'warning',
506 - join('<br />', $warnings)
 516+ join('<br />', $warnings)
507517 );
508518 }
509519 return $result;
@@ -512,9 +522,12 @@
513523 * Returns a PagedTiffImage or create a new one if don´t exist.
514524 */
515525 static function getTiffImage( $image, $path ) {
 526+ ## Wenn kein ImageObject übergeben wurde, wird ein TiffImage-Object anhand des Pfades erzeugt.
 527+ ## Ist ein ImageObject vorhanden, wird geprüft, ob darin schon eine TiffImage-Instanz gespeichert wurde.
 528+ ## Ist dies nicht der Fall, wird eine Instanz erstellt und im ImageObject gespeichert. ^SU
516529 if ( !$image )
517 - $tiffimg = new PagedTiffImage( $path );
518 - elseif ( !isset( $image->tiffImage ) )
 530+ $tiffimg = new PagedTiffImage( $path );
 531+ elseif ( !isset( $image->tiffImage ) ) #wo kommt $image her, wofür ist es gut? könnte es evtl schon ein TiffImage sein? ^DK
519532 $tiffimg = $image->tiffImage = new PagedTiffImage( $path );
520533 else
521534 $tiffimg = $image->tiffImage;
@@ -526,6 +539,8 @@
527540 * Returns an Array with the Image-Metadata.
528541 */
529542 function getMetaArray( $image ) {
 543+ # gehört das nicht ein einen lazy initializer in TiffImage::getMetaArray() oder so? ^DK
 544+ # Nein. Die Methode holt die Metadaten aus dem MediaWiki-ImageObject und nicht aus dem TiffImage. ^SU
530545 if ( isset( $image->tiffMetaArray ) )
531546 return $image->tiffMetaArray;
532547

Status & tagging log