Ben Pfaff <b...@cs.stanford.edu> writes:

> John Darrington <j...@darrington.wattle.id.au> writes:
>
>> On Sat, Jul 07, 2012 at 11:49:16PM -0700, Ben Pfaff wrote: 
>>
>>      The code added to psppire_data_window_dispose() in this commit
>>      should probably go in a "finalize" function instead but there seems
>>      to be a separate problem with references to PsppireVarSheet such
>>      that if this new code is in "finalize" then dataset_destroy() will
>>      call dict_clear() which will invoke the callbacks for PsppireDict
>>      which will try to access the destroyed window.
>>
>> Your description seems to suggest to me, that either PsppireDict should 
>> keep a reference to the window, or the callbacks should be disconnected
>> or rendered safe when the window is destroyed.
>
> The former doesn't sound like a good idea to me, because
> PsppireDict shouldn't know anything about the window.
>
> The latter makes sense, and in fact PsppireDict *does* disconnect
> the callbacks when the PsppireDict is destroyed.  The issue is
> that the PsppireDict isn't getting destroyed because something is
> holding its reference count artificially high.
>
> For now I've pushed this commit but we do need to figure out why
> the PsppireDict isn't getting destroyed.  I've been trying to
> figure that out all evening and have fixed a few minor bugs along
> the way but still haven't figured out the main issue.  Better
> luck tomorrow night I guess.

I fixed the reference leak and moved the PsppireDataWindow code
to a finalize function.

_______________________________________________
pspp-dev mailing list
pspp-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/pspp-dev

Reply via email to