[squeak-dev] The Trunk: Graphics-nice.298.mcz
Levente Uzonyi
leves at elte.hu
Mon Jul 28 00:16:18 UTC 2014
On Sun, 27 Jul 2014, commits at source.squeak.org wrote:
> Nicolas Cellier uploaded a new version of Graphics to project The Trunk:
> http://source.squeak.org/trunk/Graphics-nice.298.mcz
>
> ==================== Summary ====================
>
> Name: Graphics-nice.298
> Author: nice
> Time: 27 July 2014, 4:20:11.638 pm
> UUID: 170cf894-37d9-4c00-adc3-8531594246dc
> Ancestors: Graphics-nice.297
>
> Rather than commenting uggliness, remove it.
>
> Compatibility notes:
>> From now on, DON'T expect (ImageReadWriter formFromStream: yourStream) to reset yourStream. It's not its business, besides it does not work for every kind of Stream.
> Resetting a Stream was only ever required for constructs like (ReadWriteStream with: 'someData') reset.
> But you DON'T have to use a ReadWriteStream if it's just for reading. Rather use a ReadStream, this way, no reset is required.
> If really ReadWriteStream is what fits (why?) then you'll now have to perform the reset by yourself.
The stream will still receive #reset many times from
#understandsImageFormat, #understandsImageFormat: and the instance side
#on: methods.
So I think this change may break #readNativeResourceFrom:.
Levente
>
> =============== Diff against Graphics-nice.297 ===============
>
> Item was changed:
> ----- Method: Form>>readNativeResourceFrom: (in category 'resources') -----
> readNativeResourceFrom: byteStream
> | img aStream |
> + aStream := byteStream.
> - (byteStream isKindOf: FileStream) ifTrue:[
> - "Ugly, but ImageReadWriter will send #reset which is implemented as #reopen and we may not be able to do so."
> - aStream := RWBinaryOrTextStream with: byteStream contents.
> - ] ifFalse:[
> - aStream := byteStream.
> - ].
> img := [ImageReadWriter formFromStream: aStream] on: Error do:[:ex| nil].
> img ifNil:[^nil].
> (img isColorForm and:[self isColorForm]) ifTrue:[
> | cc |
> cc := img colors.
> img colors: nil.
> img displayOn: self.
> img colors: cc.
> ] ifFalse:[
> img displayOn: self.
> ].
> img := nil.!
>
> Item was changed:
> ----- Method: ImageReadWriter class>>formFromStream: (in category 'image reading/writing') -----
> formFromStream: aBinaryStream
> "Answer a ColorForm stored on the given stream. closes the stream"
> | reader readerClass form |
>
> readerClass := self withAllSubclasses
> detect: [:subclass | subclass understandsImageFormat: aBinaryStream]
> ifNone: [
> aBinaryStream close.
> ^self error: 'image format not recognized'].
> + reader := readerClass new on: aBinaryStream.
> - reader := readerClass new on: aBinaryStream reset.
> Cursor read showWhile: [
> form := reader nextImage.
> reader close].
> ^ form
> !
>
>
>
More information about the Squeak-dev
mailing list
|