Omnibase forgetAllGrabcommandsFrom: problem

Ned Konz ned at bike-nomad.com
Mon Jun 30 23:53:00 UTC 2003


On Monday 30 June 2003 04:12 pm, Derek Brans wrote:
> CommandHistory class>>forgetAllGrabCommandsFrom:
>
> This method gets executed when saving and quitting the image.  The
> method seems to enumerate a whole bunch of objects in the image,
> starting at nil. 

> ODBReference>>doesNotUnderstand:
> [] in CommandHistory class>>forgetAllGrabCommandsFrom:

Three possible fixes come to mind:

1. Define ODBReference>>isMorph to return false (don't know if this is 
appropriate).

2. rewrite forgetAllGrabCommandsFrom: to look something like the 
rather ugly:

(((Smalltalk systemNavigation allImplementorsOf: #isMorph)
	asSet collect: [ :ea | ea actualClass ]) remove: Object; yourself)
		do: [ :cls | cls allSubInstancesDo: [ :ea |
			ea isMorph ifTrue: [ ea removeProperty: #undoGrabCommand ] ].

This assumes, of course, that you don't have objects that dynamically 
decide they're Morph-like.

3. Make sure that there are no ODBReference objects around when 
CommandHistory class does its shutdown (probably by sticking 
something before CommandHistory on the shutdown list that can get rid 
of all the ODBReference objects).

-- 
Ned Konz
http://bike-nomad.com
GPG key ID: BEEA7EFE



More information about the Squeak-dev mailing list