From c62afea58c1bcb46759038e2354d1437ea20dd8b Mon Sep 17 00:00:00 2001 From: Yury Selivanov Date: Thu, 12 Dec 2024 14:41:06 -0800 Subject: [PATCH] Apply better style for passing flags --- gel/datatypes/internal.h | 14 ++++++++++---- gel/datatypes/namedtuple.c | 3 ++- gel/datatypes/object.c | 8 +++++--- gel/datatypes/record.c | 3 ++- gel/datatypes/repr.c | 10 ++++------ 5 files changed, 23 insertions(+), 15 deletions(-) diff --git a/gel/datatypes/internal.h b/gel/datatypes/internal.h index ee521b5a..01c91b03 100644 --- a/gel/datatypes/internal.h +++ b/gel/datatypes/internal.h @@ -37,15 +37,21 @@ PyObject * _EdgeGeneric_RenderObject(PyObject *obj); int _EdgeGeneric_RenderValues( _PyUnicodeWriter *, PyObject *, PyObject **, Py_ssize_t); -int _EdgeGeneric_RenderItems(_PyUnicodeWriter *, - PyObject *, PyObject *, - PyObject **, Py_ssize_t, int, int, int); - PyObject * _EdgeGeneric_RichCompareValues(PyObject **, Py_ssize_t, PyObject **, Py_ssize_t, int); +#define EDGE_RENDER_NAMES 0x1 +#define EDGE_RENDER_LINK_PROPS 0x2 +#define EDGE_RENDER_IMPLICIT 0x4 +#define EDGE_RENDER_DEFAULT 0 + +int _EdgeGeneric_RenderItems(_PyUnicodeWriter *, + PyObject *, PyObject *, + PyObject **, Py_ssize_t, + int); + #ifndef _PyList_CAST # define _PyList_CAST(op) (assert(PyList_Check(op)), (PyListObject *)(op)) #endif diff --git a/gel/datatypes/namedtuple.c b/gel/datatypes/namedtuple.c index b5f56c50..08395713 100644 --- a/gel/datatypes/namedtuple.c +++ b/gel/datatypes/namedtuple.c @@ -357,7 +357,8 @@ namedtuple_repr(PyTupleObject *o) if (_EdgeGeneric_RenderItems(&writer, (PyObject *)o, EdgeNamedTuple_Type_DESC(Py_TYPE(o)), - o->ob_item, Py_SIZE(o), 1, 0, 0) < 0) + o->ob_item, Py_SIZE(o), + EDGE_RENDER_NAMES) < 0) { goto error; } diff --git a/gel/datatypes/object.c b/gel/datatypes/object.c index 81019c61..955680e6 100644 --- a/gel/datatypes/object.c +++ b/gel/datatypes/object.c @@ -263,9 +263,11 @@ object_repr(EdgeObject *o) goto error; } - if (_EdgeGeneric_RenderItems(&writer, - (PyObject *)o, o->desc, - o->ob_item, Py_SIZE(o), 1, 1, 0) < 0) + if (_EdgeGeneric_RenderItems( + &writer, + (PyObject *)o, o->desc, + o->ob_item, Py_SIZE(o), + EDGE_RENDER_NAMES | EDGE_RENDER_LINK_PROPS) < 0) { goto error; } diff --git a/gel/datatypes/record.c b/gel/datatypes/record.c index 4e373406..d2480754 100644 --- a/gel/datatypes/record.c +++ b/gel/datatypes/record.c @@ -206,7 +206,8 @@ record_repr(EdgeRecord *o) if (_EdgeGeneric_RenderItems(&writer, (PyObject *)o, o->desc, - o->ob_item, Py_SIZE(o), 0, 0, 0) < 0) + o->ob_item, Py_SIZE(o), + EDGE_RENDER_DEFAULT) < 0) { goto error; } diff --git a/gel/datatypes/repr.c b/gel/datatypes/repr.c index bcc036fb..42a010e0 100644 --- a/gel/datatypes/repr.c +++ b/gel/datatypes/repr.c @@ -81,9 +81,7 @@ int _EdgeGeneric_RenderItems(_PyUnicodeWriter *writer, PyObject *host, PyObject *desc, PyObject **items, Py_ssize_t len, - int include_names, - int include_link_props, - int include_implicit) + int render_flags) { assert(EdgeRecordDesc_GetSize(desc) == len); @@ -114,12 +112,12 @@ _EdgeGeneric_RenderItems(_PyUnicodeWriter *writer, goto error; } - if (is_implicit && !include_implicit) { + if (is_implicit && !(render_flags & EDGE_RENDER_IMPLICIT)) { continue; } if (is_linkprop) { - if (!include_link_props) { + if (!(render_flags & EDGE_RENDER_LINK_PROPS)) { continue; } } @@ -129,7 +127,7 @@ _EdgeGeneric_RenderItems(_PyUnicodeWriter *writer, goto error; } - if (include_names) { + if (render_flags & EDGE_RENDER_NAMES) { item_name = EdgeRecordDesc_PointerName(desc, i); if (item_name == NULL) { goto error;