Now I think I solved the issue. At least, if you remove a class from the system that defined a keymapping, there is no reference to an obsolete class anymore.
background: the keymap registration works in three steps: 1. collect methods with pragma <keymap> 2. build the registration items with one builder-instance (this builder collects the items too). 3. register all of the collected items. my change is at the third step, instead of working on the collection of the builder, I make a copy and remove all items from the builder. That way the builder does not hold a reference to the shortcut items after they went to the registry. nicolai 2015-06-01 22:16 GMT+02:00 Nicolai Hess <[email protected]>: > > > 2015-06-01 22:06 GMT+02:00 Eliot Miranda <[email protected]>: > >> >> >> On Sat, May 30, 2015 at 8:20 AM, Nicolai Hess <[email protected]> wrote: >> >>> >>> >>> 2015-05-30 16:01 GMT+02:00 Sean P. DeNigris <[email protected]>: >>> >>>> Nicolai Hess wrote >>>> > I don't fully understand what to change. >>>> >>>> If Spur will be ready for the next release, why don't we just wait... >>>> >>> >>> I would like to better understand what is the problem and I am sure >>> there is some kind of software pattern to prevent this >>> circular reference situation. >>> >> >> Yes, they're called ephemerons. Read the Wikipedia page and the paper. >> They explain things well. http://en.wikipedia.org/wiki/Ephemeron >> > > Yes now I understand why ephemerons can solve this issue. > But what I was thinking of is, maybe we don't need this circular reference > for our keymapping registry, it looks like some the references only > there because we need this information during building the keymap but not > afterwards. > > > > >> >> >>> >>> >>> >>> >>>> >>>> >>>> >>>> ----- >>>> Cheers, >>>> Sean >>>> -- >>>> View this message in context: >>>> http://forum.world.st/untypeable-key-combination-tp4794607p4829511.html >>>> Sent from the Pharo Smalltalk Developers mailing list archive at >>>> Nabble.com. >>>> >>>> >>> >> >> >> -- >> best, >> Eliot >> > >
