[pypy-commit] pypy ffi-backend: List the places that will need wchar_t support

arigo noreply at buildbot.pypy.org
Thu Jul 26 21:57:21 CEST 2012


Author: Armin Rigo <arigo at tunes.org>
Branch: ffi-backend
Changeset: r56481:dd764345d088
Date: 2012-07-26 16:42 +0200
http://bitbucket.org/pypy/pypy/changeset/dd764345d088/

Log:	List the places that will need wchar_t support

diff --git a/pypy/module/_cffi_backend/cdataobj.py b/pypy/module/_cffi_backend/cdataobj.py
--- a/pypy/module/_cffi_backend/cdataobj.py
+++ b/pypy/module/_cffi_backend/cdataobj.py
@@ -316,6 +316,7 @@
     __float__ = interp2app(W_CData.float),
     __len__ = interp2app(W_CData.len),
     __str__ = interp2app(W_CData.str),
+    #XXX WCHAR __unicode__ =
     __lt__ = interp2app(W_CData.lt),
     __le__ = interp2app(W_CData.le),
     __eq__ = interp2app(W_CData.eq),
diff --git a/pypy/module/_cffi_backend/ctypearray.py b/pypy/module/_cffi_backend/ctypearray.py
--- a/pypy/module/_cffi_backend/ctypearray.py
+++ b/pypy/module/_cffi_backend/ctypearray.py
@@ -109,6 +109,7 @@
                 cdata[i] = s[i]
             if n != self.length:
                 cdata[n] = '\x00'
+        #XXX WCHAR
         else:
             raise self._convert_error("list or tuple", w_ob)
 
diff --git a/pypy/module/_cffi_backend/ctypefunc.py b/pypy/module/_cffi_backend/ctypefunc.py
--- a/pypy/module/_cffi_backend/ctypefunc.py
+++ b/pypy/module/_cffi_backend/ctypefunc.py
@@ -126,6 +126,8 @@
                     # set the "must free" flag to 0
                     set_mustfree_flag(data, 0)
                 #
+                #XXX WCHAR unicode raises NotImplementedError
+                #
                 argtype.convert_from_object(data, w_obj)
             resultdata = rffi.ptradd(buffer, cif_descr.exchange_result)
 
diff --git a/pypy/module/_cffi_backend/ctypeprim.py b/pypy/module/_cffi_backend/ctypeprim.py
--- a/pypy/module/_cffi_backend/ctypeprim.py
+++ b/pypy/module/_cffi_backend/ctypeprim.py
@@ -44,6 +44,7 @@
         elif space.isinstance_w(w_ob, space.w_str):
             value = self.cast_str(w_ob)
             value = r_ulonglong(value)
+        #XXX WCHAR space.w_unicode
         else:
             value = misc.as_unsigned_long_long(space, w_ob, strict=False)
         w_cdata = cdataobj.W_CDataCasted(space, self.size, self)
@@ -59,6 +60,7 @@
 
 class W_CTypePrimitiveChar(W_CTypePrimitive):
     cast_anything = True
+    #XXX WCHAR class PrimitiveUniChar
 
     def int(self, cdata):
         return self.space.wrap(ord(cdata[0]))
diff --git a/pypy/module/_cffi_backend/newtype.py b/pypy/module/_cffi_backend/newtype.py
--- a/pypy/module/_cffi_backend/newtype.py
+++ b/pypy/module/_cffi_backend/newtype.py
@@ -36,6 +36,7 @@
 eptype("unsigned long long", rffi.LONGLONG, ctypeprim.W_CTypePrimitiveUnsigned)
 eptype("float",  rffi.FLOAT,  ctypeprim.W_CTypePrimitiveFloat)
 eptype("double", rffi.DOUBLE, ctypeprim.W_CTypePrimitiveFloat)
+#XXX WCHAR
 
 @unwrap_spec(name=str)
 def new_primitive_type(space, name):
@@ -158,6 +159,7 @@
                      isinstance(ftype, ctypeprim.W_CTypePrimitiveChar)) or
                 fbitsize == 0 or
                 fbitsize > 8 * ftype.size):
+                #XXX WCHAR: reach here if ftype is PrimitiveUniChar
                 raise operationerrfmt(space.w_TypeError,
                                       "invalid bit field '%s'", fname)
             if prev_bit_position > 0:


More information about the pypy-commit mailing list