[squeak-dev] strange test failure

Chris Muller asqueaker at gmail.com
Thu Jan 20 16:55:56 UTC 2011


One of the tests only fails in Cog, with a very strange phenomena.

It's easy to reproduce with the line of code from the test:

     ObjectsTool initializedInstance showAll openCenteredInWorld

the strange part is in the passing of the "(colors at: i)" argument
from ColorForm>>colormapIfNeededForDepth:.  As you can see in the
stack trace below (or in debugger from above expression), the third
element is definitely an instance of Color.

Yet, the message ends up being sent to a LargePositiveInteger,
4278192128 to be exact.

 - Chris



Subject: [BUG]LargePositiveInteger(Object)>>doesNotUnderstand:
#pixelValueForDepth:
19 January 2011 7:59:01.819 pm

VM: unix - Smalltalk
Image: Squeak4.2alpha [latest update: #10910]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true

LargePositiveInteger(Object)>>doesNotUnderstand: #pixelValueForDepth:
	Receiver: 4278192128
	Arguments and temporary variables:
		aMessage: 	pixelValueForDepth: 32
		exception: 	MessageNotUnderstood: LargePositiveInteger>>pixelValueForDepth:
		resumeValue: 	nil
	Receiver's instance variables:
4278192128

ColorForm>>colormapIfNeededForDepth:
	Receiver: ColorForm(52x29x8)
	Arguments and temporary variables:
		destDepth: 	32
		newMap: 	a Bitmap of length 256
		i: 	3
		iLimiT: 	256
	Receiver's instance variables:
		bits: 	#[225 121 17 227 23 227 219 212 205 189 188 174 187 185 156
164 156 157 1...etc...
		width: 	52
		height: 	29
		depth: 	8
		offset: 	0 at 0
		colors: 	a ColorArray(Color transparent (Color r: 0.0 g: 0.0 b:
0.031) (Color r:...etc...
		cachedDepth: 	nil
		cachedColormap: 	nil

ColorForm>>colormapIfNeededFor:
	Receiver: ColorForm(52x29x8)
	Arguments and temporary variables:
		destForm: 	Form(212x49x32)
		newMap: 	nil
		color: 	nil
		pv: 	nil
		i: 	nil
		iLimiT: 	nil
	Receiver's instance variables:
		bits: 	#[225 121 17 227 23 227 219 212 205 189 188 174 187 185 156
164 156 157 1...etc...
		width: 	52
		height: 	29
		depth: 	8
		offset: 	0 at 0
		colors: 	a ColorArray(Color transparent (Color r: 0.0 g: 0.0 b:
0.031) (Color r:...etc...
		cachedDepth: 	nil
		cachedColormap: 	nil

FormCanvas>>image:at:sourceRect:rule:
	Receiver: a FormCanvas on: Form(212x49x32)
	Arguments and temporary variables:
		aForm: 	ColorForm(52x29x8)
		aPoint: 	131 at 10
		sourceRect: 	0 at 0 corner: 52 at 29
		rule: 	24
	Receiver's instance variables:
		target: 	nil
		filterSelector: 	nil
		origin: 	0 at 0
		clipRect: 	0 at 0 corner: 212 at 49
		form: 	Form(212x49x32)
		port: 	a GrafPort
		shadowColor: 	nil

FormCanvas(Canvas)>>translucentImage:at:sourceRect:
	Receiver: a FormCanvas on: Form(212x49x32)
	Arguments and temporary variables:
		aForm: 	ColorForm(52x29x8)
		aPoint: 	131 at 10
		sourceRect: 	0 at 0 corner: 52 at 29
	Receiver's instance variables:
		target: 	nil
		filterSelector: 	nil
		origin: 	0 at 0
		clipRect: 	0 at 0 corner: 212 at 49
		form: 	Form(212x49x32)
		port: 	a GrafPort
		shadowColor: 	nil

FormCanvas(Canvas)>>translucentImage:at:
	Receiver: a FormCanvas on: Form(212x49x32)
	Arguments and temporary variables:
		aForm: 	ColorForm(52x29x8)
		aPoint: 	131 at 10
	Receiver's instance variables:
		target: 	nil
		filterSelector: 	nil
		origin: 	0 at 0
		clipRect: 	0 at 0 corner: 212 at 49
		form: 	Form(212x49x32)
		port: 	a GrafPort
		shadowColor: 	nil

ThreePhaseButtonMorph>>drawOn:
	Receiver: 3PButton(#goUp:with: 3545)
	Arguments and temporary variables:
		aCanvas: 	a FormCanvas on: Form(212x49x32)
	Receiver's instance variables:
		bounds: 	131 at 10 corner: 183 at 39
		owner: 	an AlignmentMorph<script controls>(2589)
		submorphs: 	#()
		fullBounds: 	131 at 10 corner: 183 at 39
		color: 	Color blue
		extension: 	a MorphExtension (3716) [balloonText]  [externalName =
Go Button ]
		image: 	ColorForm(52x29x8)
		offImage: 	ColorForm(52x29x8)
		pressedImage: 	ColorForm(52x29x8)
		state: 	#off
		target: 	a StandardScriptingSystem
		actionSelector: 	#goUp:with:
		arguments: 	{nil . 3PButton(#goUp:with: 3545)}
		actWhen: 	#buttonUp

FormCanvas(Canvas)>>draw:
	Receiver: a FormCanvas on: Form(212x49x32)
	Arguments and temporary variables:
		anObject: 	3PButton(#goUp:with: 3545)
	Receiver's instance variables:
		target: 	nil
		filterSelector: 	nil
		origin: 	0 at 0
		clipRect: 	0 at 0 corner: 212 at 49
		form: 	Form(212x49x32)
		port: 	a GrafPort
		shadowColor: 	nil

FormCanvas(Canvas)>>drawMorph:
	Receiver: a FormCanvas on: Form(212x49x32)
	Arguments and temporary variables:
		aMorph: 	3PButton(#goUp:with: 3545)
	Receiver's instance variables:
		target: 	nil
		filterSelector: 	nil
		origin: 	0 at 0
		clipRect: 	0 at 0 corner: 212 at 49
		form: 	Form(212x49x32)
		port: 	a GrafPort
		shadowColor: 	nil

[] in ThreePhaseButtonMorph(Morph)>>fullDrawOn:
	Receiver: 3PButton(#goUp:with: 3545)
	Arguments and temporary variables:
		aCanvas: 	a FormCanvas on: Form(212x49x32)
	Receiver's instance variables:
		bounds: 	131 at 10 corner: 183 at 39
		owner: 	an AlignmentMorph<script controls>(2589)
		submorphs: 	#()
		fullBounds: 	131 at 10 corner: 183 at 39
		color: 	Color blue
		extension: 	a MorphExtension (3716) [balloonText]  [externalName =
Go Button ]
		image: 	ColorForm(52x29x8)
		offImage: 	ColorForm(52x29x8)
		pressedImage: 	ColorForm(52x29x8)
		state: 	#off
		target: 	a StandardScriptingSystem
		actionSelector: 	#goUp:with:
		arguments: 	{nil . 3PButton(#goUp:with: 3545)}
		actWhen: 	#buttonUp

FormCanvas>>roundCornersOf:in:during:
	Receiver: a FormCanvas on: Form(212x49x32)
	Arguments and temporary variables:
		aMorph: 	3PButton(#goUp:with: 3545)
		bounds: 	131 at 10 corner: 183 at 39
		aBlock: 	[closure] in ThreePhaseButtonMorph(Morph)>>fullDrawOn:
	Receiver's instance variables:
		target: 	nil
		filterSelector: 	nil
		origin: 	0 at 0
		clipRect: 	0 at 0 corner: 212 at 49
		form: 	Form(212x49x32)
		port: 	a GrafPort
		shadowColor: 	nil

FormCanvas(Canvas)>>roundCornersOf:during:
	Receiver: a FormCanvas on: Form(212x49x32)
	Arguments and temporary variables:
		aMorph: 	3PButton(#goUp:with: 3545)
		aBlock: 	[closure] in ThreePhaseButtonMorph(Morph)>>fullDrawOn:
	Receiver's instance variables:
		target: 	nil
		filterSelector: 	nil
		origin: 	0 at 0
		clipRect: 	0 at 0 corner: 212 at 49
		form: 	Form(212x49x32)
		port: 	a GrafPort
		shadowColor: 	nil

ThreePhaseButtonMorph(Morph)>>fullDrawOn:
	Receiver: 3PButton(#goUp:with: 3545)
	Arguments and temporary variables:
		aCanvas: 	a FormCanvas on: Form(212x49x32)
	Receiver's instance variables:
		bounds: 	131 at 10 corner: 183 at 39
		owner: 	an AlignmentMorph<script controls>(2589)
		submorphs: 	#()
		fullBounds: 	131 at 10 corner: 183 at 39
		color: 	Color blue
		extension: 	a MorphExtension (3716) [balloonText]  [externalName =
Go Button ]
		image: 	ColorForm(52x29x8)
		offImage: 	ColorForm(52x29x8)
		pressedImage: 	ColorForm(52x29x8)
		state: 	#off
		target: 	a StandardScriptingSystem
		actionSelector: 	#goUp:with:
		arguments: 	{nil . 3PButton(#goUp:with: 3545)}
		actWhen: 	#buttonUp

FormCanvas(Canvas)>>fullDraw:
	Receiver: a FormCanvas on: Form(212x49x32)
	Arguments and temporary variables:
		anObject: 	3PButton(#goUp:with: 3545)
	Receiver's instance variables:
		target: 	nil
		filterSelector: 	nil
		origin: 	0 at 0
		clipRect: 	0 at 0 corner: 212 at 49
		form: 	Form(212x49x32)
		port: 	a GrafPort
		shadowColor: 	nil

FormCanvas(Canvas)>>fullDrawMorph:
	Receiver: a FormCanvas on: Form(212x49x32)
	Arguments and temporary variables:
		aMorph: 	3PButton(#goUp:with: 3545)
	Receiver's instance variables:
		target: 	nil
		filterSelector: 	nil
		origin: 	0 at 0
		clipRect: 	0 at 0 corner: 212 at 49
		form: 	Form(212x49x32)
		port: 	a GrafPort
		shadowColor: 	nil

[] in [] in AlignmentMorph(Morph)>>drawSubmorphsOn:
	Receiver: an AlignmentMorph<script controls>(2589)
	Arguments and temporary variables:
<<error during printing>
	Receiver's instance variables:
		bounds: 	25 at 8 corner: 185 at 41
		owner: 	an AlignmentMorph(1206)
		submorphs: 	{3PButton(#stopUp:with: 2931) .
3PButton(#stepStillDown:with: 3201) ...etc...
		fullBounds: 	25 at 8 corner: 185 at 41
		color: 	Color transparent
		extension: 	a MorphExtension (2601) [externalName = script controls
]  [other:  ...etc...
		borderWidth: 	0
		borderColor: 	Color black

Array(SequenceableCollection)>>reverseDo:
	Receiver: {3PButton(#stopUp:with: 2931) .
3PButton(#stepStillDown:with: 3201) . 3PButton(#goUp:with:...etc...
	Arguments and temporary variables:
		aBlock: 	[closure] in [] in AlignmentMorph(Morph)>>drawSubmorphsOn:
		index: 	3
	Receiver's instance variables:
{3PButton(#stopUp:with: 2931) . 3PButton(#stepStillDown:with: 3201) .
3PButton(#goUp:with:...etc...

[] in AlignmentMorph(Morph)>>drawSubmorphsOn:
	Receiver: an AlignmentMorph<script controls>(2589)
	Arguments and temporary variables:
<<error during printing>
	Receiver's instance variables:
		bounds: 	25 at 8 corner: 185 at 41
		owner: 	an AlignmentMorph(1206)
		submorphs: 	{3PButton(#stopUp:with: 2931) .
3PButton(#stepStillDown:with: 3201) ...etc...
		fullBounds: 	25 at 8 corner: 185 at 41
		color: 	Color transparent
		extension: 	a MorphExtension (2601) [externalName = script controls
]  [other:  ...etc...
		borderWidth: 	0
		borderColor: 	Color black

AlignmentMorph(Morph)>>drawSubmorphsOn:
	Receiver: an AlignmentMorph<script controls>(2589)
	Arguments and temporary variables:
		aCanvas: 	a FormCanvas on: Form(212x49x32)
		drawBlock: 	[closure] in AlignmentMorph(Morph)>>drawSubmorphsOn:
	Receiver's instance variables:
		bounds: 	25 at 8 corner: 185 at 41
		owner: 	an AlignmentMorph(1206)
		submorphs: 	{3PButton(#stopUp:with: 2931) .
3PButton(#stepStillDown:with: 3201) ...etc...
		fullBounds: 	25 at 8 corner: 185 at 41
		color: 	Color transparent
		extension: 	a MorphExtension (2601) [externalName = script controls
]  [other:  ...etc...
		borderWidth: 	0
		borderColor: 	Color black


--- The full stack ---
LargePositiveInteger(Object)>>doesNotUnderstand: #pixelValueForDepth:
ColorForm>>colormapIfNeededForDepth:
ColorForm>>colormapIfNeededFor:
FormCanvas>>image:at:sourceRect:rule:
FormCanvas(Canvas)>>translucentImage:at:sourceRect:
FormCanvas(Canvas)>>translucentImage:at:
ThreePhaseButtonMorph>>drawOn:
FormCanvas(Canvas)>>draw:
FormCanvas(Canvas)>>drawMorph:
[] in ThreePhaseButtonMorph(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
ThreePhaseButtonMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in [] in AlignmentMorph(Morph)>>drawSubmorphsOn:
Array(SequenceableCollection)>>reverseDo:
[] in AlignmentMorph(Morph)>>drawSubmorphsOn:
AlignmentMorph(Morph)>>drawSubmorphsOn:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[] in AlignmentMorph(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
AlignmentMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in [] in AlignmentMorph(Morph)>>drawSubmorphsOn:
Array(SequenceableCollection)>>reverseDo:
[] in AlignmentMorph(Morph)>>drawSubmorphsOn:
AlignmentMorph(Morph)>>drawSubmorphsOn:
[] in AlignmentMorph(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
AlignmentMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in [] in AllScriptsTool(Morph)>>drawSubmorphsOn:
Array(SequenceableCollection)>>reverseDo:
[] in AllScriptsTool(Morph)>>drawSubmorphsOn:
AllScriptsTool(Morph)>>drawSubmorphsOn:
[] in AllScriptsTool(Morph)>>fullDrawOn:
CornerRounder class>>roundCornersOf:on:in:displayBlock:borderWidth:corners:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
AllScriptsTool(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in AllScriptsTool(Morph)>>imageForm:backgroundColor:forRectangle:
FormCanvas>>translateBy:during:
AllScriptsTool(Morph)>>imageForm:backgroundColor:forRectangle:
PartsBin class>>thumbnailForQuad:color:
[] in PartsBin>>listDirection:quadList:buttonClass:
SortedCollection(OrderedCollection)>>do:
PartsBin>>listDirection:quadList:buttonClass:
PartsBin>>listDirection:quadList:
ObjectsTool>>installQuads:fromButton:
[] in ObjectsTool>>showAll
BlockClosure>>ensure:
CursorWithMask(Cursor)>>showWhile:
ObjectsTool>>showAll
MorphicUIBugTest class>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:logged:
-- and more not shown --



More information about the Squeak-dev mailing list