I'm not convinced that some of the dispose routines that we have are
very reliable at catching reentrancy.

if (thing->obj != NULL)
  g_object_unref (thing->obj);
thing->obj = NULL;

The problem is that g_object_unref can cause its argument's dispose 
routine to run.  Which in turn, could unref a reference it holds on 
us, and hence run our dispose routine.  Since we haven't yet set thing->obj
to NULL, it will call g_object_unref on it again.

Have I analysed this correctly?

J'

-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://keys.gnupg.net or any PGP keyserver for public key.

Attachment: signature.asc
Description: Digital signature

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

Reply via email to