gh-106078: Move DecimalException to _decimal state (#106301)

This commit is contained in:
Charlie Zhao 2023-07-03 00:50:40 +08:00 committed by GitHub
parent bc7eb17084
commit dbefa88b27
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 9 deletions

View File

@ -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;
}

View File

@ -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 -

Can't render this file because it has a wrong number of fields in line 4.