From 4b41ffaa005cf86841bf77a5a040e92493e8dce2 Mon Sep 17 00:00:00 2001 From: Ricordisamoa Date: Wed, 17 Feb 2016 22:39:22 +0100 Subject: [PATCH] Replace extract() with explicit variable definitions in DjVuImage Bug: T28496 Change-Id: I09e012674e4d6c141912db6ef53dc51b2fcf0a66 --- includes/media/DjVuImage.php | 64 ++++++++++++------------------------ 1 file changed, 21 insertions(+), 43 deletions(-) diff --git a/includes/media/DjVuImage.php b/includes/media/DjVuImage.php index 16740d840a..ed361ebb0a 100644 --- a/includes/media/DjVuImage.php +++ b/includes/media/DjVuImage.php @@ -84,11 +84,9 @@ class DjVuImage { function dump() { $file = fopen( $this->mFilename, 'rb' ); $header = fread( $file, 12 ); - // @todo FIXME: Would be good to replace this extract() call with - // something that explicitly initializes local variables. - extract( unpack( 'a4magic/a4chunk/NchunkLength', $header ) ); - /** @var string $chunk - * @var string $chunkLength */ + $arr = unpack( 'a4magic/a4chunk/NchunkLength', $header ); + $chunk = $arr['chunk']; + $chunkLength = $arr['chunkLength']; echo "$chunk $chunkLength\n"; $this->dumpForm( $file, $chunkLength, 1 ); fclose( $file ); @@ -103,11 +101,9 @@ class DjVuImage { if ( $chunkHeader == '' ) { break; } - // @todo FIXME: Would be good to replace this extract() call with - // something that explicitly initializes local variables. - extract( unpack( 'a4chunk/NchunkLength', $chunkHeader ) ); - /** @var string $chunk - * @var string $chunkLength */ + $arr = unpack( 'a4chunk/NchunkLength', $chunkHeader ); + $chunk = $arr['chunk']; + $chunkLength = $arr['chunkLength']; echo str_repeat( ' ', $indent * 4 ) . "$chunk $chunkLength\n"; if ( $chunk == 'FORM' ) { @@ -138,24 +134,19 @@ class DjVuImage { if ( strlen( $header ) < 16 ) { wfDebug( __METHOD__ . ": too short file header\n" ); } else { - // @todo FIXME: Would be good to replace this extract() call with - // something that explicitly initializes local variables. - extract( unpack( 'a4magic/a4form/NformLength/a4subtype', $header ) ); - - /** @var string $magic - * @var string $subtype - * @var string $formLength - * @var string $formType */ - if ( $magic != 'AT&T' ) { + $arr = unpack( 'a4magic/a4form/NformLength/a4subtype', $header ); + + $subtype = $arr['subtype']; + if ( $arr['magic'] != 'AT&T' ) { wfDebug( __METHOD__ . ": not a DjVu file\n" ); } elseif ( $subtype == 'DJVU' ) { // Single-page document $info = $this->getPageInfo( $file ); } elseif ( $subtype == 'DJVM' ) { // Multi-page document - $info = $this->getMultiPageInfo( $file, $formLength ); + $info = $this->getMultiPageInfo( $file, $arr['formLength'] ); } else { - wfDebug( __METHOD__ . ": unrecognized DJVU file type '$formType'\n" ); + wfDebug( __METHOD__ . ": unrecognized DJVU file type '{$arr['subtype']}'\n" ); } } fclose( $file ); @@ -168,13 +159,9 @@ class DjVuImage { if ( strlen( $header ) < 8 ) { return [ false, 0 ]; } else { - // @todo FIXME: Would be good to replace this extract() call with - // something that explicitly initializes local variables. - extract( unpack( 'a4chunk/Nlength', $header ) ); + $arr = unpack( 'a4chunk/Nlength', $header ); - /** @var string $chunk - * @var string $length */ - return [ $chunk, $length ]; + return [ $arr['chunk'], $arr['length'] ]; } } @@ -236,31 +223,22 @@ class DjVuImage { return false; } - // @todo FIXME: Would be good to replace this extract() call with - // something that explicitly initializes local variables. - extract( unpack( + $arr = unpack( 'nwidth/' . 'nheight/' . 'Cminor/' . 'Cmajor/' . 'vresolution/' . - 'Cgamma', $data ) ); + 'Cgamma', $data ); # Newer files have rotation info in byte 10, but we don't use it yet. - /** @var string $width - * @var string $height - * @var string $major - * @var string $minor - * @var string $resolution - * @var string $length - * @var string $gamma */ return [ - 'width' => $width, - 'height' => $height, - 'version' => "$major.$minor", - 'resolution' => $resolution, - 'gamma' => $gamma / 10.0 ]; + 'width' => $arr['width'], + 'height' => $arr['height'], + 'version' => "{$arr['major']}.{$arr['minor']}", + 'resolution' => $arr['resolution'], + 'gamma' => $arr['gamma'] / 10.0 ]; } /** -- 2.20.1