GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'
- From: Sibren Polders <sibren telenet be>
- To: gtk-app-devel-list gnome org
- Subject: GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'
- Date: Thu, 07 Jun 2007 14:45:48 +0200
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]