From c9a5962cd8adec27669ce41b4a0377a87adbe1fc Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Thu, 29 Aug 2024 14:38:36 -0400 Subject: [PATCH] Fix some more instances of redundant PyBool_Checks --- Objects/frameobject.c | 11 +++++------ Objects/listobject.c | 4 ++-- Python/structmember.c | 10 +++++----- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Objects/frameobject.c b/Objects/frameobject.c index 85c24550d0b4093..514418293fcb55f 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -889,20 +889,19 @@ frame_gettrace_opcodes(PyFrameObject *f, void *closure) static int frame_settrace_opcodes(PyFrameObject *f, PyObject* value, void *Py_UNUSED(ignored)) { - if (!PyBool_Check(value)) { - PyErr_SetString(PyExc_TypeError, - "attribute value type must be bool"); - return -1; - } if (value == Py_True) { f->f_trace_opcodes = 1; if (f->f_trace) { return _PyEval_SetOpcodeTrace(f, true); } } - else { + else if (value == Py_False) { f->f_trace_opcodes = 0; return _PyEval_SetOpcodeTrace(f, false); + } else { + PyErr_SetString(PyExc_TypeError, + "attribute value type must be bool"); + return -1; } return 0; } diff --git a/Objects/listobject.c b/Objects/listobject.c index 067d1a18d3bb75e..f6e9ba00c96fe7d 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -2665,8 +2665,8 @@ unsafe_object_compare(PyObject *v, PyObject *w, MergeState *ms) if (res_obj == NULL) return -1; - if (PyBool_Check(res_obj)) { - res = (res_obj == Py_True); + if (res_obj == Py_True) { + res = 1; } else { res = PyObject_IsTrue(res_obj); diff --git a/Python/structmember.c b/Python/structmember.c index d5e7ab83093dc86..cb625e33ad84ddf 100644 --- a/Python/structmember.c +++ b/Python/structmember.c @@ -163,15 +163,15 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) } switch (l->type) { case Py_T_BOOL:{ - if (!PyBool_Check(v)) { + if (v == Py_True) + *(char*)addr = (char) 1; + else if (v == Py_False) + *(char*)addr = (char) 0; + else { PyErr_SetString(PyExc_TypeError, "attribute value type must be bool"); return -1; } - if (v == Py_True) - *(char*)addr = (char) 1; - else - *(char*)addr = (char) 0; break; } case Py_T_BYTE:{