Author: Amaury Forgeot d'Arc <amaur...@gmail.com> Branch: py3k Changeset: r58759:b0e1b5721cf7 Date: 2012-11-05 22:47 +0100 http://bitbucket.org/pypy/pypy/changeset/b0e1b5721cf7/
Log: Fixes in _ctypes module diff --git a/lib_pypy/_ctypes/array.py b/lib_pypy/_ctypes/array.py --- a/lib_pypy/_ctypes/array.py +++ b/lib_pypy/_ctypes/array.py @@ -216,7 +216,7 @@ ARRAY_CACHE = {} def create_array_type(base, length): - if not isinstance(length, (int, long)): + if not isinstance(length, int): raise TypeError("Can't multiply a ctypes type by a non-integer") if length < 0: raise ValueError("Array length must be >= 0") diff --git a/lib_pypy/_ctypes/function.py b/lib_pypy/_ctypes/function.py --- a/lib_pypy/_ctypes/function.py +++ b/lib_pypy/_ctypes/function.py @@ -461,13 +461,13 @@ # jit trace of the normal case from ctypes import c_char_p, c_wchar_p, c_void_p, c_int # - if isinstance(arg, str): + if isinstance(arg, bytes): cobj = c_char_p(arg) - elif isinstance(arg, unicode): + elif isinstance(arg, str): cobj = c_wchar_p(arg) elif arg is None: cobj = c_void_p() - elif isinstance(arg, long): + elif isinstance(arg, int): cobj = c_int(arg) else: raise TypeError("Don't know how to handle %s" % (arg,)) diff --git a/lib_pypy/_ctypes/primitive.py b/lib_pypy/_ctypes/primitive.py --- a/lib_pypy/_ctypes/primitive.py +++ b/lib_pypy/_ctypes/primitive.py @@ -64,7 +64,7 @@ def generic_xxx_p_from_param(cls, value): if value is None: return cls(None) - if isinstance(value, basestring): + if isinstance(value, (str, bytes)): return cls(value) if isinstance(value, _SimpleCData) and \ type(value)._type_ in 'zZP': @@ -131,10 +131,7 @@ return _rawffi.charp2string(addr) def _setvalue(self, value): - if isinstance(value, basestring): - if isinstance(value, unicode): - value = value.encode(ConvMode.encoding, - ConvMode.errors) + if isinstance(value, bytes): #self._objects = value array = _rawffi.Array('c')(len(value)+1, value) self._objects = CArgObject(value, array) @@ -155,10 +152,7 @@ return _rawffi.wcharp2unicode(addr) def _setvalue(self, value): - if isinstance(value, basestring): - if isinstance(value, str): - value = value.decode(ConvMode.encoding, - ConvMode.errors) + if isinstance(value, str): #self._objects = value array = _rawffi.Array('u')(len(value)+1, value) self._objects = CArgObject(value, array) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit