[geany/geany-plugins] b877d9: Merge pull request #827 from LarsGit223/issue824

Frank Lanitz git-noreply at xxxxx
Fri Jul 12 07:18:34 UTC 2019


Branch:      refs/heads/master
Author:      Frank Lanitz <frank at frank.uvena.de>
Committer:   GitHub <noreply at github.com>
Date:        Fri, 12 Jul 2019 07:18:34 UTC
Commit:      b877d94ee079fe368b3492d23435d3c089a70f9a
             https://github.com/geany/geany-plugins/commit/b877d94ee079fe368b3492d23435d3c089a70f9a

Log Message:
-----------
Merge pull request #827 from LarsGit223/issue824

scope: prevent usage of invalid iters (GtkTreeeIter)


Modified Paths:
--------------
    scope/src/break.c
    scope/src/inspect.c
    scope/src/local.c
    scope/src/memory.c
    scope/src/menu.c
    scope/src/register.c
    scope/src/stack.c
    scope/src/store/scptreestore.c
    scope/src/thread.c

Modified: scope/src/break.c
20 lines changed, 13 insertions(+), 7 deletions(-)
===================================================================
@@ -1332,8 +1332,10 @@ static void on_break_apply(const MenuItem *menu_item)
 	if (menu_item || thread_id)
 	{
 		GtkTreeIter iter;
-		gtk_tree_selection_get_selected(selection, NULL, &iter);
-		break_apply(&iter, !menu_item);
+		if (gtk_tree_selection_get_selected(selection, NULL, &iter))
+		{
+			break_apply(&iter, !menu_item);
+		}
 	}
 	else
 		plugin_beep();
@@ -1343,16 +1345,20 @@ static void on_break_run_apply(const MenuItem *menu_item)
 {
 	GtkTreeIter iter;
 
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	scp_tree_store_set(store, &iter, BREAK_RUN_APPLY,
-		gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu_item->widget)), -1);
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
+	{
+		scp_tree_store_set(store, &iter, BREAK_RUN_APPLY,
+			gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu_item->widget)), -1);
+	}
 }
 
 static void on_break_delete(G_GNUC_UNUSED const MenuItem *menu_item)
 {
 	GtkTreeIter iter;
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	break_delete(&iter);
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
+	{
+		break_delete(&iter);
+	}
 }
 
 static void break_seek_selected(gboolean focus)


Modified: scope/src/inspect.c
156 lines changed, 92 insertions(+), 64 deletions(-)
===================================================================
@@ -815,25 +815,29 @@ static void on_inspect_edit(G_GNUC_UNUSED const MenuItem *menu_item)
 	const char *name, *frame;
 	gboolean run_apply;
 
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	scp_tree_store_get(store, &iter, INSPECT_EXPR, &expr, INSPECT_NAME, &name,
-		INSPECT_FRAME, &frame, INSPECT_RUN_APPLY, &run_apply, -1);
-	scp_tree_store_set(store, &iter, INSPECT_NAME, "-", -1);  /* for duplicate name check */
-
-	gtk_entry_set_text(inspect_expr, expr);
-	gtk_entry_set_text(inspect_name, name);
-	gtk_entry_set_text(inspect_frame, frame);
-	gtk_toggle_button_set_active(inspect_run_apply, run_apply);
-	on_inspect_entry_changed(NULL, NULL);
-
-	if (gtk_dialog_run(GTK_DIALOG(inspect_dialog)) == GTK_RESPONSE_ACCEPT)
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
 	{
-		g_free(jump_to_expr);
-		jump_to_expr = NULL;
-		inspect_dialog_store(&iter);
+		scp_tree_store_get(store, &iter, INSPECT_EXPR, &expr, INSPECT_NAME, &name,
+			INSPECT_FRAME, &frame, INSPECT_RUN_APPLY, &run_apply, -1);
+		scp_tree_store_set(store, &iter, INSPECT_NAME, "-", -1);  /* for duplicate name check */
+
+		gtk_entry_set_text(inspect_expr, expr);
+		gtk_entry_set_text(inspect_name, name);
+		gtk_entry_set_text(inspect_frame, frame);
+		gtk_toggle_button_set_active(inspect_run_apply, run_apply);
+		on_inspect_entry_changed(NULL, NULL);
+
+		if (gtk_dialog_run(GTK_DIALOG(inspect_dialog)) == GTK_RESPONSE_ACCEPT)
+		{
+			g_free(jump_to_expr);
+			jump_to_expr = NULL;
+			inspect_dialog_store(&iter);
+		}
+		else
+		{
+			scp_tree_store_set(store, &iter, INSPECT_NAME, name, -1);
+		}
 	}
-	else
-		scp_tree_store_set(store, &iter, INSPECT_NAME, name, -1);
 }
 
 static void on_inspect_apply(G_GNUC_UNUSED const MenuItem *menu_item)
@@ -842,13 +846,19 @@ static void on_inspect_apply(G_GNUC_UNUSED const MenuItem *menu_item)
 	const char *var1;
 	gint scid;
 
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	scp_tree_store_get(store, &iter, INSPECT_SCID, &scid, INSPECT_VAR1, &var1, -1);
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
+	{
+		scp_tree_store_get(store, &iter, INSPECT_SCID, &scid, INSPECT_VAR1, &var1, -1);
 
-	if (var1)
-		debug_send_format(N, "070%d-var-delete %s", scid, var1);
-	else
-		inspect_apply(&iter);
+		if (var1)
+		{
+			debug_send_format(N, "070%d-var-delete %s", scid, var1);
+		}
+		else
+		{
+			inspect_apply(&iter);
+		}
+	}
 }
 
 static GtkWidget *expand_dialog;
@@ -863,25 +873,31 @@ static void on_inspect_expand(G_GNUC_UNUSED const MenuItem *menu_item)
 	gint start, count;
 	gboolean expand;
 
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	scp_tree_store_get(store, &iter, INSPECT_NAME, &name, INSPECT_START, &start,
-		INSPECT_COUNT, &count, INSPECT_EXPAND, &expand, -1);
-	gtk_spin_button_set_value(expand_start, start);
-	gtk_spin_button_set_value(expand_count, count);
-	gtk_toggle_button_set_active(expand_automatic, expand);
-	gtk_widget_set_sensitive(GTK_WIDGET(expand_automatic), name != NULL);
-
-	if (gtk_dialog_run(GTK_DIALOG(expand_dialog)) == GTK_RESPONSE_ACCEPT)
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
 	{
-		scp_tree_store_set(store, &iter,
-			INSPECT_START, gtk_spin_button_get_value_as_int(expand_start),
-			INSPECT_COUNT, gtk_spin_button_get_value_as_int(expand_count),
-			INSPECT_EXPAND, gtk_toggle_button_get_active(expand_automatic), -1);
+		scp_tree_store_get(store, &iter, INSPECT_NAME, &name, INSPECT_START, &start,
+			INSPECT_COUNT, &count, INSPECT_EXPAND, &expand, -1);
+		gtk_spin_button_set_value(expand_start, start);
+		gtk_spin_button_set_value(expand_count, count);
+		gtk_toggle_button_set_active(expand_automatic, expand);
+		gtk_widget_set_sensitive(GTK_WIDGET(expand_automatic), name != NULL);
+
+		if (gtk_dialog_run(GTK_DIALOG(expand_dialog)) == GTK_RESPONSE_ACCEPT)
+		{
+			scp_tree_store_set(store, &iter,
+				INSPECT_START, gtk_spin_button_get_value_as_int(expand_start),
+				INSPECT_COUNT, gtk_spin_button_get_value_as_int(expand_count),
+				INSPECT_EXPAND, gtk_toggle_button_get_active(expand_automatic), -1);
 
-		if (debug_state() & DS_VARIABLE)
-			inspect_expand(&iter);
-		else
-			plugin_beep();
+			if (debug_state() & DS_VARIABLE)
+			{
+				inspect_expand(&iter);
+			}
+			else
+			{
+				plugin_beep();
+			}
+		}
 	}
 }
 
@@ -901,16 +917,20 @@ static void on_inspect_format_update(const MenuItem *menu_item)
 	gint format = GPOINTER_TO_INT(menu_item->gdata);
 	const char *var1;
 
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	scp_tree_store_get(store, &iter, INSPECT_VAR1, &var1, -1);
-
-	if (var1)
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
 	{
-		debug_send_format(N, "07%d-var-set-format %s %s", inspect_get_scid(&iter), var1,
-			inspect_formats[format]);
+		scp_tree_store_get(store, &iter, INSPECT_VAR1, &var1, -1);
+
+		if (var1)
+		{
+			debug_send_format(N, "07%d-var-set-format %s %s", inspect_get_scid(&iter), var1,
+				inspect_formats[format]);
+		}
+		else
+		{
+			scp_tree_store_set(store, &iter, INSPECT_FORMAT, format, -1);
+		}
 	}
-	else
-		scp_tree_store_set(store, &iter, INSPECT_FORMAT, format, -1);
 }
 
 static void on_inspect_hbit_display(const MenuItem *menu_item)
@@ -939,18 +959,20 @@ static void on_inspect_hbit_update(const MenuItem *menu_item)
 	const char *expr, *name;
 	gint hb_mode = GPOINTER_TO_INT(menu_item->gdata);
 
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	scp_tree_store_get(store, &iter, INSPECT_EXPR, &expr, INSPECT_NAME, &name, -1);
-	inspect_hbit_update_iter(&iter, hb_mode);
-	parse_mode_update(expr, MODE_HBIT, hb_mode);
-
-	if (name)
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
 	{
-		char *reverse = parse_mode_reentry(expr);
+		scp_tree_store_get(store, &iter, INSPECT_EXPR, &expr, INSPECT_NAME, &name, -1);
+		inspect_hbit_update_iter(&iter, hb_mode);
+		parse_mode_update(expr, MODE_HBIT, hb_mode);
+
+		if (name)
+		{
+			char *reverse = parse_mode_reentry(expr);
 
-		if (store_find(store, &iter, INSPECT_EXPR, reverse))
-			inspect_hbit_update_iter(&iter, hb_mode);
-		g_free(reverse);
+			if (store_find(store, &iter, INSPECT_EXPR, reverse))
+				inspect_hbit_update_iter(&iter, hb_mode);
+			g_free(reverse);
+		}
 	}
 }
 
@@ -959,13 +981,19 @@ static void on_inspect_delete(G_GNUC_UNUSED const MenuItem *menu_item)
 	GtkTreeIter iter;
 	const char *var1;
 
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	scp_tree_store_get(store, &iter, INSPECT_VAR1, &var1, -1);
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
+	{
+		scp_tree_store_get(store, &iter, INSPECT_VAR1, &var1, -1);
 
-	if (var1)
-		debug_send_format(N, "071%d-var-delete %s", inspect_get_scid(&iter), var1);
-	else
-		scp_tree_store_remove(store, &iter);
+		if (var1)
+		{
+			debug_send_format(N, "071%d-var-delete %s", inspect_get_scid(&iter), var1);
+		}
+		else
+		{
+			scp_tree_store_remove(store, &iter);
+		}
+	}
 }
 
 #define DS_EDITABLE (DS_BASICS | DS_EXTRA_2)


Modified: scope/src/local.c
8 lines changed, 5 insertions(+), 3 deletions(-)
===================================================================
@@ -152,9 +152,11 @@ static void on_local_watch(G_GNUC_UNUSED const MenuItem *menu_item)
 	GtkTreeIter iter;
 	const char *name;
 
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	scp_tree_store_get(store, &iter, LOCAL_NAME, &name, -1);
-	watch_add(name);
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
+	{
+		scp_tree_store_get(store, &iter, LOCAL_NAME, &name, -1);
+		watch_add(name);
+	}
 }
 
 static void on_local_inspect(G_GNUC_UNUSED const MenuItem *menu_item)


Modified: scope/src/memory.c
16 lines changed, 9 insertions(+), 7 deletions(-)
===================================================================
@@ -304,13 +304,15 @@ static void on_memory_copy(G_GNUC_UNUSED const MenuItem *menu_item)
 	const gchar *ascii;
 	gchar *string;
 
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	scp_tree_store_get(store, &iter, MEMORY_ADDR, &addr, MEMORY_BYTES, &bytes,
-		MEMORY_ASCII, &ascii, -1);
-	string = g_strdup_printf("%s%s%s", addr, bytes, ascii);
-	gtk_clipboard_set_text(gtk_widget_get_clipboard(menu_item->widget,
-		GDK_SELECTION_CLIPBOARD), string, -1);
-	g_free(string);
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
+	{
+		scp_tree_store_get(store, &iter, MEMORY_ADDR, &addr, MEMORY_BYTES, &bytes,
+			MEMORY_ASCII, &ascii, -1);
+		string = g_strdup_printf("%s%s%s", addr, bytes, ascii);
+		gtk_clipboard_set_text(gtk_widget_get_clipboard(menu_item->widget,
+			GDK_SELECTION_CLIPBOARD), string, -1);
+		g_free(string);
+	}
 }
 
 static void on_memory_clear(G_GNUC_UNUSED const MenuItem *menu_item)


Modified: scope/src/menu.c
70 lines changed, 40 insertions(+), 30 deletions(-)
===================================================================
@@ -203,9 +203,11 @@ void menu_mode_display(GtkTreeSelection *selection, const MenuItem *menu_item, g
 	GtkTreeIter iter;
 	gint mode;
 
-	gtk_tree_selection_get_selected(selection, &model, &iter);
-	gtk_tree_model_get(model, &iter, column, &mode, -1);
-	menu_item_set_active(menu_item + mode + 1, TRUE);
+	if (gtk_tree_selection_get_selected(selection, &model, &iter))
+	{
+		gtk_tree_model_get(model, &iter, column, &mode, -1);
+		menu_item_set_active(menu_item + mode + 1, TRUE);
+	}
 }
 
 static void menu_mode_update_iter(ScpTreeStore *store, GtkTreeIter *iter, gint new_mode,
@@ -235,18 +237,20 @@ void menu_mode_update(GtkTreeSelection *selection, gint new_mode, gboolean hbit)
 	GtkTreeIter iter;
 	const char *name;
 
-	scp_tree_selection_get_selected(selection, &store, &iter);
-	scp_tree_store_get(store, &iter, COLUMN_NAME, &name, -1);
-	menu_mode_update_iter(store, &iter, new_mode, hbit);
-	parse_mode_update(name, hbit ? MODE_HBIT : MODE_MEMBER, new_mode);
-
-	if (hbit)
+	if (scp_tree_selection_get_selected(selection, &store, &iter))
 	{
-		char *reverse = parse_mode_reentry(name);
+		scp_tree_store_get(store, &iter, COLUMN_NAME, &name, -1);
+		menu_mode_update_iter(store, &iter, new_mode, hbit);
+		parse_mode_update(name, hbit ? MODE_HBIT : MODE_MEMBER, new_mode);
+
+		if (hbit)
+		{
+			char *reverse = parse_mode_reentry(name);
 
-		if (store_find(store, &iter, COLUMN_NAME, reverse))
-			menu_mode_update_iter(store, &iter, new_mode, TRUE);
-		g_free(reverse);
+			if (store_find(store, &iter, COLUMN_NAME, reverse))
+				menu_mode_update_iter(store, &iter, new_mode, TRUE);
+			g_free(reverse);
+		}
 	}
 }
 
@@ -306,18 +310,20 @@ void menu_copy(GtkTreeSelection *selection, const MenuItem *menu_item)
 	const char *value;
 	GString *string;
 
-	scp_tree_selection_get_selected(selection, &store, &iter);
-	scp_tree_store_get(store, &iter, COLUMN_NAME, &name, COLUMN_DISPLAY, &display,
-		COLUMN_VALUE, &value, -1);
-	string = g_string_new(name);
+	if (scp_tree_selection_get_selected(selection, &store, &iter))
+	{
+		scp_tree_store_get(store, &iter, COLUMN_NAME, &name, COLUMN_DISPLAY, &display,
+			COLUMN_VALUE, &value, -1);
+		string = g_string_new(name);
 
-	if (value)
-		g_string_append_printf(string, " = %s", display);
+		if (value)
+			g_string_append_printf(string, " = %s", display);
 
-	gtk_clipboard_set_text(gtk_widget_get_clipboard(menu_item->widget,
-		GDK_SELECTION_CLIPBOARD), string->str, string->len);
+		gtk_clipboard_set_text(gtk_widget_get_clipboard(menu_item->widget,
+			GDK_SELECTION_CLIPBOARD), string->str, string->len);
 
-	g_string_free(string, TRUE);
+		g_string_free(string, TRUE);
+	}
 }
 
 static GtkWidget *modify_dialog;
@@ -373,11 +379,13 @@ void menu_modify(GtkTreeSelection *selection, const MenuItem *menu_item)
 	const char *value;
 	gint hb_mode;
 
-	scp_tree_selection_get_selected(selection, &store, &iter);
-	scp_tree_store_get(store, &iter, COLUMN_NAME, &name, COLUMN_VALUE, &value, COLUMN_HB_MODE,
-		&hb_mode, -1);
-	menu_evaluate_modify(name, value, _("Modify"), hb_mode, menu_item ? MR_MODIFY : MR_MODSTR,
-		"07");
+	if (scp_tree_selection_get_selected(selection, &store, &iter))
+	{
+		scp_tree_store_get(store, &iter, COLUMN_NAME, &name, COLUMN_VALUE, &value, COLUMN_HB_MODE,
+			&hb_mode, -1);
+		menu_evaluate_modify(name, value, _("Modify"), hb_mode, menu_item ? MR_MODIFY : MR_MODSTR,
+			"07");
+	}
 }
 
 void menu_inspect(GtkTreeSelection *selection)
@@ -386,9 +394,11 @@ void menu_inspect(GtkTreeSelection *selection)
 	GtkTreeIter iter;
 	const char *name;
 
-	scp_tree_selection_get_selected(selection, &store, &iter);
-	scp_tree_store_get(store, &iter, COLUMN_NAME, &name, -1);
-	inspect_add(name);
+	if (scp_tree_selection_get_selected(selection, &store, &iter))
+	{
+		scp_tree_store_get(store, &iter, COLUMN_NAME, &name, -1);
+		inspect_add(name);
+	}
 }
 
 void on_menu_display_booleans(const MenuItem *menu_item)


Modified: scope/src/register.c
20 lines changed, 12 insertions(+), 8 deletions(-)
===================================================================
@@ -459,16 +459,20 @@ static void on_register_format_update(const MenuItem *menu_item)
 	gint format = GPOINTER_TO_INT(menu_item->gdata);
 	gint id;
 
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	scp_tree_store_get(store, &iter, REGISTER_ID, &id, -1);
-
-	if (debug_state() & DS_DEBUG)
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
 	{
-		debug_send_format(N, "02%d%c%s%s-data-list-register-values %c %d", format,
-			FRAME_ARGS, register_formats[format], id);
+		scp_tree_store_get(store, &iter, REGISTER_ID, &id, -1);
+
+		if (debug_state() & DS_DEBUG)
+		{
+			debug_send_format(N, "02%d%c%s%s-data-list-register-values %c %d", format,
+				FRAME_ARGS, register_formats[format], id);
+		}
+		else
+		{
+			scp_tree_store_set(store, &iter, REGISTER_FORMAT, format, -1);
+		}
 	}
-	else
-		scp_tree_store_set(store, &iter, REGISTER_FORMAT, format, -1);
 }
 
 static void on_register_query(G_GNUC_UNUSED const MenuItem *menu_item)


Modified: scope/src/stack.c
32 lines changed, 19 insertions(+), 13 deletions(-)
===================================================================
@@ -165,10 +165,12 @@ void on_stack_follow(GArray *nodes)
 gboolean stack_entry(void)
 {
 	GtkTreeIter iter;
-	gboolean entry;
+	gboolean entry = NULL;
 
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	scp_tree_store_get(store, &iter, STACK_ENTRY, &entry, -1);
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
+	{
+		scp_tree_store_get(store, &iter, STACK_ENTRY, &entry, -1);
+	}
 	return entry;
 }
 
@@ -268,18 +270,22 @@ static void on_stack_show_entry(const MenuItem *menu_item)
 	GtkTreeIter iter;
 
 	view_dirty(VIEW_LOCALS);
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	scp_tree_store_get(store, &iter, STACK_FUNC, &ed.func, -1);
-	parse_mode_update(ed.func, MODE_ENTRY, ed.entry);
-	store_foreach(store, (GFunc) stack_iter_show_entry, &ed);
-
-	if (ed.count == 1)
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
 	{
-		debug_send_format(T, "04%s-stack-list-arguments 1 %s %s", thread_id, frame_id,
-			frame_id);
+		scp_tree_store_get(store, &iter, STACK_FUNC, &ed.func, -1);
+		parse_mode_update(ed.func, MODE_ENTRY, ed.entry);
+		store_foreach(store, (GFunc) stack_iter_show_entry, &ed);
+
+		if (ed.count == 1)
+		{
+			debug_send_format(T, "04%s-stack-list-arguments 1 %s %s", thread_id, frame_id,
+				frame_id);
+		}
+		else
+		{
+			debug_send_format(T, "04%s-stack-list-arguments 1", thread_id);
+		}
 	}
-	else
-		debug_send_format(T, "04%s-stack-list-arguments 1", thread_id);
 }
 
 #define DS_VIEWABLE (DS_ACTIVE | DS_EXTRA_2)


Modified: scope/src/store/scptreestore.c
15 lines changed, 10 insertions(+), 5 deletions(-)
===================================================================
@@ -527,16 +527,19 @@ static void validate_store(ScpTreeStore *store)
 static gboolean scp_insert_element(ScpTreeStore *store, GtkTreeIter *iter, AElem *elem,
 	gint position, GtkTreeIter *parent_iter)
 {
-	ScpTreeStorePrivate *priv = store->priv;
-	AElem *parent = parent_iter ? ITER_ELEM(parent_iter) : priv->root;
-	GPtrArray *array = parent->children;
+	ScpTreeStorePrivate *priv;
+	AElem *parent;
+	GPtrArray *array;
 	GtkTreePath *path;
 
 	g_return_val_if_fail(SCP_IS_TREE_STORE(store), FALSE);
 	g_return_val_if_fail(iter != NULL, FALSE);
+	priv = store->priv;
 	g_return_val_if_fail(priv->sublevels == TRUE || parent_iter == NULL, FALSE);
 	g_return_val_if_fail(VALID_ITER_OR_NULL(parent_iter, store), FALSE);
 
+	parent = parent_iter ? ITER_ELEM(parent_iter) : priv->root;
+	array = parent->children;
 	if (array)
 	{
 		if (position == -1)
@@ -624,12 +627,13 @@ void scp_tree_store_insert_with_values(ScpTreeStore *store, GtkTreeIter *iter,
 void scp_tree_store_get_valist(ScpTreeStore *store, GtkTreeIter *iter, va_list ap)
 {
 	ScpTreeStorePrivate *priv = store->priv;
-	AElem *elem = ITER_ELEM(iter);
+	AElem *elem;
 	gint column;
 
 	g_return_if_fail(SCP_IS_TREE_STORE(store));
 	g_return_if_fail(VALID_ITER(iter, store));
 
+	elem = ITER_ELEM(iter);
 	while ((column = va_arg(ap, int)) != -1)
 	{
 		gpointer dest;
@@ -896,12 +900,13 @@ gboolean scp_tree_store_get_iter(ScpTreeStore *store, GtkTreeIter *iter, GtkTree
 
 GtkTreePath *scp_tree_store_get_path(VALIDATE_ONLY ScpTreeStore *store, GtkTreeIter *iter)
 {
-	AElem *elem = ITER_ELEM(iter);
+	AElem *elem;
 	GtkTreePath *path;
 
 	g_return_val_if_fail(VALID_ITER(iter, store), NULL);
 	path = gtk_tree_path_new();
 
+	elem = ITER_ELEM(iter);
 	if (elem->parent)
 	{
 		gtk_tree_path_append_index(path, ITER_INDEX(iter));


Modified: scope/src/thread.c
16 lines changed, 9 insertions(+), 7 deletions(-)
===================================================================
@@ -775,14 +775,16 @@ static void on_thread_interrupt(G_GNUC_UNUSED const MenuItem *menu_item)
 	GtkTreeIter iter;
 	HANDLE hid;
 
-	gtk_tree_selection_get_selected(selection, NULL, &iter);
-	hid = iter_to_handle(&iter);
-
-	if (hid)
+	if (gtk_tree_selection_get_selected(selection, NULL, &iter))
 	{
-		if (!DebugBreakProcess(hid))
-			show_errno("DebugBreakProcess");
-		CloseHandle(hid);
+		hid = iter_to_handle(&iter);
+
+		if (hid)
+		{
+			if (!DebugBreakProcess(hid))
+				show_errno("DebugBreakProcess");
+			CloseHandle(hid);
+		}
 	}
 }
 



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Plugins-Commits mailing list