summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo J. A. M. Carneiro <gjc@src.gnome.org>2006-10-03 17:49:17 +0000
committerGustavo J. A. M. Carneiro <gjc@src.gnome.org>2006-10-03 17:49:17 +0000
commita31aee46eed48d5d1c26a6738f7a9ca60f19e9db (patch)
treed8c5e37c862082953ef118c0a7d5781a4ce2b184
parente095923a6eed461114cf30ecf211851dc11edb50 (diff)
downloadpygtk-a31aee46eed48d5d1c26a6738f7a9ca60f19e9db.tar.gz
Bug 337368 – Make PyGTK work with Python 2.5 and 64-bit
-rw-r--r--ChangeLog23
-rw-r--r--Makefile.am1
-rw-r--r--atk.override11
-rw-r--r--atkrectangle.override22
-rw-r--r--codegen/argtypes.py7
-rw-r--r--codegen/codegen.py32
-rw-r--r--gtk/Makefile.am1
-rw-r--r--gtk/gdk.override8
-rw-r--r--gtk/gdkdraw.override15
-rw-r--r--gtk/gdkpixbuf.override22
-rw-r--r--gtk/gdkrectangle.override20
-rw-r--r--gtk/gtk-types.c51
-rw-r--r--gtk/gtk.override47
-rw-r--r--gtk/gtkcontainer.override16
-rw-r--r--gtk/gtktextview.override35
-rw-r--r--gtk/gtktreeview.override8
-rw-r--r--pango.override14
17 files changed, 210 insertions, 123 deletions
diff --git a/ChangeLog b/ChangeLog
index a30b797e..c79c7a33 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,28 @@
2006-10-03 Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
+ * Makefile.am:
+ * atk.override:
+ * atkrectangle.override:
+ * codegen/argtypes.py:
+ * codegen/codegen.py:
+ * gtk/Makefile.am:
+ * gtk/gdk.override:
+ * gtk/gdkdraw.override:
+ * gtk/gdkpixbuf.override:
+ * gtk/gdkrectangle.override:
+ * gtk/gtk-types.c: (pygtk_style_helper_getitem),
+ (pygtk_style_helper_setitem), (pygtk_tree_model_row_getitem),
+ (pygtk_tree_model_row_setitem):
+ * gtk/gtk.override:
+ * gtk/gtkcontainer.override:
+ * gtk/gtktextview.override:
+ * gtk/gtktreeview.override:
+ * pango.override:
+
+ Support Python 2.5 + 64-bit architectures (#337368).
+
+2006-10-03 Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
+
* gtk/gtktreeview.override (pygtk_tree_sortable_sort_cb): Fix a
refcount problem accidentally introduced by me between 2.10.1 and
2.10.2 :P
diff --git a/Makefile.am b/Makefile.am
index a49333a7..55083dbe 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -106,6 +106,7 @@ endif
.defs.c:
(cd $(srcdir)\
&& $(PYTHON) codegen/codegen.py \
+ --py_ssize_t-clean \
--register pango-types.defs \
--register atk-types.defs \
--register gtk/gtk-base-types.defs \
diff --git a/atk.override b/atk.override
index 773b5e74..7cb7beb9 100644
--- a/atk.override
+++ b/atk.override
@@ -27,6 +27,7 @@ headers
#include <atk/atk-enum-types.h>
#include <atk/atknoopobjectfactory.h>
#include <atk/atknoopobject.h>
+
%%
include
atkrectangle.override
@@ -61,7 +62,7 @@ _wrap_atk_relation_new (PyGObject *self, PyObject *args, PyObject *kwargs)
PyObject *py_targets;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "Oi#:relation_new", kwlist,
+ "Oi:relation_new", kwlist,
&py_targets, &relationship))
return -1;
@@ -402,7 +403,7 @@ _wrap_atk_text_get_text_after_offset(PyGObject *self, PyObject *args,
text = atk_text_get_text_after_offset(ATK_TEXT(self->obj),
offset, boundary, &start, &end);
- return Py_BuildValue("(s#ii)", text, end-start, start, end);
+ return Py_BuildValue("(s#ii)", text, (Py_ssize_t) (end - start), start, end);
}
%%
override atk_text_get_text_at_offset kwargs
@@ -427,7 +428,7 @@ _wrap_atk_text_get_text_at_offset(PyGObject *self, PyObject *args,
text = atk_text_get_text_at_offset(ATK_TEXT(self->obj),
offset, boundary, &start, &end);
- return Py_BuildValue("(s#ii)", text, end-start, start, end);
+ return Py_BuildValue("(s#ii)", text, (Py_ssize_t) (end - start), start, end);
}
%%
override atk_text_get_text_before_offset kwargs
@@ -452,7 +453,7 @@ _wrap_atk_text_get_text_before_offset(PyGObject *self, PyObject *args,
text = atk_text_get_text_before_offset(ATK_TEXT(self->obj),
offset, boundary, &start, &end);
- return Py_BuildValue("(s#ii)", text, end-start, start, end);
+ return Py_BuildValue("(s#ii)", text, (Py_ssize_t) (end - start), start, end);
}
%%
override atk_text_get_character_extents kwargs
@@ -592,7 +593,7 @@ _wrap_atk_text_get_selection(PyGObject *self, PyObject *args,
text = atk_text_get_selection(ATK_TEXT(self->obj),
selection_num, &start, &end);
- return Py_BuildValue("(s#ii)", text, end-start, start, end);
+ return Py_BuildValue("(s#ii)", text, (Py_ssize_t) (end - start), start, end);
}
%%
override atk_text_get_range_extents kwargs
diff --git a/atkrectangle.override b/atkrectangle.override
index 4e93f587..4b2c01ae 100644
--- a/atkrectangle.override
+++ b/atkrectangle.override
@@ -88,13 +88,13 @@ _wrap_atk_rectangle_new(PyGBoxed *self, PyObject *args, PyObject *kwargs)
}
%%
override-slot AtkRectangle.tp_as_sequence
-static int
+static Py_ssize_t
_wrap_atk_rectangle_length(PyGBoxed *self)
{
return 4;
}
static PyObject *
-_wrap_atk_rectangle_getitem(PyGBoxed *self, int pos)
+_wrap_atk_rectangle_getitem(PyGBoxed *self, Py_ssize_t pos)
{
AtkRectangle *rect;
@@ -115,7 +115,7 @@ _wrap_atk_rectangle_getitem(PyGBoxed *self, int pos)
}
}
static int
-_wrap_atk_rectangle_setitem(PyGBoxed *self, int pos, PyObject *value)
+_wrap_atk_rectangle_setitem(PyGBoxed *self, Py_ssize_t pos, PyObject *value)
{
AtkRectangle *rect;
gint val;
@@ -141,13 +141,15 @@ _wrap_atk_rectangle_setitem(PyGBoxed *self, int pos, PyObject *value)
return 0;
}
static PySequenceMethods _wrap_atk_rectangle_tp_as_sequence = {
- (inquiry)_wrap_atk_rectangle_length,
- (binaryfunc)0,
- (intargfunc)0,
- (intargfunc)_wrap_atk_rectangle_getitem,
- (intintargfunc)0,
- (intobjargproc)_wrap_atk_rectangle_setitem,
- (intintobjargproc)0
+ (lenfunc)_wrap_atk_rectangle_length, /* sq_length */
+ 0, /* sq_concat */
+ 0, /* sq_repeat */
+ (ssizeargfunc)_wrap_atk_rectangle_getitem, /* sq_item */
+ 0, /* sq_slice */
+ (ssizeobjargproc)_wrap_atk_rectangle_setitem, /* sq_ass_item */
+ 0, /* sq_contains */
+ 0, /* sq_inplace_concat */
+ 0 /* sq_inplace_repeat */
};
%%
override-attr AtkRectangle.x
diff --git a/codegen/argtypes.py b/codegen/argtypes.py
index 6966b4ed..3f145baa 100644
--- a/codegen/argtypes.py
+++ b/codegen/argtypes.py
@@ -3,6 +3,8 @@ import string
import keyword
import struct
+py_ssize_t_clean = False
+
class ArgTypeError(Exception):
pass
@@ -128,7 +130,10 @@ class UCharArg(ArgType):
info.varlist.add('guchar', '*' + pname + ' = "' + pdflt + '"')
else:
info.varlist.add('guchar', '*' + pname)
- info.varlist.add('int', pname + '_len')
+ if py_ssize_t_clean:
+ info.varlist.add('Py_ssize_t', pname + '_len')
+ else:
+ info.varlist.add('int', pname + '_len')
info.arglist.append(pname)
if pnull:
info.add_parselist('z#', ['&' + pname, '&' + pname + '_len'],
diff --git a/codegen/codegen.py b/codegen/codegen.py
index bb25803f..9e954ecb 100644
--- a/codegen/codegen.py
+++ b/codegen/codegen.py
@@ -1330,8 +1330,10 @@ class SourceWriter:
self.prefix = prefix
self.fp = fp
- def write(self):
- self.write_headers()
+ def write(self, py_ssize_t_clean=False):
+ argtypes.py_ssize_t_clean = py_ssize_t_clean
+
+ self.write_headers(py_ssize_t_clean)
self.write_imports()
self.write_type_declarations()
self.write_body()
@@ -1344,11 +1346,28 @@ class SourceWriter:
self.write_enums()
self.write_extension_init()
self.write_registers()
+
+ argtypes.py_ssize_t_clean = False
- def write_headers(self):
+ def write_headers(self, py_ssize_t_clean):
self.fp.write('/* -- THIS FILE IS GENERATED - DO NOT EDIT */')
self.fp.write('/* -*- Mode: C; c-basic-offset: 4 -*- */\n\n')
+ if py_ssize_t_clean:
+ self.fp.write('#define PY_SSIZE_T_CLEAN\n')
self.fp.write('#include <Python.h>\n\n\n')
+ if py_ssize_t_clean:
+ self.fp.write('''
+
+#if PY_VERSION_HEX < 0x02050000
+typedef int Py_ssize_t;
+#define PY_SSIZE_T_MAX INT_MAX
+#define PY_SSIZE_T_MIN INT_MIN
+typedef inquiry lenfunc;
+typedef intargfunc ssizeargfunc;
+typedef intobjargproc ssizeobjargproc;
+#endif
+
+''')
self.fp.write(self.overrides.get_headers())
self.fp.resetline()
self.fp.write('\n\n')
@@ -1632,8 +1651,9 @@ def main(argv):
errorfilename = None
opts, args = getopt.getopt(argv[1:], "o:p:r:t:D:I:",
["override=", "prefix=", "register=", "outfilename=",
- "load-types=", "errorfilename="])
+ "load-types=", "errorfilename=", "py_ssize_t-clean"])
defines = {} # -Dkey[=val] options
+ py_ssize_t_clean = False
for opt, arg in opts:
if opt in ('-o', '--override'):
o = override.Overrides(arg)
@@ -1660,6 +1680,8 @@ def main(argv):
defines[nameval[0]] = None
elif opt == '-I':
defsparser.include_path.insert(0, arg)
+ elif opt == '--py_ssize_t-clean':
+ py_ssize_t_clean = True
if len(args) < 1:
print >> sys.stderr, usage
return 1
@@ -1673,7 +1695,7 @@ def main(argv):
register_types(p)
sw = SourceWriter(p, o, prefix, FileOutput(sys.stdout, outfilename))
- sw.write()
+ sw.write(py_ssize_t_clean)
functions_coverage.printstats()
methods_coverage.printstats()
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 2305223f..2a5f19ec 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -173,6 +173,7 @@ endif
($(PYTHON) $(top_srcdir)/codegen/codegen.py \
$(PYGTK_CODEGEN_DEFINES) \
-I $(srcdir) \
+ --py_ssize_t-clean \
--register $(top_srcdir)/pango-types.defs \
--register $(top_srcdir)/atk-types.defs \
--register gdk-types.defs \
diff --git a/gtk/gdk.override b/gtk/gdk.override
index 484e93b2..d8cdabb1 100644
--- a/gtk/gdk.override
+++ b/gtk/gdk.override
@@ -159,7 +159,7 @@ _wrap_gdk_text_extents(PyObject *self, PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = { "text", NULL };
gchar *text;
- gint length;
+ Py_ssize_t length;
gint lbearing, rbearing, width, ascent, descent;
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s#:GdkFont.extents",
@@ -1365,7 +1365,8 @@ _wrap_gdk_bitmap_create_from_data(PyObject *self, PyObject *args, PyObject *kwar
GdkDrawable *drawable = NULL;
gchar *data;
GdkBitmap *ret;
- int data_len, width, height, rowstride;
+ Py_ssize_t data_len;
+ int width, height, rowstride;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,"Os#ii:bitmap_create_from_data", kwlist, &py_drawable, &data, &data_len, &width, &height))
return NULL;
@@ -1394,7 +1395,8 @@ static PyObject *
_wrap_gdk_pixmap_create_from_data(PyObject *self, PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = { "drawable", "data", "width", "height", "depth", "fg", "bg", NULL };
- int data_len, width, height, depth;
+ Py_ssize_t data_len;
+ int width, height, depth;
GdkPixmap *ret;
PyObject *py_fg, *py_bg;
GdkColor *fg = NULL, *bg = NULL;
diff --git a/gtk/gdkdraw.override b/gtk/gdkdraw.override
index 9e2049ca..1b5bab87 100644
--- a/gtk/gdkdraw.override
+++ b/gtk/gdkdraw.override
@@ -69,7 +69,8 @@ _wrap_gdk_draw_text(PyGObject *self, PyObject *args, PyObject *kwargs)
static char *kwlist[] = { "font", "gc", "x", "y", "text",NULL};
PyGObject *gc;
PyObject *font;
- int x, y, len;
+ int x, y;
+ Py_ssize_t len;
char *text;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"OO!iis#:GdkDrawable.draw_text", kwlist,
@@ -206,7 +207,8 @@ _wrap_gdk_draw_rgb_image(PyGObject *self, PyObject *args, PyObject *kwargs)
"rgb_buf", "rowstride", "xdith", "ydith", NULL };
PyGObject *gc;
PyObject *py_dith;
- gint x, y, width, height, rowstride = -1, xdith = 0, ydith = 0, len;
+ gint x, y, width, height, rowstride = -1, xdith = 0, ydith = 0;
+ Py_ssize_t len;
GdkRgbDither dith;
guchar *rgb_buf;
@@ -251,7 +253,8 @@ _wrap_gdk_draw_rgb_32_image(PyGObject *self, PyObject *args, PyObject *kwargs)
"rgb_buf", "rowstride", "xdith", "ydith", NULL };
PyGObject *gc;
PyObject *py_dith;
- gint x, y, width, height, rowstride = -1, xdith = 0, ydith = 0, len;
+ gint x, y, width, height, rowstride = -1, xdith = 0, ydith = 0;
+ Py_ssize_t len;
GdkRgbDither dith;
guchar *rgb_buf;
@@ -296,7 +299,8 @@ _wrap_gdk_draw_gray_image(PyGObject *self, PyObject *args, PyObject *kwargs)
"buf", "rowstride", NULL };
PyGObject *gc;
PyObject *py_dith;
- gint x, y, width, height, rowstride = -1, len;
+ gint x, y, width, height, rowstride = -1;
+ Py_ssize_t len;
GdkRgbDither dith;
guchar *buf;
@@ -333,7 +337,8 @@ _wrap_gdk_draw_indexed_image(PyGObject *self, PyObject *args, PyObject *kwargs)
"buf", "rowstride", "colors", NULL };
PyGObject *gc;
PyObject *py_dith;
- gint x, y, width, height, rowstride = -1, len;
+ gint x, y, width, height, rowstride = -1;
+ Py_ssize_t len;
GdkRgbDither dith;
guchar *buf;
PyObject *pycolors;
diff --git a/gtk/gdkpixbuf.override b/gtk/gdkpixbuf.override
index 294fb918..91323a68 100644
--- a/gtk/gdkpixbuf.override
+++ b/gtk/gdkpixbuf.override
@@ -167,7 +167,7 @@ _wrap_gdk_pixbuf_save(PyGObject *self, PyObject *args,
if (py_options != NULL) {
guint len;
- gint pos = 0, i = 0;
+ Py_ssize_t pos = 0, i = 0;
PyObject *key, *value;
len = PyDict_Size(py_options);
@@ -221,10 +221,10 @@ pixbuf_save_func(const gchar *buf,
PyObject *ret;
if (data->user_data)
- ret = PyObject_CallFunction(data->callback, "s#O", buf, (int) count, data->user_data);
+ ret = PyObject_CallFunction(data->callback, "s#O", buf, (Py_ssize_t) count, data->user_data);
else
- ret = PyObject_CallFunction(data->callback, "s#", buf, (int) count);
+ ret = PyObject_CallFunction(data->callback, "s#", buf, (Py_ssize_t) count);
if (ret == NULL) {
PyErr_Print();
@@ -256,8 +256,8 @@ _wrap_gdk_pixbuf_save_to_callback(PyGObject *self, PyObject *args,
}
if (py_options != NULL) {
- guint len;
- gint pos = 0, i = 0;
+ Py_ssize_t len;
+ Py_ssize_t pos = 0, i = 0;
PyObject *key, *value;
len = PyDict_Size(py_options);
@@ -305,8 +305,9 @@ _wrap_gdk_pixbuf_new_from_data(PyObject *self, PyObject *args,
const gchar *data;
GdkColorspace colorspace;
gboolean has_alpha;
- gint data_len, bits_per_sample, width, height, rowstride;
- gint required_len;
+ Py_ssize_t data_len;
+ gint bits_per_sample, width, height, rowstride;
+ Py_ssize_t required_len;
guchar *data_copy;
GdkPixbuf *pixbuf;
PyObject *ret;
@@ -320,8 +321,8 @@ _wrap_gdk_pixbuf_new_from_data(PyObject *self, PyObject *args,
required_len = height*rowstride;
if (data_len < required_len) {
PyErr_Format(PyExc_ValueError,
- "data length (%d) is less then required by the other parameters (%d)",
- data_len, required_len);
+ "data length (%ld) is less then required by the other parameters (%ld)",
+ (long int) data_len, (long int) required_len);
return NULL;
}
data_copy = g_try_malloc(required_len);
@@ -488,7 +489,8 @@ _wrap_gdk_pixbuf_loader_write(PyGObject *self,
PyObject *kwargs)
{
static char *kwlist[] = { "buf", "count", NULL };
- int buf_len, count = -1, ret;
+ Py_ssize_t buf_len;
+ int count = -1, ret;
guchar *buf;
GError *error = NULL;
diff --git a/gtk/gdkrectangle.override b/gtk/gdkrectangle.override
index c16b1abe..e1a0fcf0 100644
--- a/gtk/gdkrectangle.override
+++ b/gtk/gdkrectangle.override
@@ -41,13 +41,13 @@ _wrap_gdk_rectangle_new(PyGBoxed *self, PyObject *args, PyObject *kwargs)
}
%%
override-slot GdkRectangle.tp_as_sequence
-static int
+static Py_ssize_t
_wrap_gdk_rectangle_length(PyGBoxed *self)
{
return 4;
}
static PyObject *
-_wrap_gdk_rectangle_getitem(PyGBoxed *self, int pos)
+_wrap_gdk_rectangle_getitem(PyGBoxed *self, Py_ssize_t pos)
{
GdkRectangle *rect;
@@ -68,7 +68,7 @@ _wrap_gdk_rectangle_getitem(PyGBoxed *self, int pos)
}
}
static int
-_wrap_gdk_rectangle_setitem(PyGBoxed *self, int pos, PyObject *value)
+_wrap_gdk_rectangle_setitem(PyGBoxed *self, Py_ssize_t pos, PyObject *value)
{
GdkRectangle *rect;
gint val;
@@ -94,13 +94,13 @@ _wrap_gdk_rectangle_setitem(PyGBoxed *self, int pos, PyObject *value)
return 0;
}
static PySequenceMethods _wrap_gdk_rectangle_tp_as_sequence = {
- (inquiry)_wrap_gdk_rectangle_length,
- (binaryfunc)0,
- (intargfunc)0,
- (intargfunc)_wrap_gdk_rectangle_getitem,
- (intintargfunc)0,
- (intobjargproc)_wrap_gdk_rectangle_setitem,
- (intintobjargproc)0
+ (lenfunc)_wrap_gdk_rectangle_length,
+ 0,
+ 0,
+ (ssizeargfunc)_wrap_gdk_rectangle_getitem,
+ 0,
+ (ssizeobjargproc)_wrap_gdk_rectangle_setitem,
+ 0,
};
%%
override-attr GdkRectangle.x
diff --git a/gtk/gtk-types.c b/gtk/gtk-types.c
index 4490ab41..5286a9df 100644
--- a/gtk/gtk-types.c
+++ b/gtk/gtk-types.c
@@ -19,10 +19,21 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*/
+#define PY_SSIZE_T_CLEAN
+
#include <gtk/gtk.h>
#include "pygtk-private.h"
#include <structmember.h>
+#if PY_VERSION_HEX < 0x02050000
+typedef int Py_ssize_t;
+#define PY_SSIZE_T_MAX INT_MAX
+#define PY_SSIZE_T_MIN INT_MIN
+typedef inquiry lenfunc;
+typedef intargfunc ssizeargfunc;
+typedef intobjargproc ssizeobjargproc;
+#endif
+
#if 0
PyObject *
PyGdkWindow_New(GdkWindow *win)
@@ -80,14 +91,14 @@ pygtk_style_helper_dealloc(PyGtkStyleHelper_Object *self)
PyObject_DEL(self);
}
-static int
+static Py_ssize_t
pygtk_style_helper_length(PyGtkStyleHelper_Object *self)
{
return NUM_STATES;
}
static PyObject *
-pygtk_style_helper_getitem(PyGtkStyleHelper_Object *self, int pos)
+pygtk_style_helper_getitem(PyGtkStyleHelper_Object *self, Py_ssize_t pos)
{
if (pos < 0) pos += NUM_STATES;
if (pos < 0 || pos >= NUM_STATES) {
@@ -118,7 +129,7 @@ pygtk_style_helper_getitem(PyGtkStyleHelper_Object *self, int pos)
}
static int
-pygtk_style_helper_setitem(PyGtkStyleHelper_Object *self, int pos,
+pygtk_style_helper_setitem(PyGtkStyleHelper_Object *self, Py_ssize_t pos,
PyObject *value)
{
extern PyTypeObject PyGdkGC_Type;
@@ -189,13 +200,13 @@ pygtk_style_helper_setitem(PyGtkStyleHelper_Object *self, int pos,
}
static PySequenceMethods pygtk_style_helper_seqmethods = {
- (inquiry)pygtk_style_helper_length,
- (binaryfunc)0,
- (intargfunc)0,
- (intargfunc)pygtk_style_helper_getitem,
- (intintargfunc)0,
- (intobjargproc)pygtk_style_helper_setitem,
- (intintobjargproc)0
+ (lenfunc)pygtk_style_helper_length,
+ 0,
+ 0,
+ (ssizeargfunc)pygtk_style_helper_getitem,
+ 0,
+ (ssizeobjargproc)pygtk_style_helper_setitem,
+ 0,
};
static PyTypeObject PyGtkStyleHelper_Type = {
PyObject_HEAD_INIT(NULL)
@@ -865,14 +876,14 @@ pygtk_tree_model_row_dealloc(PyGtkTreeModelRow *self)
PyObject_DEL(self);
}
-static int
+static Py_ssize_t
pygtk_tree_model_row_length(PyGtkTreeModelRow *self)
{
return gtk_tree_model_get_n_columns(self->model);
}
static PyObject *
-pygtk_tree_model_row_getitem(PyGtkTreeModelRow *self, gint column)
+pygtk_tree_model_row_getitem(PyGtkTreeModelRow *self, Py_ssize_t column)
{
gint n_columns;
GValue value = { 0, };
@@ -890,7 +901,7 @@ pygtk_tree_model_row_getitem(PyGtkTreeModelRow *self, gint column)
}
static int
-pygtk_tree_model_row_setitem(PyGtkTreeModelRow *self, gint column,
+pygtk_tree_model_row_setitem(PyGtkTreeModelRow *self, Py_ssize_t column,
PyObject *pyvalue)
{
gint n_columns;
@@ -924,13 +935,13 @@ pygtk_tree_model_row_setitem(PyGtkTreeModelRow *self, gint column,
}
static PySequenceMethods pygtk_tree_model_row_seqmethods = {
- (inquiry)pygtk_tree_model_row_length,
- (binaryfunc)0,
- (intargfunc)0,
- (intargfunc)pygtk_tree_model_row_getitem,
- (intintargfunc)0,
- (intobjargproc)pygtk_tree_model_row_setitem,
- (intintobjargproc)0
+ (lenfunc)pygtk_tree_model_row_length,
+ 0,
+ 0,
+ (ssizeargfunc)pygtk_tree_model_row_getitem,
+ 0,
+ (ssizeobjargproc)pygtk_tree_model_row_setitem,
+ 0
};
static PyObject *
diff --git a/gtk/gtk.override b/gtk/gtk.override
index 40562d99..b9bcaabb 100644
--- a/gtk/gtk.override
+++ b/gtk/gtk.override
@@ -567,7 +567,8 @@ _wrap_gtk_selection_data_set(PyGBoxed *self, PyObject *args, PyObject *kwargs)
static char *kwlist[] = { "type", "format", "data", NULL };
PyObject *py_type;
GdkAtom type;
- int format, length;
+ int format;
+ Py_ssize_t length;
guchar *data;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
@@ -1274,7 +1275,8 @@ _wrap_gtk_editable_insert_text(PyGObject *self, PyObject *args,
{
static char *kwlist[] = { "text", "position", NULL };
char *text;
- int len, position=0;
+ Py_ssize_t len;
+ int position=0;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"s#|i:GtkEditable.insert_text",
@@ -1979,13 +1981,13 @@ _wrap_gtk_image_menu_item_new(PyGObject *self, PyObject *args,PyObject *kwargs)
}
%%
override-slot GtkRequisition.tp_as_sequence
-static int
+static Py_ssize_t
_wrap_gtk_requisition_length(PyGBoxed *self)
{
return 2;
}
static PyObject *
-_wrap_gtk_requisition_getitem(PyGBoxed *self, int pos)
+_wrap_gtk_requisition_getitem(PyGBoxed *self, Py_ssize_t pos)
{
GtkRequisition *requisition;
@@ -2004,7 +2006,7 @@ _wrap_gtk_requisition_getitem(PyGBoxed *self, int pos)
}
}
static int
-_wrap_gtk_requisition_setitem(PyGBoxed *self, int pos, PyObject *value)
+_wrap_gtk_requisition_setitem(PyGBoxed *self, Py_ssize_t pos, PyObject *value)
{
GtkRequisition *requisition;
gint val;
@@ -2028,13 +2030,13 @@ _wrap_gtk_requisition_setitem(PyGBoxed *self, int pos, PyObject *value)
return 0;
}
static PySequenceMethods _wrap_gtk_requisition_tp_as_sequence = {
- (inquiry)_wrap_gtk_requisition_length,
- (binaryfunc)0,
- (intargfunc)0,
- (intargfunc)_wrap_gtk_requisition_getitem,
- (intintargfunc)0,
- (intobjargproc)_wrap_gtk_requisition_setitem,
- (intintobjargproc)0
+ (lenfunc)_wrap_gtk_requisition_length,
+ 0,
+ 0,
+ (ssizeargfunc)_wrap_gtk_requisition_getitem,
+ 0,
+ (ssizeobjargproc)_wrap_gtk_requisition_setitem,
+ 0,
};
%%
override-attr GtkRequisition.width
@@ -4188,7 +4190,8 @@ _wrap_gtk_ui_manager_add_ui_from_string(PyGObject *self, PyObject *args, PyObjec
{
static char *kwlist[] = { "buffer", NULL };
char *buffer;
- int length, ret;
+ Py_ssize_t length;
+ int ret;
GError *error = NULL;
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s#:GtkUIManager.add_ui_from_string",
@@ -4362,7 +4365,7 @@ _wrap_gtk_cell_layout_set_attributes(PyGObject *self, PyObject *args,
{
PyObject *py_cell, *key, *item;
GtkCellRenderer *cell;
- gint i = 0;
+ Py_ssize_t i = 0;
if (!PyArg_ParseTuple(args, "O!:GtkCellLayout.set_attributes",
&PyGtkCellRenderer_Type, &py_cell))
@@ -6819,7 +6822,7 @@ clipboard_request_rich_text_cb(GtkClipboard *clipboard,
data = (PyObject *) user_data;
if (text) {
- py_text = PyString_FromString(text);
+ py_text = PyString_FromString((char *) text);
} else {
py_text = Py_None;
Py_INCREF(Py_None);
@@ -6893,7 +6896,7 @@ _wrap_gtk_clipboard_wait_for_rich_text(PyGObject *self, PyObject *args,
if (ret) {
PyObject *py_ret;
name = gdk_atom_name(format);
- py_ret = Py_BuildValue("(s#s)", ret, length, name);
+ py_ret = Py_BuildValue("(s#s)", ret, (Py_ssize_t) length, name);
g_free(ret);
g_free(name);
return py_ret;
@@ -7118,7 +7121,7 @@ _wrap_gtk_recent_chooser_get_uris(PyGObject *self)
{
gchar **uris;
PyObject *py_uris;
- guint length, i;
+ gsize length, i;
uris = gtk_recent_chooser_get_uris(GTK_RECENT_CHOOSER(self->obj),
&length);
@@ -7324,7 +7327,7 @@ _wrap_gtk_recent_info_get_applications(PyGObject *self)
{
gchar **apps;
PyObject *py_apps;
- guint length, i;
+ gsize length, i;
apps = gtk_recent_info_get_applications(pyg_boxed_get(self, GtkRecentInfo),
&length);
@@ -7344,7 +7347,7 @@ _wrap_gtk_recent_info_get_groups(PyGObject *self)
{
gchar **groups;
PyObject *py_groups;
- guint length, i;
+ gsize length, i;
groups = gtk_recent_info_get_groups(pyg_boxed_get(self, GtkRecentInfo),
&length);
@@ -8064,7 +8067,8 @@ _wrap_GtkEditable__do_insert_text(PyObject *cls, PyObject *args, PyObject *kwarg
gpointer klass;
static char *kwlist[] = { "self", "text", "position", NULL };
PyGObject *self;
- int text_len, position;
+ Py_ssize_t text_len;
+ int position;
char *text;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!s#i:GtkEditable.do_insert_text", kwlist,
@@ -8095,7 +8099,8 @@ _wrap_GtkEditable__do_do_insert_text(PyObject *cls, PyObject *args, PyObject *kw
gpointer klass;
static char *kwlist[] = { "self", "text", "position", NULL };
PyGObject *self;
- int text_len, position;
+ Py_ssize_t text_len;
+ int position;
char *text;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!s#i:GtkEditable.do_do_insert_text", kwlist,
diff --git a/gtk/gtkcontainer.override b/gtk/gtkcontainer.override
index 57b48a4b..b91f419e 100644
--- a/gtk/gtkcontainer.override
+++ b/gtk/gtkcontainer.override
@@ -833,20 +833,20 @@ _wrap_gtk_container_tp_iter(PyGObject *self)
}
%%
override-slot GtkContainer.tp_as_sequence
-static int
+static Py_ssize_t
_wrap_gtk_container_sq_length(PyGObject *self)
{
return g_list_length(gtk_container_get_children(GTK_CONTAINER(self->obj)));
}
static PySequenceMethods _wrap_gtk_container_tp_as_sequence = {
- (inquiry)_wrap_gtk_container_sq_length,
- (binaryfunc)0,
- (intargfunc)0,
- (intargfunc)0,
- (intintargfunc)0,
- (intobjargproc)0,
- (intintobjargproc)0
+ (lenfunc)_wrap_gtk_container_sq_length,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
};
%%
override-slot GtkContainer.tp_as_number
diff --git a/gtk/gtktextview.override b/gtk/gtktextview.override
index 56e3b7ae..4a2a0a2f 100644
--- a/gtk/gtktextview.override
+++ b/gtk/gtktextview.override
@@ -451,7 +451,8 @@ static PyObject *
_wrap_gtk_text_buffer_insert_with_tags(PyGObject *self, PyObject *args)
{
PyObject *first, *py_iter;
- gint len, i, text_len, start_offset;
+ gint len, i, start_offset;
+ Py_ssize_t text_len;
gchar *text;
GtkTextIter *iter, start;
@@ -506,7 +507,8 @@ static PyObject *
_wrap_gtk_text_buffer_insert_with_tags_by_name(PyGObject *self, PyObject *args)
{
PyObject *first, *py_iter;
- gint len, i, text_len, start_offset;
+ gint len, i, start_offset;
+ Py_ssize_t text_len;
gchar *text;
GtkTextIter *iter, start;
@@ -587,7 +589,7 @@ _wrap_gtk_text_buffer_create_tag(PyGObject *self, PyObject *args, PyObject *kwar
/* set tag properties if any */
if (kwargs) {
- gint i = 0;
+ Py_ssize_t i = 0;
PyObject *prop, *val;
while (PyDict_Next(kwargs, &i, &prop, &val)) {
@@ -742,7 +744,8 @@ _wrap_gtk_text_buffer_set_text(PyGObject *self, PyObject *args, PyObject *kwargs
{
char *text;
static char *kwlist[] = { "text", "len", NULL };
- int len, oldlen = -1;
+ Py_ssize_t len;
+ int oldlen = -1;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"s#|i:GtkTextBuffer.set_text", kwlist,
@@ -787,7 +790,8 @@ _wrap_gtk_text_buffer_insert(PyGObject *self, PyObject *args,
static char *kwlist[] = { "iter", "text", "len", NULL };
PyObject *py_iter;
char *text;
- int len, oldlen = -1;
+ Py_ssize_t len;
+ int oldlen = -1;
GtkTextIter *iter = NULL;
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Os#|i:GtkTextBuffer.insert",
@@ -821,7 +825,8 @@ _wrap_gtk_text_buffer_insert_at_cursor(PyGObject *self, PyObject *args,
{
static char *kwlist[] = { "text", "len", NULL };
char *text;
- int len, oldlen = -1;
+ Py_ssize_t len;
+ int oldlen = -1;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"s#|i:GtkTextBuffer.insert_at_cursor",
@@ -850,7 +855,8 @@ _wrap_gtk_text_buffer_insert_interactive(PyGObject *self, PyObject *args,
static char *kwlist[] = { "iter", "text", "default_editable", "len", NULL };
PyObject *py_iter;
char *text;
- int len, default_editable, ret, oldlen = -1;
+ int default_editable, ret, oldlen = -1;
+ Py_ssize_t len;
GtkTextIter *iter = NULL;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
@@ -890,7 +896,8 @@ _wrap_gtk_text_buffer_insert_interactive_at_cursor(PyGObject *self, PyObject *ar
{
static char *kwlist[] = { "text", "default_editable", "len", NULL };
char *text;
- int len, default_editable, ret, oldlen = -1;
+ Py_ssize_t len;
+ int default_editable, ret, oldlen = -1;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"s#i|i:GtkTextBuffer.insert_interactive_at_cursor",
@@ -1303,7 +1310,7 @@ _wrap_gtk_text_buffer_deserialize(PyGObject *self, PyObject *args,
{
static char *kwlist[] = { "content_buffer", "format", "iter", "data",
NULL };
- gsize length;
+ Py_ssize_t length;
PyObject *py_format = NULL, *py_iter;
GdkAtom format;
GError *error = NULL;
@@ -1313,7 +1320,7 @@ _wrap_gtk_text_buffer_deserialize(PyGObject *self, PyObject *args,
GtkTextIter *iter = NULL;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O!OOs#k:GtkTextBuffer.deserialize",
+ "O!OOs#:GtkTextBuffer.deserialize",
kwlist, &PyGtkTextBuffer_Type,
&content_buffer, &py_format, &py_iter,
&data, &length))
@@ -1353,7 +1360,7 @@ _wrap_gtk_text_buffer_serialize(PyGObject *self, PyObject *args,
GtkTextIter *start = NULL, *end = NULL;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "O!OOs#k:GtkTextBuffer.serialize",
+ "O!OOO:GtkTextBuffer.serialize",
kwlist, &PyGtkTextBuffer_Type,
&content_buffer, &py_format, &py_start,
&py_end))
@@ -1379,7 +1386,7 @@ _wrap_gtk_text_buffer_serialize(PyGObject *self, PyObject *args,
ret = gtk_text_buffer_serialize(GTK_TEXT_BUFFER(self->obj),
GTK_TEXT_BUFFER(content_buffer->obj),
format, start, end, &length);
- return PyString_FromStringAndSize(ret, length);
+ return PyString_FromStringAndSize((char *) ret, (Py_ssize_t) length);
}
%%
override gtk_text_buffer_register_deserialize_format kwargs
@@ -1405,7 +1412,7 @@ pygtk_text_buffer_register_deserialize_format_cb(GtkTextBuffer *register_buf,
py_register_buf = pygobject_new((GObject*)register_buf);
py_content_buf = pygobject_new((GObject*)content_buf);
py_iter = pyg_boxed_new(GTK_TYPE_TEXT_ITER, iter, TRUE, TRUE);
- py_data = PyString_FromStringAndSize(data, length);
+ py_data = PyString_FromStringAndSize((char *) data, length);
if (cunote->data) {
retobj = PyEval_CallFunction(cunote->func, "(NNNNiO)",
py_register_buf, py_content_buf,
@@ -1500,7 +1507,7 @@ pygtk_text_buffer_register_serialize_format_cb(GtkTextBuffer *register_buf,
}
if (retobj != NULL) {
- PyString_AsStringAndSize(retobj, (gchar**)&ret, length);
+ PyString_AsStringAndSize(retobj, (gchar**)&ret, (Py_ssize_t*) length);
Py_DECREF(retobj);
} else {
PyErr_Print();
diff --git a/gtk/gtktreeview.override b/gtk/gtktreeview.override
index 7a298f23..9a16a331 100644
--- a/gtk/gtktreeview.override
+++ b/gtk/gtktreeview.override
@@ -80,7 +80,7 @@ _wrap_gtk_tree_view_column_new(PyGObject *self, PyObject*args, PyObject*kwargs)
GtkTreeViewColumn *tvc;
gchar *title = NULL;
GtkCellRenderer *cell = NULL;
- gint i = 0;
+ Py_ssize_t i = 0;
if (!PyArg_ParseTuple(args, "|zO:GtkTreeViewColumn.__init__", &title,
&py_cell))
@@ -340,7 +340,7 @@ _wrap_gtk_tree_view_insert_column_with_attributes(PyGObject *self, PyObject *arg
GtkCellRenderer *cell;
PyObject *py_cell, *key, *item;
const char *title;
- gint i = 0;
+ Py_ssize_t i = 0;
if (!PyArg_ParseTuple(args,
"isO!:GtkTreeView.insert_column_with_attributes",
@@ -979,7 +979,7 @@ static PyNumberMethods _wrap_gtk_tree_model_tp_as_number = {
};
%%
override-slot GtkTreeModel.tp_as_mapping
-static int
+static Py_ssize_t
_wrap_gtk_tree_model_tp_length(PyGObject *self)
{
return gtk_tree_model_iter_n_children(GTK_TREE_MODEL(self->obj), NULL);
@@ -1075,7 +1075,7 @@ _wrap_gtk_tree_model_tp_setitem(PyGObject *self, PyObject *item,
}
static PyMappingMethods _wrap_gtk_tree_model_tp_as_mapping = {
- (inquiry)_wrap_gtk_tree_model_tp_length,
+ (lenfunc)_wrap_gtk_tree_model_tp_length,
(binaryfunc)_wrap_gtk_tree_model_tp_getitem,
(objobjargproc)_wrap_gtk_tree_model_tp_setitem
};
diff --git a/pango.override b/pango.override
index e6c70357..043c3199 100644
--- a/pango.override
+++ b/pango.override
@@ -1108,7 +1108,7 @@ _wrap_pango_glyph_string_get_logical_widths(PyObject *self, PyObject *args,
static char *kwlist[] = { "text", "embedding_level", NULL };
const char *text;
gint length, embedding_level, *logical_widths;
- gint i, slen;
+ Py_ssize_t i, slen;
PyObject *ret;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
@@ -1136,7 +1136,7 @@ _wrap_pango_layout_set_markup(PyGObject *self, PyObject *args,PyObject *kwargs)
{
static char *kwlist[] = { "markup", NULL };
char *markup;
- gint length;
+ Py_ssize_t length;
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s#:PangoLayout.set_markup",
kwlist, &markup, &length))
@@ -1155,7 +1155,7 @@ _wrap_pango_layout_set_markup_with_accel(PyGObject *self, PyObject *args,
{
static char *kwlist[] = { "markup", "accel_marker", NULL };
char *markup;
- gint length, accel_length;
+ Py_ssize_t length, accel_length;
Py_UNICODE *accel_marker, pychr;
gunichar accel_char;
@@ -1321,9 +1321,9 @@ _wrap_pango_parse_markup(PyObject *self, PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = { "markup_text", "accel_marker", NULL };
char *markup_text, *text = NULL;
- gint length;
+ Py_ssize_t length;
Py_UNICODE *py_accel_marker = NULL, py_accel_char;
- gint py_accel_marker_len;
+ Py_ssize_t py_accel_marker_len;
gunichar accel_marker, accel_char = 0;
PangoAttrList *attr_list = NULL;
GError *error = NULL;
@@ -1358,7 +1358,7 @@ _wrap_pango_parse_markup(PyObject *self, PyObject *args, PyObject *kwargs)
py_ret = Py_BuildValue("(Nsu#)", pyg_boxed_new(PANGO_TYPE_ATTR_LIST,
attr_list, FALSE, TRUE),
- text, &py_accel_char, 1);
+ text, &py_accel_char, (Py_ssize_t) 1);
g_free(text);
return py_ret;
}
@@ -1409,7 +1409,7 @@ _wrap_pango_layout_set_text(PyGObject *self, PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = { "text", NULL };
char *text;
- gint length;
+ Py_ssize_t length;
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s#:PangoLayout.set_text",
kwlist, &text, &length))