diff options
author | Owen Taylor <otaylor@redhat.com> | 2004-08-22 13:54:58 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2004-08-22 13:54:58 +0000 |
commit | e9d37f9238a3ed4c010b1ef79ddc8a6924f74d56 (patch) | |
tree | 74f85d5f6666d407f833f0bbc37cb2a3a8cf9bb6 /gtk/gtktreeview.override | |
parent | b26ee1eb9bb64178ae61d14603a5aea40e546237 (diff) | |
download | pygtk-e9d37f9238a3ed4c010b1ef79ddc8a6924f74d56.tar.gz |
Don't access private 'length' field of GtkTreeStore, rather use
Sun Aug 22 09:47:12 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtktreeview.override (_wrap_gtk_list_store_reorder): Don't
access private 'length' field of GtkTreeStore, rather use
gtk_tree_model_iter_n_children().
Diffstat (limited to 'gtk/gtktreeview.override')
-rw-r--r-- | gtk/gtktreeview.override | 11 |
1 files changed, 7 insertions, 4 deletions
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; |