Author: Armin Rigo <ar...@tunes.org>
Branch: python3-port
Changeset: r827:2ae489473ce4
Date: 2012-08-12 20:02 +0200
http://bitbucket.org/cffi/cffi/changeset/2ae489473ce4/

Log:    Keep the original usages of the macro PyString_AS_STRING as a macro,
        at least on Python 2.

diff --git a/c/_cffi_backend.c b/c/_cffi_backend.c
--- a/c/_cffi_backend.c
+++ b/c/_cffi_backend.c
@@ -28,6 +28,7 @@
 # define PyText_Check PyUnicode_Check
 # define PyText_FromFormat PyUnicode_FromFormat
 # define PyText_AsUTF8 _PyUnicode_AsString   /* PyUnicode_AsUTF8 in Py3.3 */
+# define PyText_AS_UTF8 _PyUnicode_AsString
 # define PyText_GetSize PyUnicode_GetSize
 # define PyText_FromString PyUnicode_FromString
 # define PyText_FromStringAndSize PyUnicode_FromStringAndSize
@@ -38,6 +39,7 @@
 # define PyText_Check PyString_Check
 # define PyText_FromFormat PyString_FromFormat
 # define PyText_AsUTF8 PyString_AsString
+# define PyText_AS_UTF8 PyString_AS_STRING
 # define PyText_GetSize PyString_GetSize
 # define PyText_FromString PyString_FromString
 # define PyText_FromStringAndSize PyString_FromStringAndSize
@@ -596,7 +598,7 @@
 static PyObject *convert_enum_string_to_int(CTypeDescrObject *ct, PyObject *ob)
 {
     PyObject *d_value;
-    char *p = PyText_AsUTF8(ob);
+    char *p = PyText_AS_UTF8(ob);
 
     if (p[0] == '#') {
         char *number = p + 1;       /* strip initial '#' */
@@ -612,8 +614,7 @@
         if (d_value == NULL) {
             PyErr_Format(PyExc_ValueError,
                          "'%s' is not an enumerator for %s",
-                         PyText_AsUTF8(ob),
-                         ct->ct_name);
+                         p, ct->ct_name);
             return NULL;
         }
         Py_INCREF(d_value);
@@ -749,7 +750,7 @@
     if (s == NULL)
         return -1;
     PyErr_Format(PyExc_OverflowError, "integer %s does not fit '%s'",
-                 PyText_AsUTF8(s), ct_name);
+                 PyText_AS_UTF8(s), ct_name);
     Py_DECREF(s);
     return -1;
 }
@@ -1121,9 +1122,9 @@
         PyErr_Format(PyExc_OverflowError,
                      "value %s outside the range allowed by the "
                      "bit field width: %s <= x <= %s",
-                     PyText_AsUTF8(svalue),
-                     PyText_AsUTF8(sfmin),
-                     PyText_AsUTF8(sfmax));
+                     PyText_AS_UTF8(svalue),
+                     PyText_AS_UTF8(sfmin),
+                     PyText_AS_UTF8(sfmax));
        skip:
         Py_XDECREF(svalue);
         Py_XDECREF(sfmin);
@@ -2290,7 +2291,7 @@
                              PyString_GET_SIZE(ob), ct->ct_name);
                 return NULL;
             }
-            value = (unsigned char)PyString_AsString(ob)[0];
+            value = (unsigned char)PyString_AS_STRING(ob)[0];
 #else
             wchar_t ordinal;
             if (_my_PyUnicode_AsSingleWideChar(ob, &ordinal) < 0) {
@@ -2972,7 +2973,7 @@
         if (ftype->ct_size < 0) {
             PyErr_Format(PyExc_TypeError,
                          "field '%s.%s' has ctype '%s' of unknown size",
-                         ct->ct_name, PyText_AsUTF8(fname),
+                         ct->ct_name, PyText_AS_UTF8(fname),
                          ftype->ct_name);
             goto error;
         }
@@ -3014,7 +3015,7 @@
                     fbitsize == 0 ||
                     fbitsize > 8 * ftype->ct_size) {
                 PyErr_Format(PyExc_TypeError, "invalid bit field '%s'",
-                             PyText_AsUTF8(fname));
+                             PyText_AS_UTF8(fname));
                 goto error;
             }
             if (prev_bit_position > 0) {
@@ -3057,7 +3058,7 @@
 
         if (PyDict_Size(interned_fields) != i + 1) {
             PyErr_Format(PyExc_KeyError, "duplicate field name '%s'",
-                         PyText_AsUTF8(fname));
+                         PyText_AS_UTF8(fname));
             goto error;
         }
 
@@ -3938,7 +3939,7 @@
             if (s != NULL) {
                 PyErr_Format(PyExc_RuntimeError,
                              "cannot use string() on %s",
-                             PyText_AsUTF8(s));
+                             PyText_AS_UTF8(s));
                 Py_DECREF(s);
             }
             return NULL;
@@ -4430,7 +4431,7 @@
 
     v = PySys_GetObject("version");
     if (v == NULL || !PyText_Check(v) ||
-            strncmp(PyText_AsUTF8(v), PY_VERSION, 3) != 0) {
+            strncmp(PyText_AS_UTF8(v), PY_VERSION, 3) != 0) {
         PyErr_Format(PyExc_ImportError,
                      "this module was compiled for Python %c%c%c",
                      PY_VERSION[0], PY_VERSION[1], PY_VERSION[2]);
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to