Backed out changeset b9c9691c72c5

Issue #28858: The change b9c9691c72c5 introduced a regression. It seems like
_PyObject_CallArg1() uses more stack memory than
PyObject_CallFunctionObjArgs().
diff --git a/Modules/_testbuffer.c b/Modules/_testbuffer.c
index bf22f29..13d3ccc 100644
--- a/Modules/_testbuffer.c
+++ b/Modules/_testbuffer.c
@@ -312,7 +312,7 @@
     assert(PyObject_CheckBuffer(obj));
     assert(PyList_Check(items) || PyTuple_Check(items));
 
-    structobj = _PyObject_CallArg1(Struct, format);
+    structobj = PyObject_CallFunctionObjArgs(Struct, format, NULL);
     if (structobj == NULL)
         return -1;
 
@@ -406,7 +406,7 @@
     if (format == NULL)
         goto out;
 
-    structobj = _PyObject_CallArg1(Struct, format);
+    structobj = PyObject_CallFunctionObjArgs(Struct, format, NULL);
     if (structobj == NULL)
         goto out;
 
@@ -620,7 +620,7 @@
 
     if (ndim == 0) {
         memcpy(item, ptr, itemsize);
-        x = _PyObject_CallArg1(unpack_from, mview);
+        x = PyObject_CallFunctionObjArgs(unpack_from, mview, NULL);
         if (x == NULL)
             return NULL;
         if (PyTuple_GET_SIZE(x) == 1) {
@@ -696,7 +696,7 @@
     if (format == NULL)
         goto out;
 
-    structobj = _PyObject_CallArg1(Struct, format);
+    structobj = PyObject_CallFunctionObjArgs(Struct, format, NULL);
     Py_DECREF(format);
     if (structobj == NULL)
         goto out;
@@ -788,7 +788,7 @@
     PyObject *tmp;
     Py_ssize_t itemsize;
 
-    tmp = _PyObject_CallArg1(calcsize, format);
+    tmp = PyObject_CallFunctionObjArgs(calcsize, format, NULL);
     if (tmp == NULL)
         return -1;
     itemsize = PyLong_AsSsize_t(tmp);