diff options
Diffstat (limited to 'Modules/_sre.c')
-rw-r--r-- | Modules/_sre.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Modules/_sre.c b/Modules/_sre.c index 1868657..f4cd1fe 100644 --- a/Modules/_sre.c +++ b/Modules/_sre.c @@ -1674,6 +1674,15 @@ getstring(PyObject* string, Py_ssize_t* p_length, int* p_charsize) void* ptr; Py_buffer view; + /* Unicode objects do not support the buffer API. So, get the data + directly instead. */ + if (PyUnicode_Check(string)) { + ptr = (void *)PyUnicode_AS_DATA(string); + *p_length = PyUnicode_GET_SIZE(string); + *p_charsize = sizeof(Py_UNICODE); + return ptr; + } + /* get pointer to string buffer */ view.len = -1; buffer = Py_Type(string)->tp_as_buffer; |