summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>2007-11-22 02:48:12 (GMT)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>2007-11-22 02:48:12 (GMT)
commit39599dca9db7431510f1d68609db5ea0b60af2cb (patch)
treee73e57d1e631fe1b6572bea4e915cc604fd88044
parent484fcd4521cd63beffeb45bca8396dcd7b377f0a (diff)
downloadcpython-39599dca9db7431510f1d68609db5ea0b60af2cb.zip
cpython-39599dca9db7431510f1d68609db5ea0b60af2cb.tar.gz
cpython-39599dca9db7431510f1d68609db5ea0b60af2cb.tar.bz2
PyString_AsString is permissive and accepts unicode strings.
Replace it with PyUnicode_AsString when the argument is known to be a str.
-rw-r--r--Objects/setobject.c2
-rw-r--r--Objects/stringobject.c4
-rw-r--r--Python/ast.c2
-rw-r--r--Python/getargs.c8
-rw-r--r--Python/peephole.c2
5 files changed, 9 insertions, 9 deletions
diff --git a/Objects/setobject.c b/Objects/setobject.c
index f6ea441..d85a28d 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -2303,7 +2303,7 @@ test_c_api(PySetObject *so)
/* Exercise direct iteration */
i = 0, count = 0;
while (_PySet_Next((PyObject *)dup, &i, &x)) {
- s = PyString_AsString(x);
+ s = PyUnicode_AsString(x);
assert(s && (s[0] == 'a' || s[0] == 'b' || s[0] == 'c'));
count++;
}
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index ae2a977..d341436 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -3273,7 +3273,7 @@ _PyString_FormatLong(PyObject *val, int flags, int prec, int type,
if (!result)
return NULL;
- buf = PyString_AsString(result);
+ buf = PyUnicode_AsString(result);
if (!buf) {
Py_DECREF(result);
return NULL;
@@ -3284,7 +3284,7 @@ _PyString_FormatLong(PyObject *val, int flags, int prec, int type,
PyErr_BadInternalCall();
return NULL;
}
- llen = PyString_Size(result);
+ llen = PyUnicode_GetSize(result);
if (llen > INT_MAX) {
PyErr_SetString(PyExc_ValueError,
"string too large in _PyString_FormatLong");
diff --git a/Python/ast.c b/Python/ast.c
index 2a5d8b8..f3a2828 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -1299,7 +1299,7 @@ ast_for_atom(struct compiling *c, const node *n)
if (errstr) {
char *s = "";
char buf[128];
- s = PyString_AsString(errstr);
+ s = PyUnicode_AsString(errstr);
PyOS_snprintf(buf, sizeof(buf), "(unicode error) %s", s);
ast_error(n, buf);
} else {
diff --git a/Python/getargs.c b/Python/getargs.c
index 48860cc..584805e 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -768,7 +768,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
else if (PyUnicode_Check(arg) &&
PyUnicode_GET_SIZE(arg) == 1 &&
PyUnicode_AS_UNICODE(arg)[0] < 256)
- *p = PyUnicode_AS_UNICODE(arg)[0];
+ *p = (char)PyUnicode_AS_UNICODE(arg)[0];
else
return converterr("char < 256", arg, msgbuf, bufsize);
break;
@@ -823,7 +823,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
}
else
return converterr("string", arg, msgbuf, bufsize);
- if ((Py_ssize_t)strlen(*p) != PyString_Size(arg))
+ if ((Py_ssize_t)strlen(*p) != PyUnicode_GetSize(arg))
return converterr("string without null bytes",
arg, msgbuf, bufsize);
}
@@ -899,7 +899,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
format++;
}
else if (*p != NULL &&
- (Py_ssize_t)strlen(*p) != PyString_Size(arg))
+ (Py_ssize_t)strlen(*p) != PyUnicode_GetSize(arg))
return converterr(
"string without null bytes or None",
arg, msgbuf, bufsize);
@@ -1596,7 +1596,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, const char *format,
"keywords must be strings");
return cleanreturn(0, freelist);
}
- ks = PyString_AsString(key);
+ ks = PyUnicode_AsString(key);
for (i = 0; i < max; i++) {
if (!strcmp(ks, kwlist[i])) {
match = 1;
diff --git a/Python/peephole.c b/Python/peephole.c
index d012d39..9f1e642 100644
--- a/Python/peephole.c
+++ b/Python/peephole.c
@@ -407,7 +407,7 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
case LOAD_NAME:
case LOAD_GLOBAL:
j = GETARG(codestr, i);
- name = PyString_AsString(PyTuple_GET_ITEM(names, j));
+ name = PyUnicode_AsString(PyTuple_GET_ITEM(names, j));
h = load_global(codestr, i, name, consts);
if (h < 0)
goto exitUnchanged;