[BUG] GIFReadWriter

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[BUG] GIFReadWriter

Karl Ramberg
GIFReadWriter can't load gif I made on Win10, tested a few drawing programs like Paint and Paint.net.
Gif in attachment.


9 January 2020 8:19:17.92525 pm

VM: Win32 - Smalltalk
Image: Squeak5.3beta [latest update: #19316]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64bit-201910302214-Windows
Trusted Dir C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64bit-201910302214-Windows\Karl
Untrusted Dir C:\Users\Karl\Documents\My Squeak

ByteArray(Object)>>error:
Receiver: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
Arguments and temporary variables:
aString: 'Improper store into indexable object'
Receiver's instance variables:
#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...

ByteArray(Object)>>errorImproperStore
Receiver: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
Arguments and temporary variables:

Receiver's instance variables:
#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...

ByteArray(Object)>>at:put:
Receiver: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
Arguments and temporary variables:
index: 2
value: nil
Receiver's instance variables:
#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...

GIFReadWriter>>readBitData
Receiver: a GIFReadWriter
Arguments and temporary variables:
outCodes: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...etc...
outCount: 2
bitMask: 1
initCodeSize: 8
code: 258
curCode: 52
oldCode: 52
inCode: 258
finChar: 0
i: nil
bytes: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...etc...
f: nil
c: nil
packedBits: 135
hasLocalColor: true
localColorSize: 256
maxOutCodes: 4096
Receiver's instance variables:
stream: MultiByteFileStream: 'C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64bi...etc...
width: 16
height: 16
bitsPerPixel: 1
colorPalette: nil
rowByteSize: 16
xpos: 1
ypos: 0
pass: 0
interlace: false
codeSize: 9
clearCode: 256
eoiCode: 257
freeCode: 258
maxCode: 511
prefixTable: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...etc...
suffixTable: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...etc...
remainBitCount: 5
bufByte: 0
bufStream: a ReadStream
transparentIndex: nil
mapOf32: nil
localColorTable: {(Color r: 0.117 g: 0.117 b: 0.117) . Color veryVeryDarkGray ....etc...
delay: nil
loopCount: nil
offset: 0@0

GIFReadWriter>>readBody
Receiver: a GIFReadWriter
Arguments and temporary variables:
form: nil
extype: nil
block: 44
blocksize: nil
packedFields: nil
delay1: nil
Receiver's instance variables:
stream: MultiByteFileStream: 'C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64bi...etc...
width: 16
height: 16
bitsPerPixel: 1
colorPalette: nil
rowByteSize: 16
xpos: 1
ypos: 0
pass: 0
interlace: false
codeSize: 9
clearCode: 256
eoiCode: 257
freeCode: 258
maxCode: 511
prefixTable: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...etc...
suffixTable: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...etc...
remainBitCount: 5
bufByte: 0
bufStream: a ReadStream
transparentIndex: nil
mapOf32: nil
localColorTable: {(Color r: 0.117 g: 0.117 b: 0.117) . Color veryVeryDarkGray ....etc...
delay: nil
loopCount: nil
offset: 0@0

GIFReadWriter>>nextImage
Receiver: a GIFReadWriter
Arguments and temporary variables:
f: nil
thisImageColorTable: nil
Receiver's instance variables:
stream: MultiByteFileStream: 'C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64bi...etc...
width: 16
height: 16
bitsPerPixel: 1
colorPalette: nil
rowByteSize: 16
xpos: 1
ypos: 0
pass: 0
interlace: false
codeSize: 9
clearCode: 256
eoiCode: 257
freeCode: 258
maxCode: 511
prefixTable: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...etc...
suffixTable: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...etc...
remainBitCount: 5
bufByte: 0
bufStream: a ReadStream
transparentIndex: nil
mapOf32: nil
localColorTable: {(Color r: 0.117 g: 0.117 b: 0.117) . Color veryVeryDarkGray ....etc...
delay: nil
loopCount: nil
offset: 0@0

[] in ImageReadWriter class>>formFromStream:
Receiver: ImageReadWriter
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#atEnd->(ImageReadWriter>>#atEnd "a CompiledMethod...etc...
format: 65537
instanceVariables: #('stream')
organization: ('accessing' nextImage nextPutImage:)
('stream access' atEnd close...etc...
subclasses: {PCXReadWriter . XBMReadWriter . JPEGReadWriter . JPEGReadWriter2 ....etc...
name: #ImageReadWriter
classPool: a Dictionary(#ImageNotStoredSignal->nil #MagicNumberErrorSignal->nil...etc...
sharedPools: nil
environment: nil
category: #'Graphics-Files'

BlockClosure>>ensure:
Receiver: [closure] in ImageReadWriter class>>formFromStream:
Arguments and temporary variables:
aBlock: [closure] in CursorWithMask(Cursor)>>showWhile:
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: ImageReadWriter class>>formFromStream:
startpc: 168
numArgs: 0

CursorWithMask(Cursor)>>showWhile:
Receiver: ((CursorWithMask
extent: 16@16
depth: 1
fromArray: #(
2r0
2r0
2r0
2r10000000010...etc...
Arguments and temporary variables:
aBlock: [closure] in ImageReadWriter class>>formFromStream:
oldcursor: ((CursorWithMask
extent: 16@16
depth: 1
fromArray: #(
2r0
2r1...etc...
Receiver's instance variables:
bits: a Bitmap of length 16
width: 16
height: 16
depth: 1
offset: -1@ -1
maskForm: Form(16x16x1)

ImageReadWriter class>>formFromStream:
Receiver: ImageReadWriter
Arguments and temporary variables:
aBinaryStream: MultiByteFileStream: 'C:\Users\Karl\Downloads\Squeak5.3alpha-191...etc...
reader: a GIFReadWriter
readerClass: GIFReadWriter
form: #(nil)
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#atEnd->(ImageReadWriter>>#atEnd "a CompiledMethod...etc...
format: 65537
instanceVariables: #('stream')
organization: ('accessing' nextImage nextPutImage:)
('stream access' atEnd close...etc...
subclasses: {PCXReadWriter . XBMReadWriter . JPEGReadWriter . JPEGReadWriter2 ....etc...
name: #ImageReadWriter
classPool: a Dictionary(#ImageNotStoredSignal->nil #MagicNumberErrorSignal->nil...etc...
sharedPools: nil
environment: nil
category: #'Graphics-Files'

Form class>>fromBinaryStream:
Receiver: Form
Arguments and temporary variables:
aBinaryStream: MultiByteFileStream: 'C:\Users\Karl\Downloads\Squeak5.3alpha-191...etc...
firstByte: 71
Receiver's instance variables:
superclass: DisplayMedium
methodDict: a MethodDictionary(size 240)
format: 65541
instanceVariables: #('bits' 'width' 'height' 'depth' 'offset')
organization: ('accessing' bits bitsSize bits: defaultCanvasClass depth depth: extent...etc...
subclasses: {Cursor . ColorForm . StaticForm . FormStub . DisplayScreen}
name: #Form
classPool: a Dictionary()
sharedPools: nil
environment: nil
category: #'Graphics-Display Objects'

Form class>>fromFileNamed:
Receiver: Form
Arguments and temporary variables:
fileName: 'C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64bit-201910302214-Wind...etc...
file: MultiByteFileStream: 'C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64bit-...etc...
form: nil
Receiver's instance variables:
superclass: DisplayMedium
methodDict: a MethodDictionary(size 240)
format: 65541
instanceVariables: #('bits' 'width' 'height' 'depth' 'offset')
organization: ('accessing' bits bitsSize bits: defaultCanvasClass depth depth: extent...etc...
subclasses: {Cursor . ColorForm . StaticForm . FormStub . DisplayScreen}
name: #Form
classPool: a Dictionary()
sharedPools: nil
environment: nil
category: #'Graphics-Display Objects'

FileList>>readGraphicContents
Receiver: a FileList
Arguments and temporary variables:
form: nil
maxExtent: nil
ext: nil
Receiver's instance variables:
dependents: a DependentsArray(a PluggableSystemWindow<C:\Users\Karl\Downloads\S...etc...
contents: a Text for 'Image extent: 16@16
 '
fileName: 'Untitled.gif'
directory: DosFileDirectory on 'C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64...etc...
volList: #('[]' ' C:' '  Users' '   Karl' '    Downloads' '     Squeak5.3alpha-...etc...
volListIndex: 7
list: #('(2020.01.09 20:18:28 416) Untitled.png' '(2020.01.09 20:17:26 899) Unt...etc...
listIndex: 2
pattern: '*'
sortMode: #date
brevityState: #needToGetGraphic
directoryCache: a WeakIdentityKeyDictionary(DosFileDirectory on 'C:'->true DosFileDirectory...etc...
lastGraphicsExtent: 430@106

FileList>>contents
Receiver: a FileList
Arguments and temporary variables:

Receiver's instance variables:
dependents: a DependentsArray(a PluggableSystemWindow<C:\Users\Karl\Downloads\S...etc...
contents: a Text for 'Image extent: 16@16
 '
fileName: 'Untitled.gif'
directory: DosFileDirectory on 'C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64...etc...
volList: #('[]' ' C:' '  Users' '   Karl' '    Downloads' '     Squeak5.3alpha-...etc...
volListIndex: 7
list: #('(2020.01.09 20:18:28 416) Untitled.png' '(2020.01.09 20:17:26 899) Unt...etc...
listIndex: 2
pattern: '*'
sortMode: #date
brevityState: #needToGetGraphic
directoryCache: a WeakIdentityKeyDictionary(DosFileDirectory on 'C:'->true DosFileDirectory...etc...
lastGraphicsExtent: 430@106

PluggableTextMorphPlus(PluggableTextMorph)>>getText
Receiver: a PluggableTextMorphPlus(1921821)
Arguments and temporary variables:
newText: nil
Receiver's instance variables:
bounds: 862@415 corner: 1300@545
owner: a PluggableSystemWindow<C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64b...etc...
submorphs: {a TransformMorph(3094149)}
fullBounds: 862@415 corner: 1300@545
color: Color white
extension: a MorphExtension (1093573) [locked]  [other:  (layoutProperties -> a...etc...
borderWidth: 1
borderColor: (Color r: 0.27 g: 0.27 b: 0.27)
model: a FileList
slotName: nil
open: false
scrollBar: a ScrollBar(2636557)
scroller: a TransformMorph(3094149)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #fileContentsMenu:shifted:
getMenuTitleSelector: nil
hasFocus: false
hScrollBar: a ScrollBar(4000749)
hScrollBarPolicy: #never
vScrollBarPolicy: #whenNeeded
scrollBarThickness: 10
textMorph: a TextMorphForEditView(1646261)
getTextSelector: #contents
setTextSelector: #put:
getSelectionSelector: #contentsSelection
hasUnacceptedEdits: false
hasUserEdited: nil
askBeforeDiscardingEdits: true
selectionInterval: (1 to: 0)
hasEditingConflicts: false
editTextSelector: nil
wantsWrapBorder: nil
getColorSelector: nil
acceptAction: nil
unstyledAcceptText: nil
styler: nil
getTextColorSelector: nil

PluggableTextMorphPlus(PluggableTextMorph)>>update:
Receiver: a PluggableTextMorphPlus(1921821)
Arguments and temporary variables:
aSymbol: #contents
Receiver's instance variables:
bounds: 862@415 corner: 1300@545
owner: a PluggableSystemWindow<C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64b...etc...
submorphs: {a TransformMorph(3094149)}
fullBounds: 862@415 corner: 1300@545
color: Color white
extension: a MorphExtension (1093573) [locked]  [other:  (layoutProperties -> a...etc...
borderWidth: 1
borderColor: (Color r: 0.27 g: 0.27 b: 0.27)
model: a FileList
slotName: nil
open: false
scrollBar: a ScrollBar(2636557)
scroller: a TransformMorph(3094149)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #fileContentsMenu:shifted:
getMenuTitleSelector: nil
hasFocus: false
hScrollBar: a ScrollBar(4000749)
hScrollBarPolicy: #never
vScrollBarPolicy: #whenNeeded
scrollBarThickness: 10
textMorph: a TextMorphForEditView(1646261)
getTextSelector: #contents
setTextSelector: #put:
getSelectionSelector: #contentsSelection
hasUnacceptedEdits: false
hasUserEdited: nil
askBeforeDiscardingEdits: true
selectionInterval: (1 to: 0)
hasEditingConflicts: false
editTextSelector: nil
wantsWrapBorder: nil
getColorSelector: nil
acceptAction: nil
unstyledAcceptText: nil
styler: nil
getTextColorSelector: nil

PluggableTextMorphPlus>>update:
Receiver: a PluggableTextMorphPlus(1921821)
Arguments and temporary variables:
what: #contents
Receiver's instance variables:
bounds: 862@415 corner: 1300@545
owner: a PluggableSystemWindow<C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64b...etc...
submorphs: {a TransformMorph(3094149)}
fullBounds: 862@415 corner: 1300@545
color: Color white
extension: a MorphExtension (1093573) [locked]  [other:  (layoutProperties -> a...etc...
borderWidth: 1
borderColor: (Color r: 0.27 g: 0.27 b: 0.27)
model: a FileList
slotName: nil
open: false
scrollBar: a ScrollBar(2636557)
scroller: a TransformMorph(3094149)
retractableScrollBar: false
scrollBarOnLeft: false
getMenuSelector: #fileContentsMenu:shifted:
getMenuTitleSelector: nil
hasFocus: false
hScrollBar: a ScrollBar(4000749)
hScrollBarPolicy: #never
vScrollBarPolicy: #whenNeeded
scrollBarThickness: 10
textMorph: a TextMorphForEditView(1646261)
getTextSelector: #contents
setTextSelector: #put:
getSelectionSelector: #contentsSelection
hasUnacceptedEdits: false
hasUserEdited: nil
askBeforeDiscardingEdits: true
selectionInterval: (1 to: 0)
hasEditingConflicts: false
editTextSelector: nil
wantsWrapBorder: nil
getColorSelector: nil
acceptAction: nil
unstyledAcceptText: nil
styler: nil
getTextColorSelector: nil

[] in FileList(Object)>>changed:
Receiver: a FileList
Arguments and temporary variables:
aParameter: a PluggableTextMorphPlus(1921821)
aDependent: #contents
Receiver's instance variables:
dependents: a DependentsArray(a PluggableSystemWindow<C:\Users\Karl\Downloads\S...etc...
contents: a Text for 'Image extent: 16@16
 '
fileName: 'Untitled.gif'
directory: DosFileDirectory on 'C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64...etc...
volList: #('[]' ' C:' '  Users' '   Karl' '    Downloads' '     Squeak5.3alpha-...etc...
volListIndex: 7
list: #('(2020.01.09 20:18:28 416) Untitled.png' '(2020.01.09 20:17:26 899) Unt...etc...
listIndex: 2
pattern: '*'
sortMode: #date
brevityState: #needToGetGraphic
directoryCache: a WeakIdentityKeyDictionary(DosFileDirectory on 'C:'->true DosFileDirectory...etc...
lastGraphicsExtent: 430@106

DependentsArray>>do:
Receiver: a DependentsArray(a PluggableSystemWindow<C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64b...etc...
Arguments and temporary variables:
aBlock: [closure] in FileList(Object)>>changed:
dep: a PluggableTextMorphPlus(1921821)
i: 6
iLimiT: 6
Receiver's instance variables:
a DependentsArray(a PluggableSystemWindow<C:\Users\Karl\Downloads\Squeak5.3alpha-19142-64b...etc...


--- The full stack ---
ByteArray(Object)>>error:
ByteArray(Object)>>errorImproperStore
ByteArray(Object)>>at:put:
GIFReadWriter>>readBitData
GIFReadWriter>>readBody
GIFReadWriter>>nextImage
[] in ImageReadWriter class>>formFromStream:
BlockClosure>>ensure:
CursorWithMask(Cursor)>>showWhile:
ImageReadWriter class>>formFromStream:
Form class>>fromBinaryStream:
Form class>>fromFileNamed:
FileList>>readGraphicContents
FileList>>contents
PluggableTextMorphPlus(PluggableTextMorph)>>getText
PluggableTextMorphPlus(PluggableTextMorph)>>update:
PluggableTextMorphPlus>>update:
[] in FileList(Object)>>changed:
DependentsArray>>do:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileList(Object)>>changed:
FileList>>fileListIndex:
PluggableListMorphPlus(PluggableListMorph)>>changeModelSelection:
PluggableListMorphPlus(PluggableListMorph)>>mouseUp:
PluggableListMorphPlus(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
PluggableListMorphPlus(Morph)>>handleEvent:
PluggableListMorphPlus(Morph)>>handleFocusEvent:
MorphicEventDispatcher>>doHandlingForFocusEvent:with:
MorphicEventDispatcher>>dispatchFocusEvent:with:
PluggableListMorphPlus(Morph)>>processFocusEvent:using:
PluggableListMorphPlus(Morph)>>processFocusEvent:
[] in [] in [] in HandMorph>>sendFocusEvent:to:clear:
BlockClosure>>ensure:
MouseButtonEvent(MorphicEvent)>>becomeActiveDuring:
[] in [] in HandMorph>>sendFocusEvent:to:clear:
BlockClosure>>ensure:
HandMorph>>becomeActiveDuring:
[] in HandMorph>>sendFocusEvent:to:clear:
BlockClosure>>ensure:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in MorphicProject>>spawnNewProcess
[] in BlockClosure>>newProcess



Untitled.gif (1K) Download Attachment