# HG changeset patch # User Claus Gittinger # Date 827506296 -3600 # Node ID f64e35e18e6599dae3c22ee311df61d9bfb3f457 # Parent a3c136969f7cd9b31599942f9849563e41a5541f typed variable in nextPutNumber diff -r a3c136969f7c -r f64e35e18e65 Stream.st --- a/Stream.st Fri Mar 22 15:50:25 1996 +0100 +++ b/Stream.st Fri Mar 22 15:51:36 1996 +0100 @@ -239,11 +239,13 @@ ]. "change from unsigned 0..FFFFFFFF to signed -80000000..7FFFFFFF" -"sorry- for now, stc cannot compile LargeInteger constants - uval >= 16r80000000 ifTrue:[ - ^ uval - 16r100000000 - ]. -the following kludges around this" +"/ sorry- for now (2.7), stc cannot compile LargeInteger constants +"/ uval >= 16r80000000 ifTrue:[ +"/ ^ uval - 16r100000000 +"/ ]. +"/ the following kludges around this +"/ well, new (2.8) can ... + (uval bitShift:-16) >= 16r8000 ifTrue:[ ^ uval - (16r10000000 bitShift:8) ]. @@ -294,8 +296,6 @@ "sorry, but need a largeInteger" s := (val bitShift:8) + self next. s := (s bitShift:8) + self next. - "the multiplication below is a temporary workaround for the - inability of smallintegers to handle shifts out of the 32bit range ..." s := (s * 256) + self next. ^ s ]. @@ -414,7 +414,8 @@ Possibly pad with leading zeros. The receiver must support writing of binary bytes." - |vlen i| + |vlen "{ Class: SmallInteger }" + i "{ Class: SmallInteger }"| "claus: this method is central in binaryStorage - therefore it has been tuned a bit (and needs even more tuning)" @@ -459,20 +460,22 @@ " the number is too big to be repesented in n bytes " - self error: 'number too big' + self error:'number too big' ]. "pad with leading zeros" i := n. - [i > vlen] whileTrue: [ - self nextPut: 0. + [i > vlen] whileTrue:[ + self nextPut:0. i := i - 1 ]. - i = 1 ifTrue: [ - ^ self nextPut: v + + i == 1 ifTrue:[ + ^ self nextPut:v ]. - [i > 0] whileTrue: [ - self nextPut: (v digitAt: i). + + [i > 0] whileTrue:[ + self nextPut:(v digitAt:i). i := i - 1 ] ! @@ -510,14 +513,18 @@ first. Returns the receiver on ok, nil on error. The receiver must support writing of binary bytes." + |iNum "{ Class: SmallInteger }"| + + iNum := aNumber. + msbFlag ifTrue:[ "most significant first" - self nextPut:(aNumber bitShift:-8). - ^ self nextPut:(aNumber bitAnd:16rFF). + self nextPut:(iNum bitShift:-8). + ^ self nextPut:(iNum bitAnd:16rFF). ]. "least significant first" - self nextPut:(aNumber bitAnd:16rFF). - self nextPut:(aNumber bitShift:-8). + self nextPut:(iNum bitAnd:16rFF). + self nextPut:(iNum bitShift:-8). ! nextPutShortNet:aNumber @@ -790,7 +797,7 @@ (element = anObject) ifTrue: [ ^ answerStream contents ]. - answerStream nextPut: element. + answerStream nextPut:element. ]. ^ answerStream contents @@ -1037,6 +1044,6 @@ !Stream class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/Stream.st,v 1.33 1996-02-19 15:07:24 stefan Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Stream.st,v 1.34 1996-03-22 14:51:36 cg Exp $' ! ! Stream initialize!