[Checkins] SVN: zope.proxy/trunk/src/zope/proxy/ Made compatible with Python 2.5 on 64 bit architectures. See PEP 353.

Shane Hathaway shane at hathawaymix.org
Mon Jul 14 10:17:34 EDT 2008


Log message for revision 88347:
  Made compatible with Python 2.5 on 64 bit architectures.  See PEP 353.
  

Changed:
  U   zope.proxy/trunk/src/zope/proxy/_zope_proxy_proxy.c
  U   zope.proxy/trunk/src/zope/proxy/proxy.h

-=-
Modified: zope.proxy/trunk/src/zope/proxy/_zope_proxy_proxy.c
===================================================================
--- zope.proxy/trunk/src/zope/proxy/_zope_proxy_proxy.c	2008-07-14 13:17:47 UTC (rev 88346)
+++ zope.proxy/trunk/src/zope/proxy/_zope_proxy_proxy.c	2008-07-14 14:17:31 UTC (rev 88347)
@@ -620,14 +620,14 @@
  *   Sequence methods
  */
 
-static int
+static Py_ssize_t
 wrap_length(PyObject *self)
 {
     return PyObject_Length(Proxy_GET_OBJECT(self));
 }
 
 static PyObject *
-wrap_slice(PyObject *self, int start, int end)
+wrap_slice(PyObject *self, Py_ssize_t start, Py_ssize_t end)
 {
     PyObject *obj = Proxy_GET_OBJECT(self);
     if (PyList_Check(obj)) {
@@ -642,7 +642,7 @@
 }
 
 static int
-wrap_ass_slice(PyObject *self, int i, int j, PyObject *value)
+wrap_ass_slice(PyObject *self, Py_ssize_t i, Py_ssize_t j, PyObject *value)
 {
     PyObject *obj = Proxy_GET_OBJECT(self);
     if (PyList_Check(obj)) {

Modified: zope.proxy/trunk/src/zope/proxy/proxy.h
===================================================================
--- zope.proxy/trunk/src/zope/proxy/proxy.h	2008-07-14 13:17:47 UTC (rev 88346)
+++ zope.proxy/trunk/src/zope/proxy/proxy.h	2008-07-14 14:17:31 UTC (rev 88347)
@@ -1,6 +1,17 @@
 #ifndef _proxy_H_
 #define _proxy_H_ 1
 
+#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
+typedef int Py_ssize_t;
+#define PY_SSIZE_T_MAX INT_MAX
+#define PY_SSIZE_T_MIN INT_MIN
+typedef Py_ssize_t (*lenfunc)(PyObject *);
+typedef PyObject *(*ssizeargfunc)(PyObject *, Py_ssize_t);
+typedef PyObject *(*ssizessizeargfunc)(PyObject *, Py_ssize_t, Py_ssize_t);
+typedef int(*ssizeobjargproc)(PyObject *, Py_ssize_t, PyObject *);
+typedef int(*ssizessizeobjargproc)(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *);
+#endif
+
 typedef struct {
     PyObject_HEAD
     PyObject *proxy_object;



More information about the Checkins mailing list