From c1432d5dc66274596ec743c608e97e6034e897df Mon Sep 17 00:00:00 2001 From: Olivier Aubert Date: Tue, 6 Mar 2007 14:44:54 +0000 Subject: [PATCH] python bindings: * use Py_ssize_t as index type (cf http://www.python.org/dev/peps/pep-0353/) * fix audio_[gs]et_channel parameter/return value type --- bindings/python/vlc_instance.c | 21 +++++++++------------ bindings/python/vlc_internal.c | 8 ++++---- bindings/python/vlc_mediacontrol.c | 8 ++++---- bindings/python/vlcglue.h | 7 +++++++ 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/bindings/python/vlc_instance.c b/bindings/python/vlc_instance.c index fbceaf8f84..e3d6f1d1b5 100644 --- a/bindings/python/vlc_instance.c +++ b/bindings/python/vlc_instance.c @@ -23,11 +23,11 @@ #include "vlcglue.h" /* Helper functions */ -static int +static Py_ssize_t pyoptions_to_args(PyObject *py_options, char*** pppsz_args) { - int i_size; - int i_index; + Py_ssize_t i_size; + Py_ssize_t i_index; char** ppsz_args = *pppsz_args; ppsz_args = NULL; @@ -438,28 +438,25 @@ static PyObject * vlcInstance_audio_get_channel( PyObject *self, PyObject *args ) { libvlc_exception_t ex; - char* psz_ret; - PyObject* o_ret; + int i_ret; LIBVLC_TRY; - psz_ret = libvlc_audio_get_channel( LIBVLC_INSTANCE->p_instance, &ex ); + i_ret = libvlc_audio_get_channel( LIBVLC_INSTANCE->p_instance, &ex ); LIBVLC_EXCEPT; - o_ret=Py_BuildValue( "s", psz_ret ); - free( psz_ret ); - return o_ret; + return Py_BuildValue( "i", i_ret ); } static PyObject * vlcInstance_audio_set_channel( PyObject *self, PyObject *args ) { libvlc_exception_t ex; - char* psz_channel; + int i_channel; - if( !PyArg_ParseTuple( args, "s", &psz_channel ) ) + if( !PyArg_ParseTuple( args, "i", &i_channel ) ) return NULL; LIBVLC_TRY; - libvlc_audio_set_channel( LIBVLC_INSTANCE->p_instance, psz_channel, &ex ); + libvlc_audio_set_channel( LIBVLC_INSTANCE->p_instance, i_channel, &ex ); LIBVLC_EXCEPT; Py_INCREF( Py_None ); return Py_None; diff --git a/bindings/python/vlc_internal.c b/bindings/python/vlc_internal.c index eb6e54a5a8..f19d6e3c81 100644 --- a/bindings/python/vlc_internal.c +++ b/bindings/python/vlc_internal.c @@ -499,8 +499,8 @@ static PyObject * vlcObject_var_list( PyObject *self, PyObject *args ) { PyObject *p_retval; - int i_size; - int i_index; + Py_ssize_t i_size; + Py_ssize_t i_index; i_size = VLCSELF->p_object->i_vars; p_retval = PyTuple_New( i_size ); @@ -619,8 +619,8 @@ static PyObject * vlcObject_children( PyObject *self, PyObject *args ) { PyObject *p_retval; - int i_size; - int i_index; + Py_ssize_t i_size; + Py_ssize_t i_index; i_size = VLCSELF->p_object->i_children; p_retval = PyTuple_New( i_size ); diff --git a/bindings/python/vlc_mediacontrol.c b/bindings/python/vlc_mediacontrol.c index c7f22b6e3f..085cb854fd 100644 --- a/bindings/python/vlc_mediacontrol.c +++ b/bindings/python/vlc_mediacontrol.c @@ -36,7 +36,7 @@ MediaControl_new( PyTypeObject *type, PyObject *args, PyObject *kwds ) PyObject* py_param = NULL; char** ppsz_args = NULL; libvlc_instance_t* p_instance = NULL; - int i_size = 0; + Py_ssize_t i_size = 0; self = PyObject_New( MediaControl, &MediaControl_Type ); @@ -49,7 +49,7 @@ MediaControl_new( PyTypeObject *type, PyObject *args, PyObject *kwds ) } else { - int i_index; + Py_ssize_t i_index; if( ! PySequence_Check( py_param ) ) { @@ -341,8 +341,8 @@ MediaControl_playlist_get_list( PyObject *self, PyObject *args ) PyObject *py_retval; mediacontrol_Exception *exception = NULL; mediacontrol_PlaylistSeq* pl; - int i_index; - int i_playlist_size; + Py_ssize_t i_index; + Py_ssize_t i_playlist_size; Py_BEGIN_ALLOW_THREADS MC_TRY; diff --git a/bindings/python/vlcglue.h b/bindings/python/vlcglue.h index 16f0bd47e6..ad5509c3ab 100644 --- a/bindings/python/vlcglue.h +++ b/bindings/python/vlcglue.h @@ -33,6 +33,13 @@ #include #include +/* Python 2.5 64-bit support compatibility define */ +#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 +#endif + #define SELF ((MediaControl*)self) /********************************************************************** -- 2.39.2