summaryrefslogtreecommitdiff
path: root/gtk/gtktreeview.override
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2004-08-22 13:54:58 +0000
committerOwen Taylor <otaylor@src.gnome.org>2004-08-22 13:54:58 +0000
commite9d37f9238a3ed4c010b1ef79ddc8a6924f74d56 (patch)
tree74f85d5f6666d407f833f0bbc37cb2a3a8cf9bb6 /gtk/gtktreeview.override
parentb26ee1eb9bb64178ae61d14603a5aea40e546237 (diff)
downloadpygtk-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.override11
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;