GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'



Hi,

I'm quite new to gtk, and I'm writing a application for school.
When I click on an Item in my menu bar an then click a couple of times on Ok (in the following dialogs) I always get this error in the end:

   /(gtkP:5837): GLib-GObject-WARNING **: instance of invalid
   non-instantiatable type `(null)'

   (gtkP:5837): GLib-GObject-CRITICAL **: g_signal_emit_valist:
   assertion `G_TYPE_CHECK_INSTANCE (instance)' failed/

But it gets worse, every now and then I get a segmentation error instead of these warnings. I searched google and found that it had to with a double free() of some object or a wrong version of audacity or wxwidgets.

I can't find a way to fix this problem and it's really annoying me.

this is some output I got when I put #define G_THREADS_ENABLED in my main gtk file:

   /wordt nu weergegeven.
   1

   (gtkP:5837): GLib-GObject-WARNING **: instance of invalid
   non-instantiatable type `(null)'

   (gtkP:5837): GLib-GObject-CRITICAL **: g_signal_emit_valist:
   assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
   2

   (gtkP:5837): GLib-GObject-WARNING **: instance of invalid
   non-instantiatable type `(null)'

   (gtkP:5837): GLib-GObject-CRITICAL **: g_signal_emit_valist:
   assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

   (gtkP:5837): GLib-GObject-WARNING **: instance of invalid
   non-instantiatable type `(null)'

   (gtkP:5837): GLib-GObject-CRITICAL **: g_signal_emit_valist:
   assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

   (gtkP:5837): GLib-GObject-WARNING **: instance of invalid
   non-instantiatable type `(null)'

   (gtkP:5837): GLib-GObject-CRITICAL **: g_signal_emit_valist:
   assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
   1

   (gtkP:5837): GLib-GObject-WARNING **: instance of invalid
   non-instantiatable type `(null)'

   (gtkP:5837): GLib-GObject-CRITICAL **: g_signal_emit_valist:
   assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
   2
   1
   *** glibc detected *** ./gtkP: malloc(): memory corruption:
   0x08307780 ***
   ======= Backtrace: =========
   /lib/tls/i686/cmov/libc.so.6[0xb76eeef3]
   /lib/tls/i686/cmov/libc.so.6(__libc_malloc+0x7e)[0xb76f060e]
   /lib/tls/i686/cmov/libc.so.6(vasprintf+0x23)[0xb76e57a3]
   /usr/lib/libglib-2.0.so.0(g_vasprintf+0x37)[0xb781f037]
   /usr/lib/libglib-2.0.so.0(g_strdup_vprintf+0x26)[0xb7811026]

    /usr/lib/libglib-2.0.so.0(g_logv+0x2bc)[0xb77fe4fc]
   /usr/lib/libglib-2.0.so.0(g_log+0x29)[0xb77fe749]
   /usr/lib/libgobject-2.0.so.0(g_type_check_instance+0x6c)[0xb788905c]
   /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x25)[0xb7880d85]
   /usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0xb78817e9]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7d02f04]
   /usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x49)[0xb787c9d9]
   /usr/lib/libgobject-2.0.so.0[0xb786de49]
   /usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x20d)[0xb786f70d]
   /usr/lib/libgobject-2.0.so.0[0xb78808bf]
   /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x8c7)[0xb7881627]
   /usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0xb78817e9]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7cebe21]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7de74a1]
   /usr/lib/libgobject-2.0.so.0(g_object_run_dispose+0x50)[0xb7871cc0]
   /usr/lib/libgtk-x11-2.0.so.0(gtk_object_destroy+0x7e)[0xb7cebb2e]
   /usr/lib/libgtk-x11-2.0.so.0(gtk_widget_destroy+0x45)[0xb7de7755]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7c7fa48]
   /usr/lib/libgtk-x11-2.0.so.0(gtk_container_foreach+0x6b)[0xb7c355fb]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7c35f40]
   /usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x49)[0xb787c9d9]
   /usr/lib/libgobject-2.0.so.0[0xb786de49]
   /usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x20d)[0xb786f70d]
   /usr/lib/libgobject-2.0.so.0[0xb78808bf]
   /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x8c7)[0xb7881627]
   /usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0xb78817e9]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7cebe21]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7de74a1]
   /usr/lib/libgobject-2.0.so.0(g_object_run_dispose+0x50)[0xb7871cc0]
   /usr/lib/libgtk-x11-2.0.so.0(gtk_object_destroy+0x7e)[0xb7cebb2e]
   /usr/lib/libgtk-x11-2.0.so.0(gtk_widget_destroy+0x45)[0xb7de7755]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7bfa1b0]
   /usr/lib/libgtk-x11-2.0.so.0(gtk_container_foreach+0x6b)[0xb7c355fb]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7c35f40]
   /usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x49)[0xb787c9d9]
   /usr/lib/libgobject-2.0.so.0[0xb786de49]
   /usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x20d)[0xb786f70d]
   /usr/lib/libgobject-2.0.so.0[0xb78808bf]
   /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x8c7)[0xb7881627]
   /usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0xb78817e9]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7cebe21]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7de74a1]
   /usr/lib/libgobject-2.0.so.0(g_object_run_dispose+0x50)[0xb7871cc0]
   /usr/lib/libgtk-x11-2.0.so.0(gtk_object_destroy+0x7e)[0xb7cebb2e]
   /usr/lib/libgtk-x11-2.0.so.0(gtk_widget_destroy+0x45)[0xb7de7755]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7bf656f]
   /usr/lib/libgtk-x11-2.0.so.0(gtk_container_foreach+0x6b)[0xb7c355fb]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7c35f40]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7df6931]
   /usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x49)[0xb787c9d9]
   /usr/lib/libgobject-2.0.so.0[0xb786de49]
   /usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x12b)[0xb786f62b]
   /usr/lib/libgobject-2.0.so.0[0xb78808bf]
   /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x8c7)[0xb7881627]
   /usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0xb78817e9]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7cebe21]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7de74a1]
   /usr/lib/libgtk-x11-2.0.so.0[0xb7df3826]
   ======= Memory map: ========
08048000-08053000 r-xp 00000000 03:04 41991552 /home/sibren/humane/project/gtkP 08053000-08054000 rw-p 0000a000 03:04 41991552 /home/sibren/humane/project/gtkP
   08054000-08366000 rw-p 08054000 00:00 0          [heap]
   b6700000-b6721000 rw-p b6700000 00:00 0
   b6721000-b6800000 ---p b6721000 00:00 0
   b688d000-b6898000 r-xp 00000000 03:04 16779197   /lib/libgcc_s.so.1
   b6898000-b6899000 rw-p 0000a000 03:04 16779197   /lib/libgcc_s.so.1
b68aa000-b6aba000 r--p 00000000 03:04 9318706 /usr/share/icons/hicolor/icon-theme.cache b6aba000-b7161000 r--p 00000000 03:04 1603758 /usr/share/icons/gnomAborted (core dumped)/

and this is a example of code which produces the output (I guess), for example when I access openA() en press the Ok button

   /#include "PopUp.h"
   #include "Tooltips.h"
   #include <stdlib.h>
   #include <stdio.h>
   #include <pthread.h>

   gdouble size = 0xFFFFFFF;

   static GtkTooltips *tooltips2;

   struct data
   {
     GtkWidget *dialog;
     short respons;
   };

   typedef struct data dataS;

   static void destroy(GtkWidget *widget, gpointer data);
   static void setResponse(GtkWidget *widget, gpointer data);
   static gboolean delete_event(GtkWidget *widget, GdkEvent *event,
   gpointer data);
   static void warning(GtkWidget *widget, gpointer data);
   static void  makeMessage(GtkWidget *dialog, gchar *img, gchar
   *textB, gchar *event, dataS *resp, GCallback func, gpointer data);
   static void voegtoe(GtkWidget *widget, gpointer data);
   static void verwijder(GtkWidget *widget, gpointer data);
   static void wijzig(GtkWidget *widget, gpointer data);
   static void makeInp(GtkWidget *frame, GtkWidget *fixed, short xOff,
   short yOff, short xL, short yL, char *label, short max);

   void instellingen(GtkWidget *widget, gpointer data);
   GdkColor setColor(guint red, guint green, guint blue);
   void maakLettertype(GtkWidget *fixedContainer);
   void maakBalk(GtkWidget *fixedContainer);
   static void openF(GtkWidget *widget, gpointer data);
   static void openP(GtkWidget *widget, gpointer data);
   static void credit(GtkWidget *widget, gpointer data);
   static void nieuwA(GtkWidget *widget, gpointer data);
   static void openA(GtkWidget *widget, gpointer data);
   static void slaOp(GtkWidget *widget, gpointer data);
   static void slaOpAls(GtkWidget *widget, gpointer data);
   static void setDialog(GtkWidget *dialog, short xSize, short ySize);
   static GSList* makeRadio(GtkWidget *radio, GSList *groep, GtkWidget
   *fixed, char *label, short xOff, short yOff);
   static void makeCheck(char* label, GtkWidget *fixed, short xOff,
   short yOff);
   static void ok(GtkWidget *widget, gpointer data);
   static short annuleren(GtkWidget *widget, gpointer data);

   static void ok(GtkWidget *widget, gpointer data)
   {
     GtkWidget *dialog;
     GtkWidget* fixed;
     GtkWidget* ok;
     dataS resp, resp2;
     gboolean ret;

     dialog = gtk_dialog_new();
     setDialog(dialog, 300, 150);

     resp.dialog = dialog;
     resp.respons = TRUE;
     resp2.dialog = dialog;
     resp2.respons = FALSE;

     fixed = gtk_fixed_new();
makeInp(NULL, fixed, 19, 19, -1, -1, "Dit is slecht een
   demo-versie.\nDeze taak wordt dus niet\necht uitgevoerd.", -1);
     gtk_widget_show(fixed);
     gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), fixed,
   TRUE, TRUE, 3);

     /* KNOPPEN AANMAKEN */
     makeMessage(dialog, "gtk-apply", "Ok", "clicked", &resp,
   (GCallback) destroy ,dialog);
     gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);  /*
   seperator afzetten */

     gtk_dialog_response(GTK_DIALOG(data), TRUE);
     gtk_dialog_run(GTK_DIALOG(dialog));
   }

   static short annuleren(GtkWidget *widget, gpointer data)
   {
     return FALSE;
   }

   static void makeCheck(char* label, GtkWidget *fixed, short xOff,
   short yOff)
   {
     GtkWidget *button;

     button = gtk_check_button_new_with_label(label);
gtk_fixed_put(GTK_FIXED(fixed), button, xOff, yOff); gtk_widget_show(button);
   }

   static GSList* makeRadio(GtkWidget *radio, GSList *groep, GtkWidget
   *fixed, char *label, short xOff, short yOff)
   {
     GSList *list;

     list = NULL;

     if (groep != NULL)
       radio = gtk_radio_button_new_with_label(groep, label);
     else
     {
       radio = gtk_radio_button_new_with_label(NULL, label);
       list = gtk_radio_button_get_group (GTK_RADIO_BUTTON(radio));
     }

gtk_fixed_put(GTK_FIXED(fixed), radio, xOff, yOff); gtk_widget_show(radio);

     return list;
   }

   static void setDialog(GtkWidget *dialog, short xSize, short ySize)
   {
     gtk_widget_set_usize (GTK_WIDGET(dialog), xSize, ySize);
     gtk_window_set_title (GTK_WINDOW(dialog), "SoCalledAdressBook");
     gtk_container_set_border_width( GTK_CONTAINER (dialog), 10 );
     gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
     gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
     gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
   }

   static void makeMessage(GtkWidget *dialog, gchar *img, gchar *textB,
   gchar *event, dataS *resp, GCallback func, gpointer data)
   {
     GtkWidget *button;
     GtkWidget *imgB;
     GtkWidget *hbox;
     GtkWidget *label;
button = gtk_button_new();
     hbox = gtk_hbox_new (FALSE, 10);
     gtk_widget_show (hbox);
     imgB = gtk_image_new_from_stock (img, GTK_ICON_SIZE_LARGE_TOOLBAR);
     gtk_widget_show (imgB);
     gtk_box_pack_start (GTK_BOX (hbox), imgB, FALSE, FALSE, 0);
     label = gtk_label_new_with_mnemonic (textB);
     gtk_widget_show (label);
     gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
     gtk_container_add(GTK_CONTAINER(button), hbox);
     gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
   button, TRUE, TRUE, 0);
     if (func != NULL)
       g_signal_connect(G_OBJECT(button), event, (GCallback) func,  data);
     gtk_widget_show (button);

   }

   static void makeInp(GtkWidget *frame, GtkWidget *fixed, short xOff,
   short yOff, short xL, short yL, char *label, short max)
   {
     GtkWidget *widget;
if (label != NULL)
       widget = gtk_label_new (label);
     else
       widget = gtk_entry_new_with_max_length(max);
     gtk_fixed_put(GTK_FIXED(fixed), widget, xOff, yOff);

     if (xL > 0)
         gtk_widget_set_usize (widget, xL, yL);
gtk_widget_show(widget);
   }

   static void setResponse(GtkWidget *widget, gpointer data)
   {
     dataS* resp;

     resp = (dataS*) data;
     gtk_dialog_response(GTK_DIALOG(resp->dialog), resp->respons);
   }

   static void openA(GtkWidget *widget, gpointer data)
   {
     GtkWidget *img;
     GtkWidget *dialog;
     GtkWidget *fixed;
     GtkWidget *radio;
     GSList* list;
     dataS resp, resp2;

     dialog = gtk_dialog_new();
     setDialog(dialog, 420, 250);

     resp.dialog = dialog;
     resp.respons = TRUE;

     resp2.dialog = dialog;
     resp2.respons = TRUE;
fixed = gtk_fixed_new();

     img = gtk_image_new_from_file("adresboek_n2B.jpg");
     gtk_fixed_put(GTK_FIXED(fixed), img, 0, 0);
     gtk_widget_show(img);

     makeInp(NULL, fixed, 0, 81, -1, -1, "Een nieuwe adressenboek
   toevoegen:", -1);
     makeInp(NULL, fixed, 0, 107, -1, -1, "categorie:", -1);

     list = makeRadio(radio, NULL, fixed, "Vrienden", 10, 102);
     makeRadio(radio, list, fixed, "Kennissen", 300, 102);
     makeRadio(radio, list, fixed, "Familie", 200, 102);

     makeInp(NULL, fixed, 0, 137, -1, -1, "Gebruiker:", -1);
     makeCheck("Jef", fixed, 100, 137);
     makeCheck("Jan", fixed, 150, 137);
     makeCheck("Piet", fixed, 200, 137);

     gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), fixed,
   TRUE, TRUE, 3);
     gtk_widget_show(fixed);

     /* KNOPPEN MAKEN */
     makeMessage(dialog, "gtk-apply", "Ok", "clicked", &resp,
   (GCallback)ok, dialog);
     makeMessage(dialog, "gtk-cancel", "Annuleren", "clicked", &resp2,
   (GCallback) setResponse, &resp2);

     gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);  /*
   seperator afzetten */
     gtk_dialog_run(GTK_DIALOG(dialog));
     gtk_widget_destroy(dialog);
     dialog = NULL;
   }

   void setCallback(GtkWidget *widget, gpointer data, char *keuze)
   {
     /*  tooltips2 = geefToolTips();*/
     switch(keuze[0])
     {
       case '0':
         g_signal_connect(G_OBJECT(widget), "delete_event",
   G_CALLBACK(delete_event), data);
         break;
       case '1':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(delete_event), data);
         break;
       case '2':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(warning), data);
         break;
       case '3':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(progress), data);
         break;
       case '4':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(voegtoe), data);
         break;
       case '5':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(verwijder), data);
         break;
       case '6':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(wijzig), data);
         break;
       case '7':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(instellingen), data);
         break;
       case '8':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(openF), data);
         break;
       case '9':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(credit), data);
         break;
       case 'a':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(nieuwA), data);
         break;
       case 'b':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(openA), data);
         break;
       case 'c':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(slaOp), data);
         break;
       case 'd':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(slaOpAls), data);
         break;
       case 'e':
         g_signal_connect(G_OBJECT(widget), "button_press_event",
   G_CALLBACK(openT), data);
         break;
       default:
         g_print("Nothing to do\n");
     }
   }
   /


Could someone please help me?  I sure hope this is the right mailing list?

Sibren,




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]