remove dynamic initializer lists for c89 compliance (closes #20595)
diff --git a/Python/getargs.c b/Python/getargs.c
index bfea111..946faf2 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -200,8 +200,6 @@
 {
     char msgbuf[256];
     int levels[32];
-    freelistentry_t static_entries[STATIC_FREELIST_ENTRIES];
-    freelist_t freelist = {static_entries, 0, 0};
     const char *fname = NULL;
     const char *message = NULL;
     int min = -1;
@@ -212,6 +210,12 @@
     Py_ssize_t i, len;
     char *msg;
     int compat = flags & FLAG_COMPAT;
+    freelistentry_t static_entries[STATIC_FREELIST_ENTRIES];
+    freelist_t freelist;
+
+    freelist.entries = static_entries;
+    freelist.first_available = 0;
+    freelist.entries_malloced = 0;
 
     assert(compat || (args != (PyObject*)NULL));
     flags = flags & ~FLAG_COMPAT;
@@ -1439,7 +1443,11 @@
     Py_ssize_t nargs, nkeywords;
     PyObject *current_arg;
     freelistentry_t static_entries[STATIC_FREELIST_ENTRIES];
-    freelist_t freelist = {static_entries, 0, 0};
+    freelist_t freelist;
+
+    freelist.entries = static_entries;
+    freelist.first_available = 0;
+    freelist.entries_malloced = 0;
 
     assert(args != NULL && PyTuple_Check(args));
     assert(keywords == NULL || PyDict_Check(keywords));