Hi,
I noticed that in some complex updating between panels, using an external announcer, some
of the update subscriptions were not removed when the browser is closed. I debugged a
little and I founded that this implementation:
GLMUpdateAction>>unregisterFromAllAnnouncements
announcerObjects ifNotNil: [
announcerObjects do: [:each |
each unsubscribe: self ] ]
is bugged, because if announcerObjects are not previously computed (and in some cases
that's what happens), the subscription is not removed.
This implementation (just using the accessor instead the direct object), solves the
problem (but I don't know is it's a right fix, and it should be a fix in other
place)
GLMUpdateAction>>unregisterFromAllAnnouncements
self announcerObjects ifNotNil: [ :objects |
objects do: [:each |
each unsubscribe: self ] ]
Cheers,
Esteban