36 lines
1.1 KiB
Diff
36 lines
1.1 KiB
Diff
From: Arthur Zamarin <arthurzam@gmail.com>
|
|
Date: Fri, 30 Jul 2021 11:13:41 +0300
|
|
[PATCH] PyPy3: fix test_empty_array
|
|
|
|
As an optimization, PyPy sets empty array.array to use a NULL buffer
|
|
pointer, while CPython uses empty buffer (but not NULL).
|
|
Add a very specially crafted fix for PyPy3
|
|
|
|
Signed-off-by: Arthur Zamarin <arthurzam@gmail.com>
|
|
---
|
|
regex_3/_regex.c | 10 ++++++++++
|
|
1 file changed, 10 insertions(+)
|
|
|
|
--- a/regex_3/_regex.c
|
|
+++ b/regex_3/_regex.c
|
|
@@ -18062,9 +18062,19 @@ Py_LOCAL_INLINE(BOOL) get_string(PyObject* string, RE_StringInfo* str_info) {
|
|
}
|
|
|
|
if (!str_info->view.buf) {
|
|
+#if defined(PYPY_VERSION)
|
|
+ /* In PyPy3, when the array.array is empty, it's buffer is NULL */
|
|
+ str_info->characters = NULL;
|
|
+ str_info->length = 0;
|
|
+ str_info->charsize = 1;
|
|
+ str_info->is_unicode = FALSE;
|
|
+ str_info->should_release = FALSE;
|
|
+ return TRUE;
|
|
+#else
|
|
PyBuffer_Release(&str_info->view);
|
|
PyErr_SetString(PyExc_ValueError, "buffer is NULL");
|
|
return FALSE;
|
|
+#endif
|
|
}
|
|
|
|
str_info->should_release = TRUE;
|