stream position is going to be 0-based soon
authorClaus Gittinger <cg@exept.de>
Mon, 24 Feb 2003 18:16:10 +0100
changeset 1702 75a595a70c86
parent 1701 4a6810f39053
child 1703 5a08db3f0013
stream position is going to be 0-based soon
TIFFReader.st
--- a/TIFFReader.st	Mon Feb 24 10:33:46 2003 +0100
+++ b/TIFFReader.st	Mon Feb 24 18:16:10 2003 +0100
@@ -1106,7 +1106,7 @@
     bytesPerStrip := bytesPerRow * rowsPerStrip.
     [row <= height] whileTrue:[
         stripNr := stripNr + 1.
-        inStream position:((stripOffsets at:stripNr) + 1).
+        self positionToStrip:stripNr.
         inStream nextBytes:(stripByteCounts at:stripNr) into:compressedStrip.
         self class decompressCCITT3From:compressedStrip
                                    into:data
@@ -1208,7 +1208,7 @@
     prevSize := 0.
     [row <= height] whileTrue:[
         stripNr := stripNr + 1.
-        inStream position:((stripOffsets at:stripNr) + 1).
+        self positionToStrip:stripNr.
         nBytes := stripByteCounts at:stripNr.
         (nBytes > prevSize) ifTrue:[
             compressedStrip := ByteArray uninitializedNew:nBytes.
@@ -1307,7 +1307,7 @@
     [row <= height] whileTrue:[
         stripNr := stripNr + 1.
         nBytes := stripByteCounts at:stripNr.
-        inStream position:((stripOffsets at:stripNr) + 1).
+        self positionToStrip:stripNr.
 
         nBytes > buffer size ifTrue:[
             "/ realloc
@@ -1470,7 +1470,7 @@
     [row <= height] whileTrue:[
         stripNr := stripNr + 1.
         nBytes := stripByteCounts at:stripNr.
-        inStream position:((stripOffsets at:stripNr) + 1).
+        self positionToStrip:stripNr.
 
         offset + nBytes > overAllBytes ifTrue:[
             nBytes := overAllBytes - offset.
@@ -1489,6 +1489,10 @@
 
 !TIFFReader methodsFor:'private - reading'!
 
+positionToStrip:stripNr
+    inStream position:((stripOffsets at:stripNr) + (PositionableStream zeroPosition)).
+!
+
 readChars:n
     "read n characters and return them in a string"
 
@@ -1502,7 +1506,7 @@
     ] ifFalse:[
         offset := inStream nextLongMSB:(byteOrder ~~ #lsb).
         oldPos := inStream position.
-        inStream position:(offset + 1).
+        inStream position:(offset + (PositionableStream zeroPosition)).
         inStream nextBytes:(n - 1) into:string.
         inStream position:oldPos
     ].
@@ -1523,11 +1527,11 @@
     values := Array basicNew:n.
     offset := inStream nextLongMSB:msb.
     oldPos := inStream position.
-    inStream position:(offset + 1).
+    inStream position:(offset + (PositionableStream zeroPosition)).
     1 to:n do:[:index |
-	numerator := inStream nextLongMSB:msb.
-	denominator := inStream nextLongMSB:msb.
-	values at:index put:(Fraction numerator:numerator denominator:denominator)
+        numerator := inStream nextLongMSB:msb.
+        denominator := inStream nextLongMSB:msb.
+        values at:index put:(Fraction numerator:numerator denominator:denominator)
     ].
     inStream position:oldPos.
     ^ values
@@ -1544,15 +1548,15 @@
     msb := byteOrder ~~ #lsb.
     values := Array basicNew:n.
     (n == 1) ifTrue:[
-	values at:1 put:(inStream nextLongMSB:msb).
+        values at:1 put:(inStream nextLongMSB:msb).
     ] ifFalse:[
-	offset := inStream nextLongMSB:msb.
-	oldPos := inStream position.
-	inStream position:(offset + 1).
-	1 to:n do:[:index |
-	    values at:index put:(inStream nextLongMSB:msb)
-	].
-	inStream position:oldPos
+        offset := inStream nextLongMSB:msb.
+        oldPos := inStream position.
+        inStream position:(offset + (PositionableStream zeroPosition)).
+        1 to:n do:[:index |
+            values at:index put:(inStream nextLongMSB:msb)
+        ].
+        inStream position:oldPos
     ].
     ^ values
 !
@@ -1568,20 +1572,20 @@
     msb := (byteOrder ~~ #lsb).
     values := Array basicNew:n.
     (n <= 2) ifTrue:[
-	values at:1 put:(inStream nextUnsignedShortMSB:msb).
-	val2 := inStream nextUnsignedShortMSB:msb.
+        values at:1 put:(inStream nextUnsignedShortMSB:msb).
+        val2 := inStream nextUnsignedShortMSB:msb.
 
-	(n == 2) ifTrue:[
-	    values at:2 put:val2
-	]
+        (n == 2) ifTrue:[
+            values at:2 put:val2
+        ]
     ] ifFalse:[
-	offset := inStream nextLongMSB:msb.
-	oldPos := inStream position.
-	inStream position:(offset + 1).
-	1 to:n do:[:index |
-	    values at:index put:(inStream nextUnsignedShortMSB:msb)
-	].
-	inStream position:oldPos
+        offset := inStream nextLongMSB:msb.
+        oldPos := inStream position.
+        inStream position:(offset + (PositionableStream zeroPosition)).
+        1 to:n do:[:index |
+            values at:index put:(inStream nextUnsignedShortMSB:msb)
+        ].
+        inStream position:oldPos
     ].
     ^ values
 ! !
@@ -2020,7 +2024,7 @@
     orientation := nil.
 
     offset := aStream nextLongMSB:msb.
-    aStream position:offset + 1.
+    aStream position:offset + (PositionableStream zeroPosition).
 
     numberOfTags := self readShort.
     1 to:numberOfTags do:[:index |
@@ -2183,7 +2187,7 @@
 
     pos := outStream position.                  "backpatch tag offset"
     outStream position:pos1.
-    self writeLong:(pos - 1).                   "fill in tag offset"
+    self writeLong:(pos - (PositionableStream zeroPosition)).  "fill in tag offset"
     outStream position:pos.
 "
 ('patch tag offset at: ', (pos1 printStringRadix:16) , ' to ',
@@ -2215,6 +2219,7 @@
 !TIFFReader class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview2/TIFFReader.st,v 1.65 2002-06-09 14:47:23 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libview2/TIFFReader.st,v 1.66 2003-02-24 17:16:10 cg Exp $'
 ! !
+
 TIFFReader initialize!