[squeak-dev] SectorMorph initialization bug

Marcel Taeumel marcel.taeumel at hpi.de
Sat May 12 08:59:06 UTC 2018


Hi Karl,

fixed in EToys-mt.328.

Best,
Marcel
Am 11.05.2018 22:03:28 schrieb karl ramberg <karlramberg at gmail.com>:
I got this bug clicking the Graphics tab in Objects tool.
Seem it try to compute bounds before it is fully initialized and vertices are nil.

Best,
Karl



11 May 2018 9:59:11.58749 pm

VM: Win32 - Smalltalk
Image: Squeak6.0alpha [latest update: #17975]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir C:\Users\Karl\Downloads\Squeak6.0alpha-17873-64bit\Squeak6.0alpha-17873-64bit-201712221331-Windows
Trusted Dir C:\Users\Karl\Downloads\Squeak6.0alpha-17873-64bit\Squeak6.0alpha-17873-64bit-201712221331-Windows\Karl
Untrusted Dir C:\Users\Karl\Documents\My Squeak

UndefinedObject(Object)>>doesNotUnderstand: #first
Receiver: nil
Arguments and temporary variables: 
aMessage: first
exception: MessageNotUnderstood: UndefinedObject>>first
resumeValue: nil
Receiver's instance variables: 
nil

SectorMorph>>computeBounds
Receiver: a SectorMorph(802620)
Arguments and temporary variables: 

Receiver's instance variables: 
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: #()
fullBounds: nil
color: Color orange
extension: a MorphExtension (1711903) [other:  (borderStyle -> a SimpleBorder)]...etc...
borderWidth: 2
borderColor: Color black
vertices: nil
closed: nil
filledForm: nil
arrows: nil
arrowForms: nil
smoothCurve: nil
curveState: nil
borderDashSpec: nil
handles: nil
borderForm: nil
angle: 45

SectorMorph(PolygonMorph)>>borderStyle:
Receiver: a SectorMorph(802620)
Arguments and temporary variables: 
aBorderStyle: a SimpleBorder
Receiver's instance variables: 
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: #()
fullBounds: nil
color: Color orange
extension: a MorphExtension (1711903) [other:  (borderStyle -> a SimpleBorder)]...etc...
borderWidth: 2
borderColor: Color black
vertices: nil
closed: nil
filledForm: nil
arrows: nil
arrowForms: nil
smoothCurve: nil
curveState: nil
borderDashSpec: nil
handles: nil
borderForm: nil
angle: 45

SectorMorph(BorderedMorph)>>borderInitialize
Receiver: a SectorMorph(802620)
Arguments and temporary variables: 

Receiver's instance variables: 
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: #()
fullBounds: nil
color: Color orange
extension: a MorphExtension (1711903) [other:  (borderStyle -> a SimpleBorder)]...etc...
borderWidth: 2
borderColor: Color black
vertices: nil
closed: nil
filledForm: nil
arrows: nil
arrowForms: nil
smoothCurve: nil
curveState: nil
borderDashSpec: nil
handles: nil
borderForm: nil
angle: 45

SectorMorph(BorderedMorph)>>initialize
Receiver: a SectorMorph(802620)
Arguments and temporary variables: 

Receiver's instance variables: 
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: #()
fullBounds: nil
color: Color orange
extension: a MorphExtension (1711903) [other:  (borderStyle -> a SimpleBorder)]...etc...
borderWidth: 2
borderColor: Color black
vertices: nil
closed: nil
filledForm: nil
arrows: nil
arrowForms: nil
smoothCurve: nil
curveState: nil
borderDashSpec: nil
handles: nil
borderForm: nil
angle: 45

SectorMorph(PolygonMorph)>>initialize
Receiver: a SectorMorph(802620)
Arguments and temporary variables: 

Receiver's instance variables: 
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: #()
fullBounds: nil
color: Color orange
extension: a MorphExtension (1711903) [other:  (borderStyle -> a SimpleBorder)]...etc...
borderWidth: 2
borderColor: Color black
vertices: nil
closed: nil
filledForm: nil
arrows: nil
arrowForms: nil
smoothCurve: nil
curveState: nil
borderDashSpec: nil
handles: nil
borderForm: nil
angle: 45

SectorMorph>>initialize
Receiver: a SectorMorph(802620)
Arguments and temporary variables: 

Receiver's instance variables: 
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: #()
fullBounds: nil
color: Color orange
extension: a MorphExtension (1711903) [other:  (borderStyle -> a SimpleBorder)]...etc...
borderWidth: 2
borderColor: Color black
vertices: nil
closed: nil
filledForm: nil
arrows: nil
arrowForms: nil
smoothCurve: nil
curveState: nil
borderDashSpec: nil
handles: nil
borderForm: nil
angle: 45

SectorMorph(Morph)>>initializeToStandAlone
Receiver: a SectorMorph(802620)
Arguments and temporary variables: 

Receiver's instance variables: 
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: #()
fullBounds: nil
color: Color orange
extension: a MorphExtension (1711903) [other:  (borderStyle -> a SimpleBorder)]...etc...
borderWidth: 2
borderColor: Color black
vertices: nil
closed: nil
filledForm: nil
arrows: nil
arrowForms: nil
smoothCurve: nil
curveState: nil
borderDashSpec: nil
handles: nil
borderForm: nil
angle: 45

SectorMorph class(Morph class)>>newStandAlone
Receiver: SectorMorph
Arguments and temporary variables: 

Receiver's instance variables: 
superclass: PolygonMorph
methodDict: a MethodDictionary(#addCustomMenuItems:hand:->(SectorMorph>>#addCus...etc...
format: 65555
instanceVariables: #('angle')
organization: ('menu & halo' addCustomMenuItems:hand:)
('editing' addHandles)
(...etc...
subclasses: nil
name: #SectorMorph
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'Etoys-Squeakland-MorphicExtras-AdditionalMorphs'

PartsBin class>>thumbnailForQuad:color:
Receiver: PartsBin
Arguments and temporary variables: 
aQuint: #(#SectorMorph #newStandAlone 'Sector' 'A sector tool that lets you cre...etc...
aColor: (Color r: 1 g: 0.911 b: 0.984)
aThumbnail: nil
aSymbol: 'Sector'
formToThumbnail: nil
labeledItem: nil
Receiver's instance variables: 
superclass: PasteUpMorph
methodDict: a MethodDictionary(#innocuousName->(PartsBin>>#innocuousName "a CompiledMethod...etc...
format: 65557
instanceVariables: nil
organization: ('dropping/grabbing' morphToDropFrom: wantsDroppedMorph:event:)
(...etc...
subclasses: nil
name: #PartsBin
classPool: a Dictionary(#Thumbnails->a Dictionary('Annotations'->a Thumbnail(92...etc...
sharedPools: nil
environment: Smalltalk
category: #'MorphicExtras-PartsBin'

[] in PartsBin>>listDirection:quadList:buttonClass:
Receiver: a PartsBin<Parts>(405319)
Arguments and temporary variables: 
<<error during printing>
Receiver's instance variables: 
bounds: 521 at 419 corner: 919 at 583
owner: an ObjectsTool<Objects>(4102703)
submorphs: {an IconicButton(2780364) . an IconicButton(845287) . an IconicButton...etc...
fullBounds: 521 at 419 corner: 919 at 583
color: (Color r: 1 g: 0.911 b: 0.984)
extension: a MorphExtension (639364) [externalName = Parts ]  [other:  (layoutP...etc...
borderWidth: 1
borderColor: (Color r: 0.861 g: 1 b: 0.722)
presenter: nil
model: nil
cursor: 1
padding: 3
backgroundMorph: nil
turtleTrailsForm: nil
turtlePen: nil
lastTurtlePositions: nil
isPartsBin: nil
indicateCursor: nil
wantsMouseOverHalos: nil
worldState: nil
griddingOn: nil

OrderedCollection>>do:
Receiver: an OrderedCollection(#(#PolygonMorph #arrowPrototype 'Arrow' 'A line with an arrowhead.  S...etc...
Arguments and temporary variables: 
aBlock: [closure] in PartsBin>>listDirection:quadList:buttonClass:
index: 18
Receiver's instance variables: 
array: #(#(#PolygonMorph #arrowPrototype 'Arrow' 'A line with an arrowhead.  Sh...etc...
firstIndex: 1
lastIndex: 20

PartsBin>>listDirection:quadList:buttonClass:
Receiver: a PartsBin<Parts>(405319)
Arguments and temporary variables: 
aListDirection: #leftToRight
quadList: an OrderedCollection(#(#PolygonMorph #arrowPrototype 'Arrow' 'A line ...etc...
buttonClass: IconicButton
Receiver's instance variables: 
bounds: 521 at 419 corner: 919 at 583
owner: an ObjectsTool<Objects>(4102703)
submorphs: {an IconicButton(2780364) . an IconicButton(845287) . an IconicButton...etc...
fullBounds: 521 at 419 corner: 919 at 583
color: (Color r: 1 g: 0.911 b: 0.984)
extension: a MorphExtension (639364) [externalName = Parts ]  [other:  (layoutP...etc...
borderWidth: 1
borderColor: (Color r: 0.861 g: 1 b: 0.722)
presenter: nil
model: nil
cursor: 1
padding: 3
backgroundMorph: nil
turtleTrailsForm: nil
turtlePen: nil
lastTurtlePositions: nil
isPartsBin: nil
indicateCursor: nil
wantsMouseOverHalos: nil
worldState: nil
griddingOn: nil

PartsBin>>listDirection:quadList:
Receiver: a PartsBin<Parts>(405319)
Arguments and temporary variables: 
aListDirection: #leftToRight
quadList: an OrderedCollection(#(#PolygonMorph #arrowPrototype 'Arrow' 'A line ...etc...
Receiver's instance variables: 
bounds: 521 at 419 corner: 919 at 583
owner: an ObjectsTool<Objects>(4102703)
submorphs: {an IconicButton(2780364) . an IconicButton(845287) . an IconicButton...etc...
fullBounds: 521 at 419 corner: 919 at 583
color: (Color r: 1 g: 0.911 b: 0.984)
extension: a MorphExtension (639364) [externalName = Parts ]  [other:  (layoutP...etc...
borderWidth: 1
borderColor: (Color r: 0.861 g: 1 b: 0.722)
presenter: nil
model: nil
cursor: 1
padding: 3
backgroundMorph: nil
turtleTrailsForm: nil
turtlePen: nil
lastTurtlePositions: nil
isPartsBin: nil
indicateCursor: nil
wantsMouseOverHalos: nil
worldState: nil
griddingOn: nil

ObjectsTool>>installQuads:fromButton:
Receiver: an ObjectsTool<Objects>(4102703)
Arguments and temporary variables: 
quads: an OrderedCollection(#(#PolygonMorph #arrowPrototype 'Arrow' 'A line wit...etc...
aButton: a SimpleButtonMorph(3690148)
aPartsBin: a PartsBin<Parts>(405319)
sortedQuads: an OrderedCollection(#(#PolygonMorph #arrowPrototype 'Arrow' 'A li...etc...
oldResizing: #spaceFill
Receiver's instance variables: 
bounds: 520 at 304 corner: 920 at 584
owner: a PasteUpMorph(2434915) [world]
submorphs: {a PartsBin<Parts>(405319) . an AlignmentMorph<TabPane>(1239479) . a...etc...
fullBounds: 520 at 304 corner: 920 at 584
color: (Color r: 1 g: 0.85 b: 0.975)
extension: a MorphExtension (997972) [externalName = Objects ]  [other:  (layou...etc...
borderWidth: 1
borderColor: (Color r: 0.9 g: 0.801 b: 0.2)
searchString: nil
modeSymbol: #categories

[] in ObjectsTool>>showCategory:fromButton:
Receiver: an ObjectsTool<Objects>(4102703)
Arguments and temporary variables: 
aCategoryName: 'Graphics'
aButton: a SimpleButtonMorph(3690148)
quads: an OrderedCollection(#(#PolygonMorph #arrowPrototype 'Arrow' 'A line wit...etc...
Receiver's instance variables: 
bounds: 520 at 304 corner: 920 at 584
owner: a PasteUpMorph(2434915) [world]
submorphs: {a PartsBin<Parts>(405319) . an AlignmentMorph<TabPane>(1239479) . a...etc...
fullBounds: 520 at 304 corner: 920 at 584
color: (Color r: 1 g: 0.85 b: 0.975)
extension: a MorphExtension (997972) [externalName = Objects ]  [other:  (layou...etc...
borderWidth: 1
borderColor: (Color r: 0.9 g: 0.801 b: 0.2)
searchString: nil
modeSymbol: #categories

BlockClosure>>ensure:
Receiver: [closure] in ObjectsTool>>showCategory:fromButton:
Arguments and temporary variables: 
aBlock: [closure] in CursorWithMask(Cursor)>>showWhile:
complete: nil
returnValue: nil
Receiver's instance variables: 
outerContext: ObjectsTool>>showCategory:fromButton:
startpc: 137
numArgs: 0

CursorWithMask(Cursor)>>showWhile:
Receiver: ((CursorWithMask
extent: 16 at 16
depth: 1
fromArray: #(
2r0
2r11111111111111000000000...etc...
Arguments and temporary variables: 
aBlock: [closure] in ObjectsTool>>showCategory:fromButton:
oldcursor: ((CursorWithMask
extent: 16 at 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)

ObjectsTool>>showCategory:fromButton:
Receiver: an ObjectsTool<Objects>(4102703)
Arguments and temporary variables: 
aCategoryName: 'Graphics'
aButton: a SimpleButtonMorph(3690148)
Receiver's instance variables: 
bounds: 520 at 304 corner: 920 at 584
owner: a PasteUpMorph(2434915) [world]
submorphs: {a PartsBin<Parts>(405319) . an AlignmentMorph<TabPane>(1239479) . a...etc...
fullBounds: 520 at 304 corner: 920 at 584
color: (Color r: 1 g: 0.85 b: 0.975)
extension: a MorphExtension (997972) [externalName = Objects ]  [other:  (layou...etc...
borderWidth: 1
borderColor: (Color r: 0.9 g: 0.801 b: 0.2)
searchString: nil
modeSymbol: #categories


--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #first
SectorMorph>>computeBounds
SectorMorph(PolygonMorph)>>borderStyle:
SectorMorph(BorderedMorph)>>borderInitialize
SectorMorph(BorderedMorph)>>initialize
SectorMorph(PolygonMorph)>>initialize
SectorMorph>>initialize
SectorMorph(Morph)>>initializeToStandAlone
SectorMorph class(Morph class)>>newStandAlone
PartsBin class>>thumbnailForQuad:color:
[] in PartsBin>>listDirection:quadList:buttonClass:
OrderedCollection>>do:
PartsBin>>listDirection:quadList:buttonClass:
PartsBin>>listDirection:quadList:
ObjectsTool>>installQuads:fromButton:
[] in ObjectsTool>>showCategory:fromButton:
BlockClosure>>ensure:
CursorWithMask(Cursor)>>showWhile:
ObjectsTool>>showCategory:fromButton:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SimpleButtonMorph>>doButtonAction
SimpleButtonMorph>>mouseDown:
SimpleButtonMorph(Morph)>>handleMouseDown:
MouseButtonEvent>>sentTo:
SimpleButtonMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
[] in MorphicEventDispatcher>>dispatchMouseDown:with:
BlockClosure>>ensure:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
SimpleButtonMorph(Morph)>>processEvent:using:
[] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
Array(SequenceableCollection)>>do:
AlignmentMorph(Morph)>>submorphsDo:
MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
[] in MorphicEventDispatcher>>dispatchMouseDown:with:
BlockClosure>>ensure:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
AlignmentMorph(Morph)>>processEvent:using:
[] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
Array(SequenceableCollection)>>do:
ObjectsTool(Morph)>>submorphsDo:
MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
[] in MorphicEventDispatcher>>dispatchMouseDown:with:
BlockClosure>>ensure:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
ObjectsTool(Morph)>>processEvent:using:
[] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
Array(SequenceableCollection)>>do:
PasteUpMorph(Morph)>>submorphsDo:
MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
[] in MorphicEventDispatcher>>dispatchMouseDown:with:
BlockClosure>>ensure:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
PasteUpMorph(Morph)>>processEvent:using:
[] in PasteUpMorph>>processEvent:using:
-- and more not shown --
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20180512/6050b86f/attachment-0001.html>


More information about the Squeak-dev mailing list