[Cuis] Save as... DNU

Juan Vuletich juan at jvuletich.org
Wed Apr 15 08:34:54 CDT 2015


Hi Dan,

I still can't reproduce it, so we need to be careful with all details.
I do this, and I can't reproduce it:
- Running in Windows 7
- Downloaded 
http://www.mirandabanda.org/files/Cog/VM/VM.r3308/cogwin-15.14.3308.zip
- Unzip it in a new, empty directory
- To the directory that contains Squeak.exe, copy a (never saved) 
Cuis4.2-2239.image, changes and sources files
- Drag the image to the exe in Windows explorer
- Left click (to open world menu) a few pixels above the Transcript and 
a few pixels left of the Text Editor
- Left Click on "Open..."
- Left Click on "Workspace". A Workspace opens, close to the top of the 
Cuis Display, and uncovering "Tran" on the Transcript window label
- Type: x _ Morph new openInWorld
- alt-d
- Move the mouse a few pixels above the Transcript and a few pixels left 
of the Workspace
- left click (to open world menu).
- left click on "Save options..."
- left click on "Save as..."
- type: pp
- click on accept
- a warning about saving in Cog opens. Click on "yes"
- No walkback occured.

Please do exactly as I did, maybe waiting a couple of seconds between 
steps. I think now it won't happen to you either. If so, then try to 
find what you did differently, and tell me in enough detail so I can 
reproduce.

If with my steps above you can still reproduce the problem, then I'll 
need you to do some debugging for me. The walkback happens because some 
morph is in the submorphs instance variable of the World, but it has its 
owner set to nil (not set to the world). Is this the case? Which morph 
is it? Start all over again and try:
x _ Morph new openInWorld.
Morph allInstances
Morph allInstances collect: [ :each | each world ].

You should have just one instance of Morph, and its world should be a 
PasteUpMorph. If its owner is nil, you can hack #privateOwner: (the only 
place where the owner is set) and add something like
     self class == Morph ifTrue: [ "So all the rest continues to work as 
usual"
         '-----'print.
         owner print.
         aMorph print.
         thisContext printStack: 10.
         '=========' print ].

Welcome to the world of deep Morphic debugging and hacking!

Maybe this helps you understand what's happening. If so, please tell us. 
If not, well, please report back on your experience and results, and we 
keep working on it.

Thanks,
Juan Vuletich

On 4/14/2015 4:47 PM, Dan Norton wrote:
> On 14 Apr 2015 at 10:22, Juan Vuletich wrote:
>
>> Hi Dan,
>>
>> I still can not reproduce the problem. Does it happen on a stock
>> image? In
>> any case, in today's commit, I removed code for shadows, so for
>> sure
>> behavior will be different.
>>
>> In any case, if this happens in an image of yours, and not in a
>> stock
>> image, you might email me the image privately and I can take a
>> look.
>>
> Hmmm. I get it consistently on a 2239 stock image right out of the box (zip file downloaded
> from GitHub) as well as earlier ones - not my image. Are you doing Save as... ? The blue
> morph rectangle is in the upper left or anywhere. Once it's deleted there is no problem.
> Running 'Doze 7 on a desktop.
>
> Ran across this doing a save-as with some morphs unintentionally left open.

Saving an image with any stuff on it should work Ok!.

>> On Tue, April 14, 2015 9:37 am, Dan Norton wrote:
>>> On 14 Apr 2015 at 9:03, Juan Vuletich wrote:
>>>
>>>
>>>> Hi Dan,
>>>>
>>>>
>>>> On 4/12/2015 4:10 PM, Dan Norton wrote:
>>>> Open a basic morph:
>>>>    x := Morph new openInWorld.
>>>>
>>>>
>>>>  From the Save options menu, do a:
>>>>    Save as...<foo>
>>>>
>>>>
>>>> Get a DNU.
>>>>
>>>>
>>>> If x is deleted, then Save as... completes normally.
>>>>
>>>>
>>>>
>>>> I could not reproduce this. Can you give more specific steps to
>>>> reproduce? Also, a copy of the stack trace would be helpful.
>>>>
>>>> Cheers,
>>>> Juan Vuletich
>>>>
>>> Reference to "basic morph" was poor. Should be:
>>>
>>>
>>> In a Workspace do:
>>> x := Morph new openInWorld. then, Save as...<foo>  and get:
>>>
>>> UndefinedObject(Object)>>doesNotUnderstand: #extent
>>> BitBltCanvas class(MorphicCanvas class)>>forShadowOver:
>>> Morph>>ownShadowForm
>>> Morph>>morphContainsPoint:
>>> Morph>>fullContainsPoint:
>>> MouseEvent(MorphicEvent)>>dispatchWith:localPosition:
>>> Morph>>dispatchEvent:localPosition:
>>> [] in MouseEvent(MorphicEvent)>>dispatchWith:localPosition:
>>> Array(SequenceableCollection)>>do:
>>> PasteUpMorph(Morph)>>submorphsDo:
>>> MouseEvent(MorphicEvent)>>dispatchWith:localPosition:
>>> PasteUpMorph(Morph)>>dispatchEvent:localPosition:
>>> HandMorph>>startMouseDispatch:
>>> MouseEvent>>startDispatchFrom:
>>> HandMorph>>startEventDispatch:
>>> MouseOverHandler>>processMouseOver:
>>> HandMorph>>startMouseDispatch:
>>> MouseButtonEvent(MouseEvent)>>startDispatchFrom:
>>> HandMorph>>startEventDispatch:
>>>





More information about the Cuis mailing list