diff options
author | Daniel Stutzbach <daniel@stutzbachenterprises.com> | 2010-08-24 21:57:33 (GMT) |
---|---|---|
committer | Daniel Stutzbach <daniel@stutzbachenterprises.com> | 2010-08-24 21:57:33 (GMT) |
commit | 8515eaefda6348a72464805ff8d07041d16ab97d (patch) | |
tree | 90ccc8d24e71d167bf85a7bd2abfaf8dc29f1d8a /Modules/_localemodule.c | |
parent | 16925e8539a39bf5599514d1be3f3c601bbc7b00 (diff) | |
download | cpython-8515eaefda6348a72464805ff8d07041d16ab97d.zip cpython-8515eaefda6348a72464805ff8d07041d16ab97d.tar.gz cpython-8515eaefda6348a72464805ff8d07041d16ab97d.tar.bz2 |
Issue 8781: On systems a signed 4-byte wchar_t and a 4-byte Py_UNICODE, use memcpy to convert between the two (as already done when wchar_t is unsigned)
Diffstat (limited to 'Modules/_localemodule.c')
-rw-r--r-- | Modules/_localemodule.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c index 88f6add..2394206 100644 --- a/Modules/_localemodule.c +++ b/Modules/_localemodule.c @@ -289,15 +289,15 @@ PyLocale_strxfrm(PyObject* self, PyObject* args) wchar_t *s, *buf = NULL; size_t n1, n2; PyObject *result = NULL; -#ifndef HAVE_USABLE_WCHAR_T +#if Py_UNICODE_SIZE != SIZEOF_WCHAR_T Py_ssize_t i; #endif if (!PyArg_ParseTuple(args, "u#:strxfrm", &s0, &n0)) return NULL; -#ifdef HAVE_USABLE_WCHAR_T - s = s0; +#if Py_UNICODE_SIZE == SIZEOF_WCHAR_T + s = (wchar_t *) s0; #else s = PyMem_Malloc((n0+1)*sizeof(wchar_t)); if (!s) @@ -326,7 +326,7 @@ PyLocale_strxfrm(PyObject* self, PyObject* args) result = PyUnicode_FromWideChar(buf, n2); exit: if (buf) PyMem_Free(buf); -#ifndef HAVE_USABLE_WCHAR_T +#if Py_UNICODE_SIZE != SIZEOF_WCHAR_T PyMem_Free(s); #endif return result; |