Mark _PyUnicode_FindMaxCharAndNumSurrogatePairs() as private
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index ff3d4b6..69f0b8f 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -708,11 +708,14 @@
     return -1;
 }
 
-int
-_PyUnicode_FindMaxCharAndNumSurrogatePairs(const wchar_t *begin,
-                                           const wchar_t *end,
-                                           Py_UCS4 *maxchar,
-                                           Py_ssize_t *num_surrogates)
+/* Find the maximum code point and count the number of surrogate pairs so a
+   correct string length can be computed before converting a string to UCS4.
+   This function counts single surrogates as a character and not as a pair.
+
+   Return 0 on success, or -1 on error. */
+static int
+find_maxchar_surrogates(const wchar_t *begin, const wchar_t *end,
+                        Py_UCS4 *maxchar, Py_ssize_t *num_surrogates)
 {
     const wchar_t *iter;
 
@@ -789,7 +792,7 @@
 #endif
 
     end = _PyUnicode_WSTR(unicode) + _PyUnicode_WSTR_LENGTH(unicode);
-    if (_PyUnicode_FindMaxCharAndNumSurrogatePairs(_PyUnicode_WSTR(unicode), end,
+    if (find_maxchar_surrogates(_PyUnicode_WSTR(unicode), end,
                                                   &maxchar,
                                                   &num_surrogates) == -1) {
         assert(0 && "PyUnicode_FindMaxCharAndNumSurrogatePairs failed");
@@ -1022,7 +1025,7 @@
 
     /* If not empty and not single character, copy the Unicode data
        into the new object */
-    if (_PyUnicode_FindMaxCharAndNumSurrogatePairs(u, u + size, &maxchar,
+    if (find_maxchar_surrogates(u, u + size, &maxchar,
                                                   &num_surrogates) == -1)
         return NULL;