I think this might also be of interest to people here.

-------- Přeposlaná zpráva --------
> Od: Robert Pearce <[email protected]>
> Komu: [email protected]
> Předmět: Re: g_assert vs. g_return_if_fail
> Datum: Wed, 20 Jan 2010 23:00:58 +0000
> 
> Hi Jiří,
> 
> On Wed, 20 Jan 2010 23:04:34 +0100 you wrote:
> > 
> > No problem. I'm just wondering why there are two methods that do the
> > same thing just slightly differently, 
> 
> They're not the same thing - one of them gives up on a particular function, 
> the other aborts the application.
> 
> > while one of them shouldn't be
> > used.
> 
> I don't believe anyone said that. Somebody did say that g_assert should not 
> be used where g_return_if_fail is used, because they do different things.
> 
> > So I guess my question is: What are the use cases for
> > g_return_if_fail and what are the use cases for g_assert? (GLib newbie
> > here)
> 
> You should use g_assert in code under development to make explicit the 
> assumptions of that code. So if your function does not handle the case of 
> SomeVariable being negative, because you cannot envisage a case where it 
> could ever be negative, then it is appropriate to add g_assert ( SomeVariable 
> >= 0 ) at that point. If your assumption turns out to be wrong then it will 
> become obvious during development.
> 
> You should use g_return_if_fail to cope with bad arguments to functions when 
> you don't have control of the caller. This is the case in library functions, 
> of course, which is why Gtk widget implementations use it a lot. For example, 
> in the gtk_label_set_text implementation there's several g_return_if_fail 
> tests of the first argument being a pointer to a GtkLabel, and the second 
> being some text. If the programmer using the library gets this wrong it's not 
> up to the library to crash his program for him; that would be damned annoying 
> at the very least. But if the check wasn't there and the programmer got it 
> wrong then the library probably would crash with a mystery segfault. So 
> writers of libraries should use g_return_if_fail liberally, because it 
> protects the user of the library and provides more helpful responses to 
> mistakes.
> _______________________________________________
> gtk-list mailing list
> [email protected]
> http://mail.gnome.org/mailman/listinfo/gtk-list

Attachment: signature.asc
Description: Toto je digitálně podepsaná část zprávy

_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to