From da10fd408b7b6d0807fe7f6a81adf8d4b6bd3319 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Mon, 22 Dec 2025 11:45:38 +0200 Subject: [PATCH] Optimize --- Tools/freeze/checkextensions.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Tools/freeze/checkextensions.py b/Tools/freeze/checkextensions.py index d31949c4e05..c9f9189a5b9 100644 --- a/Tools/freeze/checkextensions.py +++ b/Tools/freeze/checkextensions.py @@ -77,15 +77,19 @@ def expandvars(str, vars): if name[-1] != ')': return m[0] name = name[1:-1] - if name in vars and name not in seen: - seen.add(name) - result = expandvars(vars[name]) - seen.remove(name) + + if name in resolved: + result = resolved[name] + if result is not None: + return result + elif name in vars: + resolved[name] = None + result = resolved[name] = expandvars(vars[name]) return result return m[0] def expandvars(str): return re.sub(r'(?m)\$(\([^)]*\)?|.)', repl, str) - seen = set() + resolved = {} return expandvars(str)