Author: Amaury Forgeot d'Arc <[email protected]>
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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit