Hi. If Sixx wants to open an empty file it crashes but adding a guard close prevents this. It's currently in the SPrevayler changeset so it would be kind if you tell me when somebody fixed it in the sixx package.
SixxReadStream>>initialize
(stream size = 0) ifTrue: [position_0. limit_0. ^self.]. "Guarding clause" contextDictionary := IdentityDictionary new. position := 0. sixxElements := self parseStream: stream. limit := sixxElements isNil ifTrue: [0] ifFalse: [sixxElements size]. cachedObjects := Dictionary new
Regards Marco
Hi,
If Sixx wants to open an empty file it crashes but adding a guard close prevents this. It's currently in the SPrevayler changeset so it would be kind if you tell me when somebody fixed it in the sixx package.
SixxReadStream>>initialize
(stream size = 0) ifTrue: [position_0. limit_0. ^self.]. "Guarding
clause" contextDictionary := IdentityDictionary new. position := 0. sixxElements := self parseStream: stream. limit := sixxElements isNil ifTrue: [0] ifFalse: [sixxElements size]. cachedObjects := Dictionary new
Thanks for finding the bug. But I prefer to change SixxReadStream>>parseStream: instead of SixxReadStream>>initialize, because it already has a guard clause.
So the #parseStream: will be: parseStream: aStream | root | (aStream isNil or: [aStream size = 0]) "OLD: aStream isNil" ifTrue: [^ nil]. root := SixxXmlUtil parseXml: aStream. self checkSixxElement: root. ^ SixxXmlUtil elementsFrom: root
I will apply this fix and release the repackaged version soon.
Cheers, --- [:masashi | ^umezawa]
squeak-dev@lists.squeakfoundation.org