[gnome-builder] sourceview: protect against async callback after destruction



commit 7c53eadfb9e5cc4981ab2f0710b9cecdcb74be76
Author: Christian Hergert <chergert redhat com>
Date:   Mon Mar 6 14:31:15 2017 -0800

    sourceview: protect against async callback after destruction
    
    If we had a really long async process it is possible that our text marks
    were destroyed and zeroed. Check for that before calling move_mark.

 libide/sourceview/ide-source-view.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)
---
diff --git a/libide/sourceview/ide-source-view.c b/libide/sourceview/ide-source-view.c
index 8b58ae8..f1f7e21 100644
--- a/libide/sourceview/ide-source-view.c
+++ b/libide/sourceview/ide-source-view.c
@@ -2800,12 +2800,15 @@ ide_source_view_get_definition_on_mouse_over_cb (GObject      *object,
       gtk_text_buffer_apply_tag_by_name (GTK_TEXT_BUFFER (priv->buffer),
                                          TAG_DEFINITION, &word_start, &word_end);
 
-      gtk_text_buffer_move_mark (GTK_TEXT_BUFFER (priv->buffer),
-                                 priv->definition_highlight_start_mark,
-                                 &word_start);
-      gtk_text_buffer_move_mark (GTK_TEXT_BUFFER (priv->buffer),
-                                 priv->definition_highlight_end_mark,
-                                 &word_end);
+      if (priv->definition_highlight_start_mark != NULL)
+        gtk_text_buffer_move_mark (GTK_TEXT_BUFFER (priv->buffer),
+                                   priv->definition_highlight_start_mark,
+                                   &word_start);
+
+      if (priv->definition_highlight_end_mark != NULL)
+        gtk_text_buffer_move_mark (GTK_TEXT_BUFFER (priv->buffer),
+                                   priv->definition_highlight_end_mark,
+                                   &word_end);
 
       ide_source_view_set_cursor_from_name (data->self, "pointer");
     }


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