From b6b711a1aa233001c1874af1d920e459b6bf962c Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 2 Mar 2022 14:15:26 +0100 Subject: bpo-46848: Move _PyBytes_Find() to internal C API (GH-31642) Move _PyBytes_Find() and _PyBytes_ReverseFind() functions to the internal C API. bytesobject.c now includes pycore_bytesobject.h. --- Include/cpython/bytesobject.h | 19 ------------------- Include/internal/pycore_bytesobject.h | 19 +++++++++++++++++++ Modules/mmapmodule.c | 1 + Objects/bytesobject.c | 1 + 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/Include/cpython/bytesobject.h b/Include/cpython/bytesobject.h index 38a0fe0..6b3f552 100644 --- a/Include/cpython/bytesobject.h +++ b/Include/cpython/bytesobject.h @@ -116,22 +116,3 @@ PyAPI_FUNC(void*) _PyBytesWriter_WriteBytes(_PyBytesWriter *writer, void *str, const void *bytes, Py_ssize_t size); - -/* Substring Search. - - Returns the index of the first occurence of - a substring ("needle") in a larger text ("haystack"). - If the needle is not found, return -1. - If the needle is found, add offset to the index. -*/ - -PyAPI_FUNC(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); - -/* Same as above, but search right-to-left */ -PyAPI_FUNC(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); diff --git a/Include/internal/pycore_bytesobject.h b/Include/internal/pycore_bytesobject.h index 18d9530..8739a75 100644 --- a/Include/internal/pycore_bytesobject.h +++ b/Include/internal/pycore_bytesobject.h @@ -14,6 +14,25 @@ extern "C" { extern PyStatus _PyBytes_InitTypes(PyInterpreterState *); +/* Substring Search. + + Returns the index of the first occurence of + a substring ("needle") in a larger text ("haystack"). + If the needle is not found, return -1. + If the needle is found, add offset to the index. +*/ + +PyAPI_FUNC(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); + +/* Same as above, but search right-to-left */ +PyAPI_FUNC(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); + #ifdef __cplusplus } #endif diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c index 6a038e7..ec36465 100644 --- a/Modules/mmapmodule.c +++ b/Modules/mmapmodule.c @@ -24,6 +24,7 @@ #define PY_SSIZE_T_CLEAN #include +#include "pycore_bytesobject.h" // _PyBytes_Find() #include "pycore_fileutils.h" // _Py_stat_struct #include "structmember.h" // PyMemberDef #include // offsetof() diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c index 4c67b8f..c6160aa 100644 --- a/Objects/bytesobject.c +++ b/Objects/bytesobject.c @@ -4,6 +4,7 @@ #include "Python.h" #include "pycore_abstract.h" // _PyIndex_Check() +#include "pycore_bytesobject.h" // _PyBytes_Find() #include "pycore_bytes_methods.h" // _Py_bytes_startswith() #include "pycore_call.h" // _PyObject_CallNoArgs() #include "pycore_format.h" // F_LJUST -- cgit v0.12