summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/_decimal/_decimal.c17
-rw-r--r--Tools/c-analyzer/cpython/globals-to-fix.tsv1
2 files changed, 9 insertions, 9 deletions
diff --git a/Modules/_decimal/_decimal.c b/Modules/_decimal/_decimal.c
index b7cb195..da62372 100644
--- a/Modules/_decimal/_decimal.c
+++ b/Modules/_decimal/_decimal.c
@@ -46,6 +46,9 @@ typedef struct {
PyTypeObject *PyDec_Type;
PyTypeObject *PyDecSignalDict_Type;
PyTypeObject *DecimalTuple;
+
+ /* Top level Exception; inherits from ArithmeticError */
+ PyObject *DecimalException;
} decimal_state;
static decimal_state global_state;
@@ -164,9 +167,6 @@ typedef struct {
PyObject *ex; /* corresponding exception */
} DecCondMap;
-/* Top level Exception; inherits from ArithmeticError */
-static PyObject *DecimalException = NULL;
-
/* Exceptions that correspond to IEEE signals */
#define SUBNORMAL 5
#define INEXACT 6
@@ -5902,10 +5902,10 @@ PyInit__decimal(void)
CHECK_INT(PyModule_AddType(m, state->DecimalTuple));
/* Create top level exception */
- ASSIGN_PTR(DecimalException, PyErr_NewException(
+ ASSIGN_PTR(state->DecimalException, PyErr_NewException(
"decimal.DecimalException",
PyExc_ArithmeticError, NULL));
- CHECK_INT(PyModule_AddObject(m, "DecimalException", Py_NewRef(DecimalException)));
+ CHECK_INT(PyModule_AddType(m, (PyTypeObject *)state->DecimalException));
/* Create signal tuple */
ASSIGN_PTR(SignalTuple, PyTuple_New(SIGNAL_MAP_LEN));
@@ -5918,10 +5918,11 @@ PyInit__decimal(void)
switch (cm->flag) {
case MPD_Float_operation:
- base = PyTuple_Pack(2, DecimalException, PyExc_TypeError);
+ base = PyTuple_Pack(2, state->DecimalException, PyExc_TypeError);
break;
case MPD_Division_by_zero:
- base = PyTuple_Pack(2, DecimalException, PyExc_ZeroDivisionError);
+ base = PyTuple_Pack(2, state->DecimalException,
+ PyExc_ZeroDivisionError);
break;
case MPD_Overflow:
base = PyTuple_Pack(2, signal_map[INEXACT].ex,
@@ -5933,7 +5934,7 @@ PyInit__decimal(void)
signal_map[SUBNORMAL].ex);
break;
default:
- base = PyTuple_Pack(1, DecimalException);
+ base = PyTuple_Pack(1, state->DecimalException);
break;
}
diff --git a/Tools/c-analyzer/cpython/globals-to-fix.tsv b/Tools/c-analyzer/cpython/globals-to-fix.tsv
index 1131edf..8fdc54d 100644
--- a/Tools/c-analyzer/cpython/globals-to-fix.tsv
+++ b/Tools/c-analyzer/cpython/globals-to-fix.tsv
@@ -393,7 +393,6 @@ Modules/xxlimited_35.c - Xxo_Type -
## exception types
Modules/_ctypes/_ctypes.c - PyExc_ArgError -
Modules/_cursesmodule.c - PyCursesError -
-Modules/_decimal/_decimal.c - DecimalException -
Modules/_tkinter.c - Tkinter_TclError -
Modules/xxlimited_35.c - ErrorObject -
Modules/xxmodule.c - ErrorObject -