[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