[PyQt] PyKDE4 build error - int/Py_ssize_t conversions

Jim Bublitz jbublitz at nwinternet.com
Tue Sep 4 18:02:02 BST 2007


On Tuesday 04 September 2007 04:42, Martin Böhm wrote:
> Hello list,
>
> there are some trouble with compiling the latest and greatest PyKDE4
> (from KDE's on a 64bit machine, with Python 2.5.1.
>
> Namely it starts like this:
>
> sip/kdecore/kurl.sip: In function 'PyObject*
> slot_KUrl_List___getitem__(PyObject*, PyObject*)':
> sip/kdecore/kurl.sip:167: error: cannot convert 'int*' to
> 'Py_ssize_t*' for argument '3' to 'int
> PySlice_GetIndicesEx(PySliceObject*, Py_ssize_t, Py_ssize_t*,
> Py_ssize_t*, Py_ssize_t*, Py_ssize_t*)'
> sip/kdecore/kurl.sip: In function 'int
> slot_KUrl_List___delitem__(PyObject*, PyObject*)':
> sip/kdecore/kurl.sip:135: error: cannot convert 'int*' to
> 'Py_ssize_t*' for argument '3' to 'int
> PySlice_GetIndicesEx(PySliceObject*, Py_ssize_t, Py_ssize_t*,
> Py_ssize_t*, Py_ssize_t*, Py_ssize_t*)'
> sip/kdecore/kurl.sip: In function 'int
> slot_KUrl_List___setitem__(PyObject*, PyObject*)':
> sip/kdecore/kurl.sip:93: error: cannot convert 'int*' to 'Py_ssize_t*'
> for argument '3' to 'int PySlice_GetIndicesEx(PySliceObject*,
> Py_ssize_t, Py_ssize_t*, Py_ssize_t*, Py_ssize_t*, Py_ssize_t*)'
>
> Google search found out that this error was fixed in the past by
> replacing some "int" definitions into "SIP_SSIZE_T". I've tried
> replacing them with "ssize_t" and it indeed continued compiling. Some
> more of similar errors are deeper down.
>
> Simon told me on IRC that it might be useful to post it here, which I am
> doing.

I'll have to look at how Phil handled the typing for PyQt4/QStringList because 
that's where I stole the code from. Apparently I didn't steal quite enough. 
If you got that far, PyQt4 compiled correctly.

It should show up in a couple of other places as well, unless KUrl::List is 
still older code and I copied newer code for the other instances.

> PS: Thanks to everyone for their work on (and with) pyqt and pykde!

My pleasure.

Thanks for the early bug report!

Jim



More information about the PyQt mailing list