From e9d37f9238a3ed4c010b1ef79ddc8a6924f74d56 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Sun, 22 Aug 2004 13:54:58 +0000 Subject: Don't access private 'length' field of GtkTreeStore, rather use Sun Aug 22 09:47:12 2004 Owen Taylor * gtk/gtktreeview.override (_wrap_gtk_list_store_reorder): Don't access private 'length' field of GtkTreeStore, rather use gtk_tree_model_iter_n_children(). --- gtk/gtktreeview.override | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'gtk/gtktreeview.override') diff --git a/gtk/gtktreeview.override b/gtk/gtktreeview.override index 5cf1e062..03419360 100644 --- a/gtk/gtktreeview.override +++ b/gtk/gtktreeview.override @@ -1411,6 +1411,7 @@ _wrap_gtk_list_store_reorder(PyGObject *self, PyObject *args) gint *new_order; GtkListStore *store; int i; + int length; if (!PyArg_ParseTuple(args, "O:GtkListStore.reorder", &list)) return NULL; @@ -1420,13 +1421,15 @@ _wrap_gtk_list_store_reorder(PyGObject *self, PyObject *args) return NULL; } store = GTK_LIST_STORE(self->obj); - if (PyList_Size(list) < store->length) { + length = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(store), NULL); + + if (PyList_Size(list) < length) { PyErr_SetString(PyExc_TypeError, "list must at least have the same size as the number of items in the store"); return NULL; } - new_order = g_new0(gint, store->length); - for (i = 0; i < store->length; i++) { + new_order = g_new0(gint, length); + for (i = 0; i < length; i++) { PyObject *item = PyList_GetItem(list, i); int index; if (!PyInt_Check(item)) { @@ -1435,7 +1438,7 @@ _wrap_gtk_list_store_reorder(PyGObject *self, PyObject *args) return NULL; } index = PyInt_AsLong(item); - if (index < 0 || index >= store->length) { + if (index < 0 || index >= length) { PyErr_SetString(PyExc_ValueError, "position index out of range"); g_free(new_order); return NULL; -- cgit v1.2.1