Update code for functions declared deprecated in glib 2.32.
authorAndriy Grytsenko <andrej@rep.kiev.ua>
Mon, 24 Nov 2014 19:59:29 +0000 (21:59 +0200)
committerAndriy Grytsenko <andrej@rep.kiev.ua>
Mon, 24 Nov 2014 19:59:29 +0000 (21:59 +0200)
src/gtk-run.c
src/main.c

index 85f7901..9331f5e 100644 (file)
@@ -228,6 +228,9 @@ static gpointer thread_func(ThreadData* data)
     data->files = list;
     /* install an idle handler to free associated data */
     g_idle_add((GSourceFunc)on_thread_finished, data);
+#if GLIB_CHECK_VERSION(2, 32, 0)
+    g_thread_unref(g_thread_self());
+#endif
 
     return NULL;
 }
@@ -245,7 +248,14 @@ static void setup_auto_complete( GtkEntry* entry )
         /* load in another working thread */
         thread_data = g_slice_new0(ThreadData); /* the data will be freed in idle handler later. */
         thread_data->entry = entry;
+#if GLIB_CHECK_VERSION(2, 32, 0)
+        g_thread_new("gtk-run-autocomplete", thread_func, NULL);
+        /* we don't use loader_thread_id but Glib 2.32 crashes if we unref
+           GThread while it's in creation progress. It is a bug of GLib
+           certainly but as workaround we'll unref it in the thread itself */
+#else
         g_thread_create((GThreadFunc)thread_func, thread_data, FALSE, NULL);
+#endif
     }
 }
 
index 0c16c02..3fa781b 100644 (file)
@@ -400,7 +400,9 @@ int main(int argc, char *argv[], char *env[])
 
     setlocale(LC_CTYPE, "");
 
+#if !GLIB_CHECK_VERSION(2, 32, 0)
     g_thread_init(NULL);
+#endif
 /*    gdk_threads_init();
     gdk_threads_enter(); */