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
>>
>
>

Reply via email to