Re: request for g_nullify_pointer and a question about weak refs
- From: Tim Janik <timj gtk org>
- To: Owen Taylor <otaylor redhat com>
- Cc: Sven Neumann <sven gimp org>,	Gtk+ Developers <gtk-devel-list gnome org>
- Subject: Re: request for g_nullify_pointer and a question about weak refs
- Date: Thu, 2 Aug 2001 07:28:10 +0200 (CEST)
On 1 Aug 2001, Owen Taylor wrote:
> Tim Janik <timj gtk org> writes:
> 
> > On 1 Aug 2001, Sven Neumann wrote:
> > 
> > > Hi,
> > > 
> > > can we please introduce something like gtk_widget_destroyed() to
> > > GLib or GObject? Despite from being horribly bad named, 
> > > gtk_widget_destroyed() is a very useful function for closures and
> > > destroy_notfiers, but it should definitely live in GLib. I'd
> > > suggest g_nullify_pointer() and I'd vote for marking 
> > > gtk_widget_destroyed() as deprecated once we have a better named
> > > function.
> > 
> > i think we discussed this earlier, at least partially.
> > 
> > owen basically argued in favour of keeping
> > void gtk_widget_destroyed(gpointer ignored_arg, gpointer *nullify_location);
> > since:
> > 1) it's usefull to connect to a bunch of signals, without even needing
> >    to use _swapped variants.
> > 2) people know it already, and it probably has been deployed in a bunch of
> >    third-party code.
> 
> Well, yes, I argued for 2) - there was no reason to deprecate something
> that still worked fine.
> 
> But no, I didn't argue that we should keep it because it was the
> best way of doing things.
> 
> What I argued was that rather than having a convenience handler,
> we should add a facility to glib to do this. And submitted
> a patch to do this (Subject: convenience functions)
> 
> In the discussion of how they should be named, I think:
> 
>  void g_object_add_weak_pointer    (GObject  *object,
>                                     gpointer *location);
>  void g_object_remove_weak_pointer (GObject  *object,
>                                     gpointer *location);
hm, i'd say that's just convenience then. lemme put it this way,
any objection to:
+void g_nullify_pointer (gpointer *nullify_location);
+#define g_object_add_weak_pointer(o,wp)    g_object_weak_ref (o, g_nullify_pointer, wp)
+#define g_object_remove_weak_pointer(o,wp) g_object_weak_unref (o, g_nullify_pointer, wp)
> 
> Were preferred.
> 
> Regards,
>                                         Owen
> 
---
ciaoTJ
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]