[gnome-builder/gnome-builder-3-18] gb-search-box: fix released ref of GbSearchDisplay
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/gnome-builder-3-18] gb-search-box: fix released ref of GbSearchDisplay
- Date: Tue, 13 Oct 2015 07:34:01 +0000 (UTC)
commit 0c5d4d3e975719616202a2921370d8ec82fbf210
Author: Sebastien Lafargue <slafargue gnome org>
Date: Sat Oct 3 20:52:27 2015 +0200
gb-search-box: fix released ref of GbSearchDisplay
If you quit Gnome--Builder with the searchbox's popover
opened, you get this critical message:
gb-search-display[25745]: CRITICAL:
gb_search_display_get_context:
assertion 'GB_IS_SEARCH_DISPLAY (self)' failed
This is due to the fact that the searchbox try to use
an already released GbSearchDisplay
src/search/gb-search-box.c | 37 ++++++++++++++++++++-----------------
1 files changed, 20 insertions(+), 17 deletions(-)
---
diff --git a/src/search/gb-search-box.c b/src/search/gb-search-box.c
index 39158e3..af38352 100644
--- a/src/search/gb-search-box.c
+++ b/src/search/gb-search-box.c
@@ -88,23 +88,26 @@ gb_search_box_delay_cb (gpointer user_data)
self->delay_timeout = 0;
- context = gb_search_display_get_context (self->display);
- if (context)
- ide_search_context_cancel (context);
-
- search_engine = gb_search_box_get_search_engine (self);
- if (!search_engine)
- return G_SOURCE_REMOVE;
-
- search_text = gtk_entry_get_text (GTK_ENTRY (self->entry));
- if (!search_text)
- return G_SOURCE_REMOVE;
-
- /* TODO: Remove search text */
- context = ide_search_engine_search (search_engine, search_text);
- gb_search_display_set_context (self->display, context);
- ide_search_context_execute (context, search_text, 7);
- g_object_unref (context);
+ if (self->display)
+ {
+ context = gb_search_display_get_context (self->display);
+ if (context)
+ ide_search_context_cancel (context);
+
+ search_engine = gb_search_box_get_search_engine (self);
+ if (!search_engine)
+ return G_SOURCE_REMOVE;
+
+ search_text = gtk_entry_get_text (GTK_ENTRY (self->entry));
+ if (!search_text)
+ return G_SOURCE_REMOVE;
+
+ /* TODO: Remove search text */
+ context = ide_search_engine_search (search_engine, search_text);
+ gb_search_display_set_context (self->display, context);
+ ide_search_context_execute (context, search_text, 7);
+ g_object_unref (context);
+ }
return G_SOURCE_REMOVE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]