diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2023-02-28 20:14:40 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-28 20:14:40 (GMT) |
commit | f300a1fa4c121f7807cbda4fc8bb26240c69ea74 (patch) | |
tree | 9920324d344de93f0aecfe1117dc3b53d6257dbf /Python/dtoa.c | |
parent | b5ff38243355c06d665ba8245d461a0d82504581 (diff) | |
download | cpython-f300a1fa4c121f7807cbda4fc8bb26240c69ea74.zip cpython-f300a1fa4c121f7807cbda4fc8bb26240c69ea74.tar.gz cpython-f300a1fa4c121f7807cbda4fc8bb26240c69ea74.tar.bz2 |
gh-100227: Move the dtoa State to PyInterpreterState (gh-102331)
https://github.com/python/cpython/issues/100227
Diffstat (limited to 'Python/dtoa.c')
-rw-r--r-- | Python/dtoa.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/Python/dtoa.c b/Python/dtoa.c index cff5f1b..6ea60ac 100644 --- a/Python/dtoa.c +++ b/Python/dtoa.c @@ -119,7 +119,7 @@ #include "Python.h" #include "pycore_dtoa.h" // _PY_SHORT_FLOAT_REPR -#include "pycore_runtime.h" // _PyRuntime +#include "pycore_pystate.h" // _PyInterpreterState_GET() #include <stdlib.h> // exit() /* if _PY_SHORT_FLOAT_REPR == 0, then don't even try to compile @@ -339,9 +339,9 @@ typedef struct Bigint Bigint; Bfree to PyMem_Free. Investigate whether this has any significant performance on impact. */ -#define freelist _PyRuntime.dtoa.freelist -#define private_mem _PyRuntime.dtoa.preallocated -#define pmem_next _PyRuntime.dtoa.preallocated_next +#define freelist interp->dtoa.freelist +#define private_mem interp->dtoa.preallocated +#define pmem_next interp->dtoa.preallocated_next /* Allocate space for a Bigint with up to 1<<k digits */ @@ -351,6 +351,7 @@ Balloc(int k) int x; Bigint *rv; unsigned int len; + PyInterpreterState *interp = _PyInterpreterState_GET(); if (k <= Bigint_Kmax && (rv = freelist[k])) freelist[k] = rv->next; @@ -385,6 +386,7 @@ Bfree(Bigint *v) if (v->k > Bigint_Kmax) FREE((void*)v); else { + PyInterpreterState *interp = _PyInterpreterState_GET(); v->next = freelist[v->k]; freelist[v->k] = v; } @@ -692,7 +694,8 @@ pow5mult(Bigint *b, int k) if (!(k >>= 2)) return b; - p5 = _PyRuntime.dtoa.p5s; + PyInterpreterState *interp = _PyInterpreterState_GET(); + p5 = interp->dtoa.p5s; if (!p5) { /* first time */ p5 = i2b(625); @@ -700,7 +703,7 @@ pow5mult(Bigint *b, int k) Bfree(b); return NULL; } - _PyRuntime.dtoa.p5s = p5; + interp->dtoa.p5s = p5; p5->next = 0; } for(;;) { |