[gnome-builder] sourceview: fix invalid data use



commit 5377e4d731d372916aabe61ed7a8e97e1c9d9287
Author: Christian Hergert <chergert redhat com>
Date:   Fri Sep 1 18:57:37 2017 -0700

    sourceview: fix invalid data use

 libide/sourceview/ide-source-view.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/libide/sourceview/ide-source-view.c b/libide/sourceview/ide-source-view.c
index 5e0d471..e43c97b 100644
--- a/libide/sourceview/ide-source-view.c
+++ b/libide/sourceview/ide-source-view.c
@@ -6068,8 +6068,9 @@ ide_source_view_find_references_cb (GObject      *object,
                                     gpointer      user_data)
 {
   IdeSymbolResolver *symbol_resolver = (IdeSymbolResolver *)object;
+  FindReferencesTaskData *data;
   IdeSourceView *self;
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
+  IdeSourceViewPrivate *priv;
   g_autoptr(GPtrArray) references = NULL;
   g_autoptr(GError) error = NULL;
   GtkScrolledWindow *scroller;
@@ -6079,19 +6080,23 @@ ide_source_view_find_references_cb (GObject      *object,
   GtkTextIter iter;
   GdkRectangle loc;
   g_autoptr(GTask) task = user_data;
-  FindReferencesTaskData *data;
 
   IDE_ENTRY;
 
   g_assert (IDE_IS_SYMBOL_RESOLVER (symbol_resolver));
   g_assert (G_IS_ASYNC_RESULT (result));
-  g_assert (IDE_IS_SOURCE_VIEW (self));
 
   references = ide_symbol_resolver_find_references_finish (symbol_resolver, result, &error);
 
   self = g_task_get_source_object (task);
+  priv = ide_source_view_get_instance_private (self);
   data = g_task_get_task_data (task);
 
+  g_assert (IDE_IS_SOURCE_VIEW (self));
+  g_assert (data != NULL);
+  g_assert (data->resolvers != NULL);
+  g_assert (data->resolvers->len > 0);
+
   g_ptr_array_remove_index (data->resolvers, data->resolvers->len - 1);
 
   /* If references are not found and symbol resolvers are left try those */


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