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

Reply via email to