Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007506 [Squeak] Morphic minor always 04-16-10 03:56 04-16-10 03:57
Reporter wiz View Status public  
Assigned To
Priority none Resolution open  
Status assigned   Product Version trunk
Summary 0007506: Opened morphs are infinitely recursive when sent #storeOn:
Description
In a fresh squeak 9948 (RC5)

Open new project
Open workspace
Type:
 "Morph new openCenteredInWorld storeOn: (foo := String new writeStream) ."

Doit.

After a while stop with Alt-.

In the debugger look at the variable aStream.

Note the infinite loop.
Additional Information Basicly an opened morph tries to store its owner
Its owner tries to store its submorphs which include the opened morph.

The #storeOn: is very simplistic storing ivars index by index.

I did this in a context of curiosity and trying to find a way of serializing a morph in words s.t. the essentials of the morph could be recreated.

Since any use of this would have caused an immediately noticable problem I have concluded that no one uses this selector with morphs.

So there in no priority to solving the problem by itself.

There is a reasonable need to serialize a world other than the way it is currently done in projects.

a smarter, working StoreOn: would be useful for this.

Basically, store ivars by name. Keep a set of visited morphs and note the second time you are visiting to avoid the recursion.

Attached Files

- Relationships

There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
04-16-10 03:56 wiz New Issue
04-16-10 03:56 wiz Status new => assigned
04-16-10 03:56 wiz Assigned To  => KenCausey
04-16-10 03:57 wiz Assigned To KenCausey =>
04-16-10 03:57 wiz Category Any => Morphic
04-16-10 03:57 wiz Description Updated


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
34 total queries executed.
28 unique queries executed.
Powered by Mantis Bugtracker