diff options
Diffstat (limited to 'dev-python/regex/files/regex-2021.4.4-pypy3-fix-test_empty_array.patch')
-rw-r--r-- | dev-python/regex/files/regex-2021.4.4-pypy3-fix-test_empty_array.patch | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/dev-python/regex/files/regex-2021.4.4-pypy3-fix-test_empty_array.patch b/dev-python/regex/files/regex-2021.4.4-pypy3-fix-test_empty_array.patch new file mode 100644 index 000000000000..706b41b74688 --- /dev/null +++ b/dev-python/regex/files/regex-2021.4.4-pypy3-fix-test_empty_array.patch @@ -0,0 +1,35 @@ +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; |