[pypy-svn] r61567 - in pypy/trunk/pypy: rpython/lltypesystem translator/c
afa at codespeak.net
afa at codespeak.net
Thu Feb 5 17:47:35 CET 2009
Author: afa
Date: Thu Feb 5 17:47:33 2009
New Revision: 61567
Modified:
pypy/trunk/pypy/rpython/lltypesystem/ll2ctypes.py
pypy/trunk/pypy/rpython/lltypesystem/rffi.py
pypy/trunk/pypy/translator/c/primitive.py
Log:
Store runicode strings as arrays of wchar_t
Modified: pypy/trunk/pypy/rpython/lltypesystem/ll2ctypes.py
==============================================================================
--- pypy/trunk/pypy/rpython/lltypesystem/ll2ctypes.py (original)
+++ pypy/trunk/pypy/rpython/lltypesystem/ll2ctypes.py Thu Feb 5 17:47:33 2009
@@ -41,7 +41,7 @@
rffi.LONGLONG: ctypes.c_longlong,
rffi.ULONGLONG: ctypes.c_ulonglong,
rffi.SIZE_T: ctypes.c_size_t,
- lltype.UniChar: ctypes.c_uint,
+ lltype.UniChar: ctypes.c_wchar,
})
def build_ctypes_struct(S, delayed_builders, max_n=None):
Modified: pypy/trunk/pypy/rpython/lltypesystem/rffi.py
==============================================================================
--- pypy/trunk/pypy/rpython/lltypesystem/rffi.py (original)
+++ pypy/trunk/pypy/rpython/lltypesystem/rffi.py Thu Feb 5 17:47:33 2009
@@ -308,7 +308,7 @@
TYPES.append(name)
TYPES += ['signed char', 'unsigned char',
'long long', 'unsigned long long',
- 'size_t', 'time_t']
+ 'size_t', 'time_t', 'wchar_t']
if os.name != 'nt':
TYPES.append('mode_t')
TYPES.append('pid_t')
@@ -352,6 +352,7 @@
# ULONG r_ulong
# LONGLONG r_longlong
# ULONGLONG r_ulonglong
+# WCHAR_T r_wchar_t
# SIZE_T r_size_t
# TIME_T r_time_t
# --------------------------------------------------------------------
@@ -687,7 +688,7 @@
if tp is lltype.Char:
return 1
if tp is lltype.UniChar:
- return 4
+ return WCHAR_T._type.BITS/8
if tp is lltype.Float:
return 8
assert isinstance(tp, lltype.Number)
Modified: pypy/trunk/pypy/translator/c/primitive.py
==============================================================================
--- pypy/trunk/pypy/translator/c/primitive.py (original)
+++ pypy/trunk/pypy/translator/c/primitive.py Thu Feb 5 17:47:33 2009
@@ -152,7 +152,7 @@
Float: 'double @',
SingleFloat: 'float @',
Char: 'char @',
- UniChar: 'unsigned int @',
+ UniChar: 'wchar_t @',
Bool: 'bool_t @',
Void: 'void @',
Address: 'void* @',
More information about the Pypy-commit
mailing list