[pypy-svn] r62976 - pypy/trunk/pypy/translator/c/src
arigo at codespeak.net
arigo at codespeak.net
Mon Mar 16 20:41:22 CET 2009
Author: arigo
Date: Mon Mar 16 20:41:21 2009
New Revision: 62976
Modified:
pypy/trunk/pypy/translator/c/src/rtyper.h
pypy/trunk/pypy/translator/c/src/support.h
Log:
Fix the failures -- seems that we really need these macros for now.
Modified: pypy/trunk/pypy/translator/c/src/rtyper.h
==============================================================================
--- pypy/trunk/pypy/translator/c/src/rtyper.h (original)
+++ pypy/trunk/pypy/translator/c/src/rtyper.h Mon Mar 16 20:41:21 2009
@@ -4,10 +4,13 @@
#include <string.h>
+/* Note that RPython strings are not 0-terminated! For debugging,
+ use PyString_FromRPyString or RPyString_AsCharP */
#define RPyString_Size(rps) ((rps)->rs_chars.length)
+#define _RPyString_AsString(rps) ((rps)->rs_chars.items)
#define RPyUnicode_Size(rpu) ((rpu)->ru_chars.length)
-#define RPyUnicode_AsUnicode(rpu) ((rpu)->ru_chars.items)
+#define _RPyUnicode_AsUnicode(rpu) ((rpu)->ru_chars.items)
/* prototypes */
Modified: pypy/trunk/pypy/translator/c/src/support.h
==============================================================================
--- pypy/trunk/pypy/translator/c/src/support.h (original)
+++ pypy/trunk/pypy/translator/c/src/support.h Mon Mar 16 20:41:21 2009
@@ -20,15 +20,16 @@
#define FAIL_ZER(msg) FAIL_EXCEPTION(PyExc_ZeroDivisionError, msg)
#define CFAIL() RPyConvertExceptionFromCPython()
-/* #define PyString_FromRPyString(rpystr) \ */
-/* PyString_FromStringAndSize(RPyString_AsString(rpystr), RPyString_Size(rpystr)) */
-
-/* #define PyUnicode_FromRPyUnicode(rpystr) \ */
-/* PyUnicode_FromUnicode(RPyUnicode_AsUnicode(rpystr), RPyUnicode_Size(rpystr)) */
-
-/* #define PyString_ToRPyString(s, rpystr) \ */
-/* memcpy(RPyString_AsString(rpystr), PyString_AS_STRING(s), \ */
-/* RPyString_Size(rpystr)) */
+/* the following macros are used by rpython/lltypesystem/rstr.py */
+#define PyString_FromRPyString(rpystr) \
+ PyString_FromStringAndSize(_RPyString_AsString(rpystr), RPyString_Size(rpystr))
+
+#define PyUnicode_FromRPyUnicode(rpystr) \
+ PyUnicode_FromUnicode(_RPyUnicode_AsUnicode(rpystr), RPyUnicode_Size(rpystr))
+
+#define PyString_ToRPyString(s, rpystr) \
+ memcpy(_RPyString_AsString(rpystr), PyString_AS_STRING(s), \
+ RPyString_Size(rpystr))
/* Extra checks can be enabled with the RPY_ASSERT or RPY_LL_ASSERT
* macros. They differ in the level at which the tests are made.
More information about the Pypy-commit
mailing list