PharoVM-Spur32-win-latest.zip from 18.03.16: Opening a fresh image works, but using the menu shows an error Improper store into indexable object [31mError: Improper store into indexable object [0mBitmap(Object)>>error: Bitmap(Object)>>errorImproperStore Bitmap(Object)>>at:put: [ :assoc | | theta nextIndex nextColor nextWord distance step | nextIndex := (assoc key * length) rounded. nextColor := assoc value. nextWord := nextColor pixelWordForDepth: 32. distance := nextIndex - lastIndex. distance = 0 ifTrue: [ distance := 1 ]. step := 1.0 / distance asFloat. theta := 0.0. lastIndex + 1 to: nextIndex do: [ :i | theta := theta + step. "The following is an open-coded version of: color := nextColor alphaMixed: theta with: lastColor. bits at: i put: (color scaledPixelValue32). " bits at: i put: (self scaledAlphaMix: theta of: lastWord with: nextWord) ]. lastIndex := nextIndex. lastColor := nextColor. lastWord := nextWord ] in GradientFillStyle>>computePixelRampOfSize: in Block: [ :assoc | ... SortedCollection(OrderedCollection)>>do: GradientFillStyle>>computePixelRampOfSize: [ :key | (GradientFillStyle new colorRamp: key) computePixelRampOfSize: 512 ] in GradientFillStyle class>>initPixelRampCache in Block: [ :key | (GradientFillStyle new colorRamp: key) co...etc... BlockClosure>>cull: [ | value | value := block cull: key. "Sadly we have to check the presence of key again in case of the block execution already added the entry" keyIndex associationAt: key ifAbsent: [ association := self newAssociationKey: key value: value. ^ self handleMiss: association ] ] in [ | association | association := keyIndex associationAt: key ifAbsent: [ | value | value := block cull: key. "Sadly we have to check the presence of key again in case of the block execution already added the entry" keyIndex associationAt: key ifAbsent: [ association := self newAssociationKey: key value: value. ^ self handleMiss: association ] ]. ^ self handleHit: association ] in LRUCache>>at:ifAbsentPut: in Block: [ | value |... Dictionary>>associationAt:ifAbsent: [ | association | association := keyIndex associationAt: key ifAbsent: [ | value | value := block cull: key. "Sadly we have to check the presence of key again in case of the block execution already added the entry" keyIndex associationAt: key ifAbsent: [ association := self newAssociationKey: key value: value. ^ self handleMiss: association ] ]. ^ self handleHit: association ] in LRUCache>>at:ifAbsentPut: in Block: [ | association |... UndefinedObject>>ifNil:ifNotNil: LRUCache(AbstractCache)>>critical: LRUCache>>at:ifAbsentPut: LRUCache(AbstractCache)>>at: GradientFillStyle>>pixelRamp BalloonEngine>>registerFill: BalloonEngine>>registerFills: BalloonEngine>>registerFill:and: BalloonEngine>>drawRectangle:fill:borderWidth:borderColor:transform: BalloonCanvas>>drawRectangle:color:borderWidth:borderColor: BalloonCanvas>>fillRectangle:basicFillStyle: FormCanvas>>balloonFillRectangle:fillStyle: FormCanvas>>fillRectangle:basicFillStyle: GradientFillStyle(FillStyle)>>fillRectangle:on: FormCanvas(Canvas)>>fillRectangle:fillStyle: FormCanvas(Canvas)>>fillRectangle:fillStyle:borderStyle: MenuMorph(Morph)>>drawOn: MenuMorph>>drawOn: FormCanvas(Canvas)>>draw: [0m[31mError: Improper store into indexable object [0mBitmap(Object)>>error: Bitmap(Object)>>errorImproperStore Bitmap(Object)>>at:put: [ :assoc | | theta nextIndex nextColor nextWord distance step | nextIndex := (assoc key * length) rounded. nextColor := assoc value. nextWord := nextColor pixelWordForDepth: 32. distance := nextIndex - lastIndex. distance = 0 ifTrue: [ distance := 1 ]. step := 1.0 / distance asFloat. theta := 0.0. lastIndex + 1 to: nextIndex do: [ :i | theta := theta + step. "The following is an open-coded version of: color := nextColor alphaMixed: theta with: lastColor. bits at: i put: (color scaledPixelValue32). " bits at: i put: (self scaledAlphaMix: theta of: lastWord with: nextWord) ]. lastIndex := nextIndex. lastColor := nextColor. lastWord := nextWord ] in GradientFillStyle>>computePixelRampOfSize: in Block: [ :assoc | ... SortedCollection(OrderedCollection)>>do: GradientFillStyle>>computePixelRampOfSize: [ :key | (GradientFillStyle new colorRamp: key) computePixelRampOfSize: 512 ] in GradientFillStyle class>>initPixelRampCache in Block: [ :key | (GradientFillStyle new colorRamp: key) co...etc... BlockClosure>>cull: [ | value | value := block cull: key. "Sadly we have to check the presence of key again in case of the block execution already added the entry" keyIndex associationAt: key ifAbsent: [ association := self newAssociationKey: key value: value. ^ self handleMiss: association ] ] in [ | association | association := keyIndex associationAt: key ifAbsent: [ | value | value := block cull: key. "Sadly we have to check the presence of key again in case of the block execution already added the entry" keyIndex associationAt: key ifAbsent: [ association := self newAssociationKey: key value: value. ^ self handleMiss: association ] ]. ^ self handleHit: association ] in LRUCache>>at:ifAbsentPut: in Block: [ | value |... Dictionary>>associationAt:ifAbsent: [ | association | association := keyIndex associationAt: key ifAbsent: [ | value | value := block cull: key. "Sadly we have to check the presence of key again in case of the block execution already added the entry" keyIndex associationAt: key ifAbsent: [ association := self newAssociationKey: key value: value. ^ self handleMiss: association ] ]. ^ self handleHit: association ] in LRUCache>>at:ifAbsentPut: in Block: [ | association |... UndefinedObject>>ifNil:ifNotNil: LRUCache(AbstractCache)>>critical: LRUCache>>at:ifAbsentPut: LRUCache(AbstractCache)>>at: GradientFillStyle>>pixelRamp GradientFillStyle>>= PluggableButtonMorph(Morph)>>fillStyle: PluggableButtonMorph>>extent: Pharo3Theme(UITheme)>>newButtonIn:for:getState:action:arguments:getEnabled:label:help: Pharo3Theme(UITheme)>>newTaskbarButtonIn:for: SpecWindow(SystemWindow)>>taskbarButtonFor: TaskbarTask>>taskbarButtonFor: [ :t | | button | button := t taskbarButtonFor: self. button ifNotNil: [ self addMorphBack: button ] ] in TaskbarMorph>>updateTaskButtons in Block: [ :t | ... OrderedCollection>>do: TaskbarMorph>>updateTaskButtons TaskbarMorph>>updateTasks [ self updateBounds. self updateTasks ] in TaskbarMorph>>ownerChanged in Block: [ self updateBounds.... BlockClosure>>on:do: TaskbarMorph>>ownerChanged [0m