diff options
author | Christopher James Lahey <clahey@ximian.com> | 2001-07-05 14:42:56 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2001-07-05 14:42:56 +0800 |
commit | e509ad72df82b4f8e0e516b019d1f0c06f9a8a88 (patch) | |
tree | 5d5badde9f4f5ee0cba2e51f6a91117f95da3ed7 | |
parent | 0f51f730ac4caa7259e3b6fd70374b63baa3ecc1 (diff) | |
download | gsoc2013-evolution-e509ad72df82b4f8e0e516b019d1f0c06f9a8a88.tar gsoc2013-evolution-e509ad72df82b4f8e0e516b019d1f0c06f9a8a88.tar.gz gsoc2013-evolution-e509ad72df82b4f8e0e516b019d1f0c06f9a8a88.tar.bz2 gsoc2013-evolution-e509ad72df82b4f8e0e516b019d1f0c06f9a8a88.tar.lz gsoc2013-evolution-e509ad72df82b4f8e0e516b019d1f0c06f9a8a88.tar.xz gsoc2013-evolution-e509ad72df82b4f8e0e516b019d1f0c06f9a8a88.tar.zst gsoc2013-evolution-e509ad72df82b4f8e0e516b019d1f0c06f9a8a88.zip |
Handle an error in construction a little bit better here.
2001-07-05 Christopher James Lahey <clahey@ximian.com>
* e-tree.c (e_tree_new, e_tree_new_from_spec_file): Handle an
error in construction a little bit better here.
(e_tree_get_cursor): Check for row == -1 here.
svn path=/trunk/; revision=10787
-rw-r--r-- | widgets/table/e-tree.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/widgets/table/e-tree.c b/widgets/table/e-tree.c index 154872e06e..e5b83b92e1 100644 --- a/widgets/table/e-tree.c +++ b/widgets/table/e-tree.c @@ -1097,7 +1097,7 @@ e_tree_construct_from_spec_file (ETree *e_tree, ETreeModel *etm, ETableExtras *e GtkWidget * e_tree_new (ETreeModel *etm, ETableExtras *ete, const char *spec, const char *state) { - ETree *e_tree; + ETree *e_tree, *ret_val; g_return_val_if_fail(etm != NULL, NULL); g_return_val_if_fail(E_IS_TREE_MODEL(etm), NULL); @@ -1106,15 +1106,19 @@ e_tree_new (ETreeModel *etm, ETableExtras *ete, const char *spec, const char *st e_tree = gtk_type_new (e_tree_get_type ()); - e_tree = e_tree_construct (e_tree, etm, ete, spec, state); + ret_val = e_tree_construct (e_tree, etm, ete, spec, state); + + if (ret_val == NULL) { + gtk_object_unref (GTK_OBJECT (e_tree)); + } - return GTK_WIDGET (e_tree); + return (GtkWidget *) ret_val; } GtkWidget * e_tree_new_from_spec_file (ETreeModel *etm, ETableExtras *ete, const char *spec_fn, const char *state_fn) { - ETree *e_tree; + ETree *e_tree, *ret_val; g_return_val_if_fail(etm != NULL, NULL); g_return_val_if_fail(E_IS_TREE_MODEL(etm), NULL); @@ -1123,9 +1127,13 @@ e_tree_new_from_spec_file (ETreeModel *etm, ETableExtras *ete, const char *spec_ e_tree = gtk_type_new (e_tree_get_type ()); - e_tree = e_tree_construct_from_spec_file (e_tree, etm, ete, spec_fn, state_fn); + ret_val = e_tree_construct_from_spec_file (e_tree, etm, ete, spec_fn, state_fn); - return GTK_WIDGET (e_tree); + if (ret_val == NULL) { + gtk_object_unref (GTK_OBJECT (e_tree)); + } + + return (GtkWidget *) ret_val; } void @@ -1166,6 +1174,8 @@ e_tree_get_cursor (ETree *e_tree) gtk_object_get(GTK_OBJECT(e_tree->priv->selection), "cursor_row", &row, NULL); + if (row == -1) + return NULL; path = e_tree_table_adapter_node_at_row(E_TREE_TABLE_ADAPTER(e_tree->priv->etta), row); path = e_tree_sorted_view_to_model_path(e_tree->priv->sorted, path); return path; |