diff options
author | Bénédikt Tran <10796600+picnixz@users.noreply.github.com> | 2024-09-09 09:24:24 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-09 09:24:24 (GMT) |
commit | 05a401a5c3e385286a346df6f0b463b35df871b2 (patch) | |
tree | 962112feb1f74fa677d6259f795dc0435ebf2ed0 /Modules/_decimal | |
parent | 93b61bc1245fb318a11d3d1a0808174b3c1bc333 (diff) | |
download | cpython-05a401a5c3e385286a346df6f0b463b35df871b2.zip cpython-05a401a5c3e385286a346df6f0b463b35df871b2.tar.gz cpython-05a401a5c3e385286a346df6f0b463b35df871b2.tar.bz2 |
chore: decimal module macro cleanup (#123791)
* protect macros expansion via `do { ... } while (0)` constructions in `_decimal.c`
* Use public macro `Py_UNUSED`
This replaces the usages of the `UNUSED` macro which
was not consistent with the `Py_UNUSED` macro itself.
In addition, this amends the parameter names so that
they match their semantic meanings.
* Remove redundant `PyCFunction` casts
Diffstat (limited to 'Modules/_decimal')
-rw-r--r-- | Modules/_decimal/_decimal.c | 157 |
1 files changed, 79 insertions, 78 deletions
diff --git a/Modules/_decimal/_decimal.c b/Modules/_decimal/_decimal.c index 9621287..e99a96a 100644 --- a/Modules/_decimal/_decimal.c +++ b/Modules/_decimal/_decimal.c @@ -161,12 +161,6 @@ find_state_left_or_right(PyObject *left, PyObject *right) #define BOUNDS_CHECK(x, MIN, MAX) x = (x < MIN || MAX < x) ? MAX : x -#if defined(__GNUC__) && !defined(__INTEL_COMPILER) - #define UNUSED __attribute__((unused)) -#else - #define UNUSED -#endif - /* _Py_DEC_MINALLOC >= MPD_MINALLOC */ #define _Py_DEC_MINALLOC 4 @@ -362,7 +356,7 @@ runtime_error_ptr(const char *mesg) return runtime_error_ptr("internal error in " funcname) static void -dec_traphandler(mpd_context_t *ctx UNUSED) /* GCOV_NOT_REACHED */ +dec_traphandler(mpd_context_t *Py_UNUSED(ctx)) /* GCOV_NOT_REACHED */ { /* GCOV_NOT_REACHED */ return; /* GCOV_NOT_REACHED */ } @@ -624,7 +618,8 @@ getround(decimal_state *state, PyObject *v) static const char *INVALID_SIGNALDICT_ERROR_MSG = "invalid signal dict"; static int -signaldict_init(PyObject *self, PyObject *args UNUSED, PyObject *kwds UNUSED) +signaldict_init(PyObject *self, + PyObject *Py_UNUSED(args), PyObject *Py_UNUSED(kwds)) { SdFlagAddr(self) = NULL; return 0; @@ -782,7 +777,7 @@ signaldict_richcompare(PyObject *v, PyObject *w, int op) } static PyObject * -signaldict_copy(PyObject *self, PyObject *args UNUSED) +signaldict_copy(PyObject *self, PyObject *Py_UNUSED(dummy)) { if (SdFlagAddr(self) == NULL) { return value_error_ptr(INVALID_SIGNALDICT_ERROR_MSG); @@ -793,7 +788,7 @@ signaldict_copy(PyObject *self, PyObject *args UNUSED) static PyMethodDef signaldict_methods[] = { - { "copy", (PyCFunction)signaldict_copy, METH_NOARGS, NULL}, + { "copy", signaldict_copy, METH_NOARGS, NULL}, {NULL, NULL} }; @@ -829,18 +824,18 @@ static PyType_Spec signaldict_spec = { /* Context Object, Part 1 */ /******************************************************************************/ -#define Dec_CONTEXT_GET_SSIZE(mem) \ -static PyObject * \ -context_get##mem(PyObject *self, void *closure UNUSED) \ -{ \ - return PyLong_FromSsize_t(mpd_get##mem(CTX(self))); \ +#define Dec_CONTEXT_GET_SSIZE(mem) \ +static PyObject * \ +context_get##mem(PyObject *self, void *Py_UNUSED(closure)) \ +{ \ + return PyLong_FromSsize_t(mpd_get##mem(CTX(self))); \ } -#define Dec_CONTEXT_GET_ULONG(mem) \ -static PyObject * \ -context_get##mem(PyObject *self, void *closure UNUSED) \ -{ \ - return PyLong_FromUnsignedLong(mpd_get##mem(CTX(self))); \ +#define Dec_CONTEXT_GET_ULONG(mem) \ +static PyObject * \ +context_get##mem(PyObject *self, void *Py_UNUSED(closure)) \ +{ \ + return PyLong_FromUnsignedLong(mpd_get##mem(CTX(self))); \ } Dec_CONTEXT_GET_SSIZE(prec) @@ -854,7 +849,7 @@ Dec_CONTEXT_GET_ULONG(status) #endif static PyObject * -context_getround(PyObject *self, void *closure UNUSED) +context_getround(PyObject *self, void *Py_UNUSED(closure)) { int i = mpd_getround(CTX(self)); decimal_state *state = get_module_state_by_def(Py_TYPE(self)); @@ -863,33 +858,33 @@ context_getround(PyObject *self, void *closure UNUSED) } static PyObject * -context_getcapitals(PyObject *self, void *closure UNUSED) +context_getcapitals(PyObject *self, void *Py_UNUSED(closure)) { return PyLong_FromLong(CtxCaps(self)); } #ifdef EXTRA_FUNCTIONALITY static PyObject * -context_getallcr(PyObject *self, void *closure UNUSED) +context_getallcr(PyObject *self, void *Py_UNUSED(closure)) { return PyLong_FromLong(mpd_getcr(CTX(self))); } #endif static PyObject * -context_getetiny(PyObject *self, PyObject *dummy UNUSED) +context_getetiny(PyObject *self, PyObject *Py_UNUSED(dummy)) { return PyLong_FromSsize_t(mpd_etiny(CTX(self))); } static PyObject * -context_getetop(PyObject *self, PyObject *dummy UNUSED) +context_getetop(PyObject *self, PyObject *Py_UNUSED(dummy)) { return PyLong_FromSsize_t(mpd_etop(CTX(self))); } static int -context_setprec(PyObject *self, PyObject *value, void *closure UNUSED) +context_setprec(PyObject *self, PyObject *value, void *Py_UNUSED(closure)) { mpd_context_t *ctx; mpd_ssize_t x; @@ -909,7 +904,7 @@ context_setprec(PyObject *self, PyObject *value, void *closure UNUSED) } static int -context_setemin(PyObject *self, PyObject *value, void *closure UNUSED) +context_setemin(PyObject *self, PyObject *value, void *Py_UNUSED(closure)) { mpd_context_t *ctx; mpd_ssize_t x; @@ -929,7 +924,7 @@ context_setemin(PyObject *self, PyObject *value, void *closure UNUSED) } static int -context_setemax(PyObject *self, PyObject *value, void *closure UNUSED) +context_setemax(PyObject *self, PyObject *value, void *Py_UNUSED(closure)) { mpd_context_t *ctx; mpd_ssize_t x; @@ -1011,7 +1006,7 @@ context_unsafe_setemax(PyObject *self, PyObject *value) #endif static int -context_setround(PyObject *self, PyObject *value, void *closure UNUSED) +context_setround(PyObject *self, PyObject *value, void *Py_UNUSED(closure)) { mpd_context_t *ctx; int x; @@ -1031,7 +1026,7 @@ context_setround(PyObject *self, PyObject *value, void *closure UNUSED) } static int -context_setcapitals(PyObject *self, PyObject *value, void *closure UNUSED) +context_setcapitals(PyObject *self, PyObject *value, void *Py_UNUSED(closure)) { mpd_ssize_t x; @@ -1051,7 +1046,7 @@ context_setcapitals(PyObject *self, PyObject *value, void *closure UNUSED) #ifdef EXTRA_FUNCTIONALITY static int -context_settraps(PyObject *self, PyObject *value, void *closure UNUSED) +context_settraps(PyObject *self, PyObject *value, void *Py_UNUSED(closure)) { mpd_context_t *ctx; uint32_t flags; @@ -1116,7 +1111,7 @@ context_settraps_dict(PyObject *self, PyObject *value) #ifdef EXTRA_FUNCTIONALITY static int -context_setstatus(PyObject *self, PyObject *value, void *closure UNUSED) +context_setstatus(PyObject *self, PyObject *value, void *Py_UNUSED(closure)) { mpd_context_t *ctx; uint32_t flags; @@ -1181,7 +1176,7 @@ context_setstatus_dict(PyObject *self, PyObject *value) } static int -context_setclamp(PyObject *self, PyObject *value, void *closure UNUSED) +context_setclamp(PyObject *self, PyObject *value, void *Py_UNUSED(closure)) { mpd_context_t *ctx; mpd_ssize_t x; @@ -1202,7 +1197,7 @@ context_setclamp(PyObject *self, PyObject *value, void *closure UNUSED) #ifdef EXTRA_FUNCTIONALITY static int -context_setallcr(PyObject *self, PyObject *value, void *closure UNUSED) +context_setallcr(PyObject *self, PyObject *value, void *Py_UNUSED(closure)) { mpd_context_t *ctx; mpd_ssize_t x; @@ -1324,14 +1319,14 @@ context_setattrs(PyObject *self, PyObject *prec, PyObject *rounding, } static PyObject * -context_clear_traps(PyObject *self, PyObject *dummy UNUSED) +context_clear_traps(PyObject *self, PyObject *Py_UNUSED(dummy)) { CTX(self)->traps = 0; Py_RETURN_NONE; } static PyObject * -context_clear_flags(PyObject *self, PyObject *dummy UNUSED) +context_clear_flags(PyObject *self, PyObject *Py_UNUSED(dummy)) { CTX(self)->status = 0; Py_RETURN_NONE; @@ -1347,7 +1342,8 @@ static mpd_context_t dflt_ctx = { }; static PyObject * -context_new(PyTypeObject *type, PyObject *args UNUSED, PyObject *kwds UNUSED) +context_new(PyTypeObject *type, + PyObject *Py_UNUSED(args), PyObject *Py_UNUSED(kwds)) { PyDecContextObject *self = NULL; mpd_context_t *ctx; @@ -1554,7 +1550,7 @@ error: #endif static PyObject * -context_copy(PyObject *self, PyObject *args UNUSED) +context_copy(PyObject *self, PyObject *Py_UNUSED(dummy)) { PyObject *copy; @@ -1572,7 +1568,7 @@ context_copy(PyObject *self, PyObject *args UNUSED) } static PyObject * -context_reduce(PyObject *self, PyObject *args UNUSED) +context_reduce(PyObject *self, PyObject *Py_UNUSED(dummy)) { PyObject *flags; PyObject *traps; @@ -1717,15 +1713,17 @@ current_context(decimal_state *modstate) } /* ctxobj := borrowed reference to the current context */ -#define CURRENT_CONTEXT(state, ctxobj) \ - ctxobj = current_context(state); \ - if (ctxobj == NULL) { \ - return NULL; \ - } +#define CURRENT_CONTEXT(STATE, CTXOBJ) \ + do { \ + CTXOBJ = current_context(STATE); \ + if (CTXOBJ == NULL) { \ + return NULL; \ + } \ + } while (0) /* Return a new reference to the current context */ static PyObject * -PyDec_GetCurrentContext(PyObject *self, PyObject *args UNUSED) +PyDec_GetCurrentContext(PyObject *self, PyObject *Py_UNUSED(dummy)) { PyObject *context; decimal_state *state = get_module_state(self); @@ -1810,16 +1808,18 @@ current_context(decimal_state *state) } /* ctxobj := borrowed reference to the current context */ -#define CURRENT_CONTEXT(state, ctxobj) \ - ctxobj = current_context(state); \ - if (ctxobj == NULL) { \ - return NULL; \ - } \ - Py_DECREF(ctxobj); +#define CURRENT_CONTEXT(STATE, CTXOBJ) \ + do { \ + CTXOBJ = current_context(STATE); \ + if (CTXOBJ == NULL) { \ + return NULL; \ + } \ + Py_DECREF(CTXOBJ); \ + } while (0) /* Return a new reference to the current context */ static PyObject * -PyDec_GetCurrentContext(PyObject *self, PyObject *args UNUSED) +PyDec_GetCurrentContext(PyObject *self, PyObject *Py_UNUSED(dummy)) { decimal_state *state = get_module_state(self); return current_context(state); @@ -1956,7 +1956,8 @@ ctxmanager_dealloc(PyDecContextManagerObject *self) } static PyObject * -ctxmanager_set_local(PyDecContextManagerObject *self, PyObject *args UNUSED) +ctxmanager_set_local(PyDecContextManagerObject *self, + PyObject *Py_UNUSED(dummy)) { PyObject *ret; @@ -1971,7 +1972,7 @@ ctxmanager_set_local(PyDecContextManagerObject *self, PyObject *args UNUSED) static PyObject * ctxmanager_restore_global(PyDecContextManagerObject *self, - PyObject *args UNUSED) + PyObject *Py_UNUSED(args)) { PyObject *ret; @@ -3634,7 +3635,7 @@ dec_as_long(PyObject *dec, PyObject *context, int round) /* Convert a Decimal to its exact integer ratio representation. */ static PyObject * -dec_as_integer_ratio(PyObject *self, PyObject *args UNUSED) +dec_as_integer_ratio(PyObject *self, PyObject *Py_UNUSED(dummy)) { PyObject *numerator = NULL; PyObject *denominator = NULL; @@ -3902,7 +3903,7 @@ PyDec_Round(PyObject *dec, PyObject *args) /* Return the DecimalTuple representation of a PyDecObject. */ static PyObject * -PyDec_AsTuple(PyObject *dec, PyObject *dummy UNUSED) +PyDec_AsTuple(PyObject *dec, PyObject *Py_UNUSED(dummy)) { PyObject *result = NULL; PyObject *sign = NULL; @@ -4058,7 +4059,7 @@ nm_##MPDFUNC(PyObject *self, PyObject *other) \ /* Boolean function without a context arg. */ #define Dec_BoolFunc(MPDFUNC) \ static PyObject * \ -dec_##MPDFUNC(PyObject *self, PyObject *dummy UNUSED) \ +dec_##MPDFUNC(PyObject *self, PyObject *Py_UNUSED(dummy)) \ { \ return MPDFUNC(MPD(self)) ? incr_true() : incr_false(); \ } @@ -4387,7 +4388,7 @@ Dec_BoolFuncVA(mpd_issubnormal) /* Unary functions, no context arg */ static PyObject * -dec_mpd_adjexp(PyObject *self, PyObject *dummy UNUSED) +dec_mpd_adjexp(PyObject *self, PyObject *Py_UNUSED(dummy)) { mpd_ssize_t retval; @@ -4402,19 +4403,19 @@ dec_mpd_adjexp(PyObject *self, PyObject *dummy UNUSED) } static PyObject * -dec_canonical(PyObject *self, PyObject *dummy UNUSED) +dec_canonical(PyObject *self, PyObject *Py_UNUSED(dummy)) { return Py_NewRef(self); } static PyObject * -dec_conjugate(PyObject *self, PyObject *dummy UNUSED) +dec_conjugate(PyObject *self, PyObject *Py_UNUSED(dummy)) { return Py_NewRef(self); } static PyObject * -dec_mpd_radix(PyObject *self, PyObject *dummy UNUSED) +dec_mpd_radix(PyObject *self, PyObject *Py_UNUSED(dummy)) { PyObject *result; @@ -4429,7 +4430,7 @@ dec_mpd_radix(PyObject *self, PyObject *dummy UNUSED) } static PyObject * -dec_mpd_qcopy_abs(PyObject *self, PyObject *dummy UNUSED) +dec_mpd_qcopy_abs(PyObject *self, PyObject *Py_UNUSED(dummy)) { PyObject *result; uint32_t status = 0; @@ -4450,7 +4451,7 @@ dec_mpd_qcopy_abs(PyObject *self, PyObject *dummy UNUSED) } static PyObject * -dec_mpd_qcopy_negate(PyObject *self, PyObject *dummy UNUSED) +dec_mpd_qcopy_negate(PyObject *self, PyObject *Py_UNUSED(dummy)) { PyObject *result; uint32_t status = 0; @@ -4704,7 +4705,7 @@ dec_richcompare(PyObject *v, PyObject *w, int op) /* __ceil__ */ static PyObject * -dec_ceil(PyObject *self, PyObject *dummy UNUSED) +dec_ceil(PyObject *self, PyObject *Py_UNUSED(dummy)) { PyObject *context; @@ -4715,7 +4716,7 @@ dec_ceil(PyObject *self, PyObject *dummy UNUSED) /* __complex__ */ static PyObject * -dec_complex(PyObject *self, PyObject *dummy UNUSED) +dec_complex(PyObject *self, PyObject *Py_UNUSED(dummy)) { PyObject *f; double x; @@ -4734,16 +4735,16 @@ dec_complex(PyObject *self, PyObject *dummy UNUSED) return PyComplex_FromDoubles(x, 0); } -/* __copy__ and __deepcopy__ */ +/* __copy__ (METH_NOARGS) and __deepcopy__ (METH_O) */ static PyObject * -dec_copy(PyObject *self, PyObject *dummy UNUSED) +dec_copy(PyObject *self, PyObject *Py_UNUSED(dummy)) { return Py_NewRef(self); } /* __floor__ */ static PyObject * -dec_floor(PyObject *self, PyObject *dummy UNUSED) +dec_floor(PyObject *self, PyObject *Py_UNUSED(dummy)) { PyObject *context; @@ -4880,7 +4881,7 @@ dec_hash(PyDecObject *self) /* __reduce__ */ static PyObject * -dec_reduce(PyObject *self, PyObject *dummy UNUSED) +dec_reduce(PyObject *self, PyObject *Py_UNUSED(dummy)) { PyObject *result, *str; @@ -4897,7 +4898,7 @@ dec_reduce(PyObject *self, PyObject *dummy UNUSED) /* __sizeof__ */ static PyObject * -dec_sizeof(PyObject *v, PyObject *dummy UNUSED) +dec_sizeof(PyObject *v, PyObject *Py_UNUSED(dummy)) { size_t res = _PyObject_SIZE(Py_TYPE(v)); if (mpd_isdynamic_data(MPD(v))) { @@ -4908,7 +4909,7 @@ dec_sizeof(PyObject *v, PyObject *dummy UNUSED) /* __trunc__ */ static PyObject * -dec_trunc(PyObject *self, PyObject *dummy UNUSED) +dec_trunc(PyObject *self, PyObject *Py_UNUSED(dummy)) { PyObject *context; @@ -4919,13 +4920,13 @@ dec_trunc(PyObject *self, PyObject *dummy UNUSED) /* real and imag */ static PyObject * -dec_real(PyObject *self, void *closure UNUSED) +dec_real(PyObject *self, void *Py_UNUSED(closure)) { return Py_NewRef(self); } static PyObject * -dec_imag(PyObject *self UNUSED, void *closure UNUSED) +dec_imag(PyObject *self, void *Py_UNUSED(closure)) { PyObject *result; @@ -5717,9 +5718,9 @@ static PyMethodDef context_methods [] = #endif /* Miscellaneous */ - { "__copy__", (PyCFunction)context_copy, METH_NOARGS, NULL }, + { "__copy__", context_copy, METH_NOARGS, NULL }, { "__reduce__", context_reduce, METH_NOARGS, NULL }, - { "copy", (PyCFunction)context_copy, METH_NOARGS, doc_ctx_copy }, + { "copy", context_copy, METH_NOARGS, doc_ctx_copy }, { "create_decimal", ctx_create_decimal, METH_VARARGS, doc_ctx_create_decimal }, { "create_decimal_from_float", ctx_from_float, METH_O, doc_ctx_create_decimal_from_float }, @@ -5752,11 +5753,11 @@ static PyType_Spec context_spec = { static PyMethodDef _decimal_methods [] = { - { "getcontext", (PyCFunction)PyDec_GetCurrentContext, METH_NOARGS, doc_getcontext}, - { "setcontext", (PyCFunction)PyDec_SetCurrentContext, METH_O, doc_setcontext}, + { "getcontext", PyDec_GetCurrentContext, METH_NOARGS, doc_getcontext}, + { "setcontext", PyDec_SetCurrentContext, METH_O, doc_setcontext}, { "localcontext", _PyCFunction_CAST(ctxmanager_new), METH_VARARGS|METH_KEYWORDS, doc_localcontext}, #ifdef EXTRA_FUNCTIONALITY - { "IEEEContext", (PyCFunction)ieee_context, METH_O, doc_ieee_context}, + { "IEEEContext", ieee_context, METH_O, doc_ieee_context}, #endif { NULL, NULL, 1, NULL } }; |