diff options
author | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2006-10-03 17:49:17 +0000 |
---|---|---|
committer | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2006-10-03 17:49:17 +0000 |
commit | a31aee46eed48d5d1c26a6738f7a9ca60f19e9db (patch) | |
tree | d8c5e37c862082953ef118c0a7d5781a4ce2b184 | |
parent | e095923a6eed461114cf30ecf211851dc11edb50 (diff) | |
download | pygtk-a31aee46eed48d5d1c26a6738f7a9ca60f19e9db.tar.gz |
Bug 337368 – Make PyGTK work with Python 2.5 and 64-bit
-rw-r--r-- | ChangeLog | 23 | ||||
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | atk.override | 11 | ||||
-rw-r--r-- | atkrectangle.override | 22 | ||||
-rw-r--r-- | codegen/argtypes.py | 7 | ||||
-rw-r--r-- | codegen/codegen.py | 32 | ||||
-rw-r--r-- | gtk/Makefile.am | 1 | ||||
-rw-r--r-- | gtk/gdk.override | 8 | ||||
-rw-r--r-- | gtk/gdkdraw.override | 15 | ||||
-rw-r--r-- | gtk/gdkpixbuf.override | 22 | ||||
-rw-r--r-- | gtk/gdkrectangle.override | 20 | ||||
-rw-r--r-- | gtk/gtk-types.c | 51 | ||||
-rw-r--r-- | gtk/gtk.override | 47 | ||||
-rw-r--r-- | gtk/gtkcontainer.override | 16 | ||||
-rw-r--r-- | gtk/gtktextview.override | 35 | ||||
-rw-r--r-- | gtk/gtktreeview.override | 8 | ||||
-rw-r--r-- | pango.override | 14 |
17 files changed, 210 insertions, 123 deletions
@@ -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)) |