Skip to content

Commit acad35f

Browse files
authored
not safe WIP
1 parent 8dace6c commit acad35f

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

Python/optimizer.c

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1200,15 +1200,26 @@ int effective_trace_length(_PyUOpInstruction *buffer, int length)
12001200
}
12011201
#endif
12021202

1203+
static bool uops_optimize_initialized = false;
1204+
static bool uops_optimize_flag = false;
1205+
12031206
static void
1204-
initialize_uops_optimize_flag() {
1205-
PyInterpreterState *interp = _PyInterpreterState_GET();
1207+
initialize_uops_optimize_flag(void) {
12061208
if (!uops_optimize_initialized) {
1209+
PyInterpreterState *interp = _PyInterpreterState_GET();
12071210
char *env_var = Py_GETENV("PYTHON_UOPS_OPTIMIZE");
1208-
interp->uops_optimize_flag = (env_var == NULL || *env_var == '\0' || *env_var > '0');
1211+
bool uops_optimize_flag = (env_var == NULL || *env_var == '\0' || *env_var > '0');
1212+
if (interp != NULL) {
1213+
interp->uops_optimize_flag = uops_optimize_flag;
1214+
}
12091215
uops_optimize_initialized = true;
12101216
}
1211-
uops_optimize_flag = interp->uops_optimize_flag;
1217+
else {
1218+
PyInterpreterState *interp = _PyInterpreterState_GET();
1219+
if (interp != NULL) {
1220+
uops_optimize_flag = interp->uops_optimize_flag;
1221+
}
1222+
}
12121223
}
12131224

12141225
static int

0 commit comments

Comments
 (0)