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