From 351d355835532dbea8430902977873e887dd1c12 Mon Sep 17 00:00:00 2001 From: Lucian Poston <lucian.poston@gmail.com> Date: Wed, 6 Dec 2017 04:22:28 -0800 Subject: [PATCH] fix segfault in gcc-6 --- src/gtkcompletionline.cc | 27 +++++++++++++++------------ src/gtkcompletionline.h | 2 +- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/gtkcompletionline.cc b/src/gtkcompletionline.cc index eb324b5..537fafb 100644 --- a/src/gtkcompletionline.cc +++ b/src/gtkcompletionline.cc @@ -77,22 +77,25 @@ static gboolean on_key_press(GtkCompletionLine *cl, GdkEventKey *event, gpointer data); /* get_type */ -guint gtk_completion_line_get_type(void) +GType gtk_completion_line_get_type(void) { - static guint type = 0; + static GType type = 0; if (type == 0) { - GtkTypeInfo type_info = + static const GTypeInfo type_info = { - "GtkCompletionLine", - sizeof(GtkCompletionLine), sizeof(GtkCompletionLineClass), - (GtkClassInitFunc)gtk_completion_line_class_init, - (GtkObjectInitFunc)gtk_completion_line_init, - /*(GtkArgSetFunc)*/NULL /* reserved */, - /*(GtkArgGetFunc)*/NULL /* reserved */ + NULL, + NULL, + (GClassInitFunc)gtk_completion_line_class_init, + NULL, + NULL, + sizeof(GtkCompletionLine), + 0, + (GInstanceInitFunc)gtk_completion_line_init, + NULL }; - type = gtk_type_unique(gtk_entry_get_type(), &type_info); + type = g_type_register_static(GTK_TYPE_ENTRY, "GtkCompletionLine", &type_info, (GTypeFlags)0); } return type; } @@ -114,7 +117,7 @@ gtk_completion_line_class_init(GtkCompletionLineClass *klass) gtk_completion_line_signals[NOTUNIQUE] = gtk_signal_new("notunique", - GTK_RUN_FIRST, G_TYPE_FROM_CLASS(object_class), + GTK_RUN_FIRST, G_TYPE_FROM_CLASS(object_class), GTK_SIGNAL_OFFSET(GtkCompletionLineClass, notunique), gtk_signal_default_marshaller, GTK_TYPE_NONE, 0); @@ -778,7 +781,7 @@ complete_line(GtkCompletionLine *object) GtkWidget * gtk_completion_line_new() { - return GTK_WIDGET(gtk_type_new(gtk_completion_line_get_type())); + return GTK_WIDGET(g_object_new(gtk_completion_line_get_type(), NULL)); } static void diff --git a/src/gtkcompletionline.h b/src/gtkcompletionline.h index 5e14cd7..0d7f2dc 100644 --- a/src/gtkcompletionline.h +++ b/src/gtkcompletionline.h @@ -76,7 +76,7 @@ extern "C++" { void (* cancel)(GtkCompletionLine *cl); }; - guint gtk_completion_line_get_type(void); + GType gtk_completion_line_get_type(void); GtkWidget *gtk_completion_line_new(); void gtk_completion_line_last_history_item(GtkCompletionLine*); -- 2.13.6