needforspeed: more stringlib refactoring
diff --git a/Objects/stringlib/find.h b/Objects/stringlib/find.h
index d5394b4..9db633d 100644
--- a/Objects/stringlib/find.h
+++ b/Objects/stringlib/find.h
@@ -48,6 +48,39 @@
     return pos;
 }
 
+#ifdef STRINGLIB_STR
+
+Py_LOCAL(Py_ssize_t)
+stringlib_find_obj(PyObject* str, PyObject* sub,
+                   Py_ssize_t start, Py_ssize_t end)
+{
+    return stringlib_find(
+        STRINGLIB_STR(str) + start, end - start,
+        STRINGLIB_STR(sub), STRINGLIB_LEN(sub), start
+        );
+}
+
+Py_LOCAL(int)
+stringlib_contains_obj(PyObject* str, PyObject* sub)
+{
+    return stringlib_find(
+        STRINGLIB_STR(str), STRINGLIB_LEN(str),
+        STRINGLIB_STR(sub), STRINGLIB_LEN(sub), 0
+        ) != -1;
+}
+
+Py_LOCAL(Py_ssize_t)
+stringlib_rfind_obj(PyObject* str, PyObject* sub,
+                    Py_ssize_t start, Py_ssize_t end)
+{
+    return stringlib_rfind(
+        STRINGLIB_STR(str) + start, end - start,
+        STRINGLIB_STR(sub), STRINGLIB_LEN(sub), start
+        );
+}
+
+#endif
+
 #endif
 
 /*