aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Objects/bytesobject.c
diff options
context:
space:
mode:
authorDennis Sweeney <36520290+sweeneyde@users.noreply.github.com>2022-03-01 23:46:30 -0500
committerGitHub <noreply@github.com>2022-03-01 23:46:30 -0500
commit6ddb09f35b922a3bbb59e408a3ca7636a6938468 (patch)
tree26b0fbc0a99455f9393e5570ef884999e792ba93 /Objects/bytesobject.c
parent9833bb91e4d5c2606421d9ec2085f5c2dfb6f72c (diff)
downloadcpython-6ddb09f35b922a3bbb59e408a3ca7636a6938468.tar.gz
cpython-6ddb09f35b922a3bbb59e408a3ca7636a6938468.zip
bpo-46848: Use stringlib/fastsearch in mmap (GH-31625)
Speed up mmap.find(). Add _PyBytes_Find() and _PyBytes_ReverseFind().
Diffstat (limited to 'Objects/bytesobject.c')
-rw-r--r--Objects/bytesobject.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c
index 3d8a21696d1..4c67b8f7af2 100644
--- a/Objects/bytesobject.c
+++ b/Objects/bytesobject.c
@@ -1247,6 +1247,24 @@ PyBytes_AsStringAndSize(PyObject *obj,
#undef STRINGLIB_GET_EMPTY
+Py_ssize_t
+_PyBytes_Find(const char *haystack, Py_ssize_t len_haystack,
+ const char *needle, Py_ssize_t len_needle,
+ Py_ssize_t offset)
+{
+ return stringlib_find(haystack, len_haystack,
+ needle, len_needle, offset);
+}
+
+Py_ssize_t
+_PyBytes_ReverseFind(const char *haystack, Py_ssize_t len_haystack,
+ const char *needle, Py_ssize_t len_needle,
+ Py_ssize_t offset)
+{
+ return stringlib_rfind(haystack, len_haystack,
+ needle, len_needle, offset);
+}
+
PyObject *
PyBytes_Repr(PyObject *obj, int smartquotes)
{