[gedit] ViewFrame: make the code more robust in case the start_mark is NULL
- From: SĂŠbastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] ViewFrame: make the code more robust in case the start_mark is NULL
- Date: Wed, 13 Jan 2016 17:21:45 +0000 (UTC)
commit df0868201ebc66119d5130f7ae29e1b0cf47face
Author: SĂŠbastien Wilmet <swilmet gnome org>
Date: Wed Jan 13 18:12:29 2016 +0100
ViewFrame: make the code more robust in case the start_mark is NULL
https://bugzilla.gnome.org/show_bug.cgi?id=760446
gedit/gedit-view-frame.c | 44 +++++++++++++++++++++++++++-----------------
1 files changed, 27 insertions(+), 17 deletions(-)
---
diff --git a/gedit/gedit-view-frame.c b/gedit/gedit-view-frame.c
index a7e686e..e54f32a 100644
--- a/gedit/gedit-view-frame.c
+++ b/gedit/gedit-view-frame.c
@@ -105,6 +105,25 @@ get_document (GeditViewFrame *frame)
}
static void
+get_iter_at_start_mark (GeditViewFrame *frame,
+ GtkTextIter *iter)
+{
+ GtkTextBuffer *buffer;
+
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (frame->view));
+
+ if (frame->start_mark != NULL)
+ {
+ gtk_text_buffer_get_iter_at_mark (buffer, iter, frame->start_mark);
+ }
+ else
+ {
+ g_warn_if_reached ();
+ gtk_text_buffer_get_start_iter (buffer, iter);
+ }
+}
+
+static void
gedit_view_frame_dispose (GObject *object)
{
GeditViewFrame *frame = GEDIT_VIEW_FRAME (object);
@@ -337,9 +356,8 @@ start_search_finished (GtkSourceSearchContext *search_context,
static void
start_search (GeditViewFrame *frame)
{
- GtkTextIter start_at;
- GtkTextBuffer *buffer;
GtkSourceSearchContext *search_context;
+ GtkTextIter start_at;
g_return_if_fail (frame->search_mode == SEARCH);
@@ -350,11 +368,7 @@ start_search (GeditViewFrame *frame)
return;
}
- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (frame->view));
-
- gtk_text_buffer_get_iter_at_mark (buffer,
- &start_at,
- frame->start_mark);
+ get_iter_at_start_mark (frame, &start_at);
gtk_source_search_context_forward_async (search_context,
&start_at,
@@ -1056,11 +1070,7 @@ update_goto_line (GeditViewFrame *frame)
return;
}
- doc = get_document (frame);
-
- gtk_text_buffer_get_iter_at_mark (GTK_TEXT_BUFFER (doc),
- &iter,
- frame->start_mark);
+ get_iter_at_start_mark (frame, &iter);
split_text = g_strsplit (entry_text, ":", -1);
@@ -1107,6 +1117,7 @@ update_goto_line (GeditViewFrame *frame)
g_strfreev (split_text);
+ doc = get_document (frame);
moved = gedit_document_goto_line (doc, line);
moved_offset = gedit_document_goto_line_offset (doc, line, line_offset);
@@ -1200,17 +1211,13 @@ get_selected_text (GtkTextBuffer *doc,
static void
init_search_entry (GeditViewFrame *frame)
{
- GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (frame->view));
-
if (frame->search_mode == GOTO_LINE)
{
gint line;
gchar *line_str;
GtkTextIter iter;
- gtk_text_buffer_get_iter_at_mark (buffer,
- &iter,
- frame->start_mark);
+ get_iter_at_start_mark (frame, &iter);
line = gtk_text_iter_get_line (&iter);
@@ -1226,6 +1233,7 @@ init_search_entry (GeditViewFrame *frame)
else
{
/* SEARCH mode */
+ GtkTextBuffer *buffer;
gboolean selection_exists;
gchar *search_text = NULL;
gint selection_len = 0;
@@ -1248,6 +1256,8 @@ init_search_entry (GeditViewFrame *frame)
frame->old_search_text = g_strdup (frame->search_text);
}
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (frame->view));
+
search_context = get_search_context (frame);
if (search_context == NULL)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]