diff --git a/Parser/pegen/parse_string.c b/Parser/pegen/parse_string.c
index a367ba7..61e6044 100644
--- a/Parser/pegen/parse_string.c
+++ b/Parser/pegen/parse_string.c
@@ -597,7 +597,7 @@
 
     len = expr_end - expr_start;
     /* Allocate 3 extra bytes: open paren, close paren, null byte. */
-    str = PyMem_RawMalloc(len + 3);
+    str = PyMem_Malloc(len + 3);
     if (str == NULL) {
         PyErr_NoMemory();
         return NULL;
@@ -610,7 +610,7 @@
 
     struct tok_state* tok = PyTokenizer_FromString(str, 1);
     if (tok == NULL) {
-        PyMem_RawFree(str);
+        PyMem_Free(str);
         return NULL;
     }
     Py_INCREF(p->tok->filename);
@@ -636,7 +636,7 @@
     result = expr;
 
 exit:
-    PyMem_RawFree(str);
+    PyMem_Free(str);
     _PyPegen_Parser_Free(p2);
     PyTokenizer_Free(tok);
     return result;
@@ -1148,7 +1148,7 @@
             Py_ssize_t i;
             /* We're still using the cached data. Switch to
                alloc-ing. */
-            l->p = PyMem_RawMalloc(sizeof(expr_ty) * new_size);
+            l->p = PyMem_Malloc(sizeof(expr_ty) * new_size);
             if (!l->p) {
                 return -1;
             }
@@ -1158,9 +1158,9 @@
             }
         } else {
             /* Just realloc. */
-            expr_ty *tmp = PyMem_RawRealloc(l->p, sizeof(expr_ty) * new_size);
+            expr_ty *tmp = PyMem_Realloc(l->p, sizeof(expr_ty) * new_size);
             if (!tmp) {
-                PyMem_RawFree(l->p);
+                PyMem_Free(l->p);
                 l->p = NULL;
                 return -1;
             }
@@ -1188,7 +1188,7 @@
         /* Do nothing. */
     } else {
         /* We have dynamically allocated. Free the memory. */
-        PyMem_RawFree(l->p);
+        PyMem_Free(l->p);
     }
     l->p = NULL;
     l->size = -1;
