I have a general question about why some Gnome libraries include code 
which deliberately crashes the app if it does something the library 
considers iincorrect instead of letting the app blunder on. Examples :-

gtk+ : gtkcontainer.c line 988
  gtk_container_remove (GtkContainer *container,
                      GtkWidget    *widget)
{
   g_return_if_fail (GTK_IS_CONTAINER (container));
   g_return_if_fail (GTK_IS_WIDGET (widget));

   /* When using the deprecated API of the toolbar, it is possible
    * to legitimately call this function with a widget that is not
    * a direct child of the container.
    */
   g_return_if_fail (GTK_IS_TOOLBAR (container) ||
                    widget->parent == GTK_WIDGET (container));
This crashes boinc client gui, app works fine if this is removed.

Glib : gthread-impl.c line 296
g_thread_init (GThreadFunctions* init)
{
   gboolean supported;

   if (thread_system_already_initialized)
     g_error ("GThread system may only be initialized once.");
This crashes sweep, which works oK if test is removed.

I found a similar assert in libxcb which crashed boincclient-gui and 
other apps until I removed it. So why are these apparently hostile lines 
of code there ? Shouldn't apps be allowed to do whatever they like ?

Thanks
Rod
-- 
-------------------------------------------------------------------------------------------------
http://distributedcomputing.info - find out how to make your pc work for 
the community
_______________________________________________
gnome-devel-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-devel-list

Reply via email to