2016-03-21 8:26 GMT+01:00 Max Leske <[email protected]>:

> That’s a problem with the latest VM. You need to use the stable VM until
> Esteban has compiled a fixed version.
>
>
Thanks, yes, stable works, I just wanted to let you know :-)


> Cheers,
> Max
>
>
> > On 21 Mar 2016, at 08:19, Nicolai Hess <[email protected]> wrote:
> >
> > 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
>
>
>

Reply via email to