[squeak-dev] A case where Morph copying fails

karl ramberg karlramberg at gmail.com
Thu Aug 11 16:42:13 UTC 2022


Also if you try to make a etoy script to a Holder (PasteUpMorph) you get a
DNU

11 August 2022 6:41:38.489087 pm

VM: Win32 - Smalltalk
Image: Squeak6.1alpha [latest update: #22144]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir
C:\Users\Karl\Downloads\Squeak6.0beta-22041-64bit-202206021410-Windows-x64
Trusted Dir
C:\Users\Karl\Downloads\Squeak6.0beta-22041-64bit-202206021410-Windows-x64\Karl
Untrusted Dir C:\Users\Karl\Documents\My Squeak

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

PasteUpMorph>>hands
Receiver: a PasteUpMorph<Holder>(2668797)
Arguments and temporary variables:

Receiver's instance variables:
bounds: 546 at 473 corner: 706 at 583
owner: a PasteUpMorph(2434915) [world]
submorphs: #()
fullBounds: 546 at 473 corner: 706 at 583
color: (Color r: 1 g: 0.907 b: 0.767)
extension: a MorphExtension (3889196) [sticky]  [externalName = Holder ]
 [play...etc...
borderWidth: 1
borderColor: (Color r: 1 g: 0.612 b: 0.03)
presenter: nil
model: a MorphicModel1(2821750)
cursor: 1
padding: 3
turtleTrailsForm: nil
turtlePen: nil
lastTurtlePositions: nil
isPartsBin: nil
indicateCursor: true
wantsMouseOverHalos: false
worldState: nil

PasteUpMorph>>primaryHand
Receiver: a PasteUpMorph<Holder>(2668797)
Arguments and temporary variables:

Receiver's instance variables:
bounds: 546 at 473 corner: 706 at 583
owner: a PasteUpMorph(2434915) [world]
submorphs: #()
fullBounds: 546 at 473 corner: 706 at 583
color: (Color r: 1 g: 0.907 b: 0.767)
extension: a MorphExtension (3889196) [sticky]  [externalName = Holder ]
 [play...etc...
borderWidth: 1
borderColor: (Color r: 1 g: 0.612 b: 0.03)
presenter: nil
model: a MorphicModel1(2821750)
cursor: 1
padding: 3
turtleTrailsForm: nil
turtlePen: nil
lastTurtlePositions: nil
isPartsBin: nil
indicateCursor: true
wantsMouseOverHalos: false
worldState: nil

UnscriptedPlayer(Player)>>getIsUnderMouse
Receiver: an UnscriptedPlayer (1695190) named Holder
Arguments and temporary variables:

Receiver's instance variables:
dependents: nil
costume: a PasteUpMorph<Holder>(2668797)
costumes: nil
patch: nil
index: nil

BooleanType(DataType)>>updatingTileForTarget:partName:getter:setter:
Receiver: a BooleanType named "Boolean"
Arguments and temporary variables:
aTarget: an UnscriptedPlayer (1695190) named Holder
partName: #getIsUnderMouse
getter: #getIsUnderMouse
setter: nil
aTile: a StringReadoutTile(168476) - #literal op= ''
displayer: an UpdatingStringMorph<readout string>(434587)nil
actualSetter: nil
Receiver's instance variables:
authoringStamp: ' 5/6/2022 '
properties: nil
elementSymbol: nil
naturalLanguageTranslations: nil
vocabularyName: #Boolean
categories: an OrderedCollection()
methodInterfaces: an IdentityDictionary()
object: nil
limitClass: nil
translationTable: nil

CategoryViewer>>readoutFor:type:readOnly:getSelector:putSelector:
Receiver: a CategoryViewer(1831999)
Arguments and temporary variables:
partName: #getIsUnderMouse
partType: #Boolean
readOnly: true
getSelector: #getIsUnderMouse
putSelector: nil
readout: nil
delta: nil
Receiver's instance variables:
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: {an AlignmentMorph(4146482)}
fullBounds: nil
color: (Color r: 0.8 g: 1 b: 0.8)
extension: a MorphExtension (1575669) [other:  (layoutProperties ->
(TableLayou...etc...
borderWidth: 0
borderColor: Color black
scriptedPlayer: an UnscriptedPlayer (1695190) named Holder
namePane: a BorderedMorph(3639285)
chosenCategorySymbol: #tests

CategoryViewer>>phraseForVariableFrom:
Receiver: a CategoryViewer(1831999)
Arguments and temporary variables:
aMethodInterface: a MethodInterface - wording: 'isUnderMouse' selector:
#getIsUnderMouse...etc...
anArrow: nil
slotName: #getIsUnderMouse
getterButton: a TileMorph(4135722) - #operator op= #getIsUnderMouse op= ''
cover: nil
inner: nil
aRow: a ViewerLine(1085320)
doc: 'whether the object is under the current mouse position'
setter: nil
tryer: nil
universal: false
hotTileForSelf: a TileMorph(4153103) - #objRef op= ''
spacer: a Morph(3800811)
buttonFont: a StrikeFont(Bitmap DejaVu Sans 7.5pt 96ppi 10px Normal)
varName: #isUnderMouse
Receiver's instance variables:
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: {an AlignmentMorph(4146482)}
fullBounds: nil
color: (Color r: 0.8 g: 1 b: 0.8)
extension: a MorphExtension (1575669) [other:  (layoutProperties ->
(TableLayou...etc...
borderWidth: 0
borderColor: Color black
scriptedPlayer: an UnscriptedPlayer (1695190) named Holder
namePane: a BorderedMorph(3639285)
chosenCategorySymbol: #tests

[] in UnscriptedPlayer(Object)>>tilePhrasesForMethodInterfaces:inViewer:
Receiver: an UnscriptedPlayer (1695190) named Holder
Arguments and temporary variables:
methodInterfaceList: {a MethodInterface - wording: 'color  sees' selector:
#color:sees:...etc...
aViewer: a CategoryViewer(1831999)
toSuppress: #()
interfaces: {a MethodInterface - wording: 'color  sees' selector:
#color:sees: ...etc...
aMethodInterface: a MethodInterface - wording: 'isUnderMouse' selector:
#getIsUnderMouse...etc...
resultType: #Boolean
Receiver's instance variables:
dependents: nil
costume: a PasteUpMorph<Holder>(2668797)
costumes: nil
patch: nil
index: nil

Array(SequenceableCollection)>>collect:
Receiver: {a MethodInterface - wording: 'color  sees' selector:
#color:sees: result type = Boolean ....etc...
Arguments and temporary variables:
aBlock: [closure] in
UnscriptedPlayer(Object)>>tilePhrasesForMethodInterfaces:inViewer:...etc...
newCollection: {a ViewerLine(3256609) . a ViewerLine(2368222) . nil . nil .
nil...etc...
index: 3
indexLimiT: 7
Receiver's instance variables:
{a MethodInterface - wording: 'color  sees' selector: #color:sees: result
type = Boolean ....etc...

UnscriptedPlayer(Object)>>tilePhrasesForMethodInterfaces:inViewer:
Receiver: an UnscriptedPlayer (1695190) named Holder
Arguments and temporary variables:
methodInterfaceList: {a MethodInterface - wording: 'color  sees' selector:
#color:sees:...etc...
aViewer: a CategoryViewer(1831999)
toSuppress: #()
interfaces: {a MethodInterface - wording: 'color  sees' selector:
#color:sees: ...etc...
Receiver's instance variables:
dependents: nil
costume: a PasteUpMorph<Holder>(2668797)
costumes: nil
patch: nil
index: nil

UnscriptedPlayer(Object)>>tilePhrasesForCategory:inViewer:
Receiver: an UnscriptedPlayer (1695190) named Holder
Arguments and temporary variables:
aCategorySymbol: #tests
aViewer: a CategoryViewer(1831999)
interfaces: {a MethodInterface - wording: 'color  sees' selector:
#color:sees: ...etc...
Receiver's instance variables:
dependents: nil
costume: a PasteUpMorph<Holder>(2668797)
costumes: nil
patch: nil
index: nil

CategoryViewer>>categoryWording:
Receiver: a CategoryViewer(1831999)
Arguments and temporary variables:
aCategoryWording: 'tests'
Receiver's instance variables:
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: {an AlignmentMorph(4146482)}
fullBounds: nil
color: (Color r: 0.8 g: 1 b: 0.8)
extension: a MorphExtension (1575669) [other:  (layoutProperties ->
(TableLayou...etc...
borderWidth: 0
borderColor: Color black
scriptedPlayer: an UnscriptedPlayer (1695190) named Holder
namePane: a BorderedMorph(3639285)
chosenCategorySymbol: #tests

CategoryViewer>>chosenCategorySymbol:
Receiver: a CategoryViewer(1831999)
Arguments and temporary variables:
aCategorySymbol: #tests
aCategory: an ElementCategory named tests
wording: 'tests'
Receiver's instance variables:
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: {an AlignmentMorph(4146482)}
fullBounds: nil
color: (Color r: 0.8 g: 1 b: 0.8)
extension: a MorphExtension (1575669) [other:  (layoutProperties ->
(TableLayou...etc...
borderWidth: 0
borderColor: Color black
scriptedPlayer: an UnscriptedPlayer (1695190) named Holder
namePane: a BorderedMorph(3639285)
chosenCategorySymbol: #tests

CategoryViewer>>chooseCategoryWhoseTranslatedWordingIs:
Receiver: a CategoryViewer(1831999)
Arguments and temporary variables:
aWording: #tests
Receiver's instance variables:
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: {an AlignmentMorph(4146482)}
fullBounds: nil
color: (Color r: 0.8 g: 1 b: 0.8)
extension: a MorphExtension (1575669) [other:  (layoutProperties ->
(TableLayou...etc...
borderWidth: 0
borderColor: Color black
scriptedPlayer: an UnscriptedPlayer (1695190) named Holder
namePane: a BorderedMorph(3639285)
chosenCategorySymbol: #tests

CategoryViewer>>initializeFor:categoryChoice:
Receiver: a CategoryViewer(1831999)
Arguments and temporary variables:
aPlayer: an UnscriptedPlayer (1695190) named Holder
aChoice: #tests
Receiver's instance variables:
bounds: 0 at 0 corner: 50 at 40
owner: nil
submorphs: {an AlignmentMorph(4146482)}
fullBounds: nil
color: (Color r: 0.8 g: 1 b: 0.8)
extension: a MorphExtension (1575669) [other:  (layoutProperties ->
(TableLayou...etc...
borderWidth: 0
borderColor: Color black
scriptedPlayer: an UnscriptedPlayer (1695190) named Holder
namePane: a BorderedMorph(3639285)
chosenCategorySymbol: #tests

StandardViewer>>categoryViewerFor:
Receiver: a StandardViewer(2968052)
Arguments and temporary variables:
categoryInfo: #tests
aViewer: a CategoryViewer(1831999)
Receiver's instance variables:
bounds: 0 at 0 corner: 550 at 40
owner: nil
submorphs: {an AlignmentMorph(2995911) . a SearchingViewer(3862515) . a
CategoryViewer...etc...
fullBounds: nil
color: (Color r: 0.572 g: 0.883 b: 0.572)
extension: a MorphExtension (2060252) [other:  (limitClass -> ProtoObject)
(lay...etc...
borderWidth: 1
borderColor: Color gray
scriptedPlayer: an UnscriptedPlayer (1695190) named Holder
firstPanel: nil

[] in StandardViewer>>addCategoryViewerFor:atEnd:
Receiver: a StandardViewer(2968052)
Arguments and temporary variables:
categoryInfo: #tests
atEnd: true
aViewer: nil
Receiver's instance variables:
bounds: 0 at 0 corner: 550 at 40
owner: nil
submorphs: {an AlignmentMorph(2995911) . a SearchingViewer(3862515) . a
CategoryViewer...etc...
fullBounds: nil
color: (Color r: 0.572 g: 0.883 b: 0.572)
extension: a MorphExtension (2060252) [other:  (limitClass -> ProtoObject)
(lay...etc...
borderWidth: 1
borderColor: Color gray
scriptedPlayer: an UnscriptedPlayer (1695190) named Holder
firstPanel: nil

FullBlockClosure(BlockClosure)>>ensure:
Receiver: [closure] in StandardViewer>>addCategoryViewerFor:atEnd:
Arguments and temporary variables:
aBlock: [closure] in CursorWithMask(Cursor)>>showWhile:
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: StandardViewer>>addCategoryViewerFor:atEnd:
startpcOrMethod: ([] in StandardViewer>>#addCategoryViewerFor:atEnd: "a
CompiledBlock...etc...
numArgs: 0
receiver: a StandardViewer(2968052)

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


--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #hands
PasteUpMorph>>hands
PasteUpMorph>>primaryHand
UnscriptedPlayer(Player)>>getIsUnderMouse
BooleanType(DataType)>>updatingTileForTarget:partName:getter:setter:
CategoryViewer>>readoutFor:type:readOnly:getSelector:putSelector:
CategoryViewer>>phraseForVariableFrom:
[] in UnscriptedPlayer(Object)>>tilePhrasesForMethodInterfaces:inViewer:
Array(SequenceableCollection)>>collect:
UnscriptedPlayer(Object)>>tilePhrasesForMethodInterfaces:inViewer:
UnscriptedPlayer(Object)>>tilePhrasesForCategory:inViewer:
CategoryViewer>>categoryWording:
CategoryViewer>>chosenCategorySymbol:
CategoryViewer>>chooseCategoryWhoseTranslatedWordingIs:
CategoryViewer>>initializeFor:categoryChoice:
StandardViewer>>categoryViewerFor:
[] in StandardViewer>>addCategoryViewerFor:atEnd:
FullBlockClosure(BlockClosure)>>ensure:
CursorWithMask(Cursor)>>showWhile:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StandardViewer>>addCategoryViewerFor:atEnd:
StandardViewer>>addCategoryViewerFor:
StandardViewer>>addCategoryViewer
StandardViewer>>initializeFor:barHeight:includeDismissButton:showCategories:
StandardViewer>>initializeFor:barHeight:includeDismissButton:
StandardViewer>>initializeFor:barHeight:
EtoysPresenter>>viewMorph:
PasteUpMorph(Morph)>>openViewerForArgument
HaloMorph>>openViewerForTarget:with:
EventHandler>>send:to:withEvent:fromMorph:
EventHandler>>mouseDown:fromMorph:
EllipseMorph(Morph)>>mouseDown:
EllipseMorph(Morph)>>handleMouseDown:
MouseButtonEvent>>sentTo:
EllipseMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
[] in MorphicEventDispatcher>>dispatchMouseDown:with:
FullBlockClosure(BlockClosure)>>ensure:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
EllipseMorph(Morph)>>processEvent:using:
EllipseMorph(Morph)>>processEvent:
[] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
Array(SequenceableCollection)>>do:
HaloMorph(Morph)>>submorphsDo:
MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
[] in MorphicEventDispatcher>>dispatchMouseDown:with:
FullBlockClosure(BlockClosure)>>ensure:
MorphicEventDispatcher>>dispatchMouseDown:with:
MorphicEventDispatcher>>dispatchEvent:with:
HaloMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>doProcessingForFocusEvent:with:
MorphicEventDispatcher>>dispatchFocusEventFully:with:
MorphicEventDispatcher>>dispatchFocusEventAllOver:with:
HaloMorph(SimpleHaloMorph)>>processFocusEvent:using:
HaloMorph(Morph)>>processFocusEvent:
[] in [] in [] in HandMorph>>sendFocusEvent:to:clear:
[] in ActiveEventVariable class(DynamicVariable class)>>value:during:
FullBlockClosure(BlockClosure)>>ensure:
ActiveEventVariable class(DynamicVariable class)>>value:during:
[] in ActiveEventVariable class>>value:during:
-- and more not shown --

On Thu, Aug 11, 2022 at 5:10 PM Tim Johnson <digit at sonic.net> wrote:

> Hi all,
>
> Fresh 6.0 image --
>
> 1) drag out a Holder from Supplies flap
> 2) drag out a Rectangle from Supplies flap
> 3) drop Rectangle into Holder  (note the Rectangle border becomes
> extra thick)
> 4) open a Halo over the Holder
> 5) try to click on the Green "copy/duplicate" button
> 6) get a DNU/MNU: MorphicModel1(Object) doesNotUnderstand:
> #copyUniClassWith:
>
> Last time I tried this, it actually behaved differently.  It was more
> like this:
>
> 1) Drag out a Holder
> 2) Drag out a Rectangle
> 3) Drop the Rectangle into the Holder
> 4) Copy the Holder using the Halo green copy/duplicate (this would work)
> 5) change the color of the embedded Rectangle via its inspector
> 6) Try to copy the Holder now (this would fail, again via #veryDeepCopy)
>
> It's also a little strange that the first Rectangle dropped into the
> Holder sees its border become thicker, while a second / third
> Rectangle do not see their border width change.
>
> Thanks,
> Tim
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220811/39d46fd7/attachment.html>


More information about the Squeak-dev mailing list