From 498c6490807e67a48df7982d266acd2c7407ca60 Mon Sep 17 00:00:00 2001
From: "Miss Islington (bot)"
 <31488909+miss-islington@users.noreply.github.com>
Date: Thu, 14 Jul 2022 12:04:06 -0700
Subject: [PATCH] gh-94841: Ensure arena_map_get() is inlined in
 PyObject_Free() (GH-94842)

(cherry picked from commit 9b3f7792093c533608f70043aa2a7daf7f903a16)

Co-authored-by: neonene <53406459+neonene@users.noreply.github.com>
---
 .../next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst    | 1 +
 Objects/obmalloc.c                                              | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)
 create mode 100644 Misc/NEWS.d/next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst

diff --git a/Misc/NEWS.d/next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst b/Misc/NEWS.d/next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst
new file mode 100644
index 00000000000..f7ad4f88a51
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2022-07-14-02-45-44.gh-issue-94841.lLRTdf.rst
@@ -0,0 +1 @@
+Fix the possible performance regression of :c:func:`PyObject_Free` compiled with MSVC version 1932.
diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c
index 823855ca6d8..ce5da5f1b7b 100644
--- a/Objects/obmalloc.c
+++ b/Objects/obmalloc.c
@@ -1445,7 +1445,7 @@ static arena_map_bot_t arena_map_root;
 
 /* Return a pointer to a bottom tree node, return NULL if it doesn't exist or
  * it cannot be created */
-static arena_map_bot_t *
+static Py_ALWAYS_INLINE arena_map_bot_t *
 arena_map_get(block *p, int create)
 {
 #ifdef USE_INTERIOR_NODES
-- 
GitLab