psppire_data_editor: Don't crash when trying to insert when no variable or case is...
authorJohn Darrington <john@darrington.wattle.id.au>
Fri, 24 Nov 2017 23:11:28 +0000 (00:11 +0100)
committerJohn Darrington <john@darrington.wattle.id.au>
Fri, 24 Nov 2017 23:11:28 +0000 (00:11 +0100)
src/ui/gui/psppire-data-editor.c

index 8ceda9c5e578abcdd88b9884e82d2a2a486fc644..97b18e1b06a6c3b9a31b702b17615771f5e6ceb0 100644 (file)
@@ -459,6 +459,8 @@ psppire_data_editor_var_delete_variables (PsppireDataEditor *de)
 void
 psppire_data_editor_insert_new_case_at_posn  (PsppireDataEditor *de, gint posn)
 {
+  g_return_if_fail (posn >= 0);
+
   psppire_data_store_insert_new_case (de->data_store, posn);
 
   gtk_widget_queue_draw (GTK_WIDGET (de->data_sheet));
@@ -467,7 +469,9 @@ psppire_data_editor_insert_new_case_at_posn  (PsppireDataEditor *de, gint posn)
 void
 psppire_data_editor_insert_new_variable_at_posn (PsppireDataEditor *de, gint posn)
 {
+  g_return_if_fail (posn >= 0);
   const struct variable *v = psppire_dict_insert_variable (de->dict, posn, NULL);
+  g_return_if_fail (v);
   psppire_data_store_insert_value (de->data_store, var_get_width(v),
                                   var_get_case_index (v));