Skip to content

Commit fde4204

Browse files
committed
Address review
1 parent 753090a commit fde4204

File tree

3 files changed

+14
-12
lines changed

3 files changed

+14
-12
lines changed

Lib/test/test_ctypes/_support.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def _check_struct_or_union(self, cls, is_struct):
6161
cls_size = ctypes.sizeof(cls)
6262
for name, requested_type, *rest_of_tuple in cls._fields_:
6363
field = getattr(cls, name)
64-
with self.subTest(field=field):
64+
with self.subTest(name=name, field=field):
6565
is_bitfield = len(rest_of_tuple) > 0
6666

6767
# name

Lib/test/test_ctypes/test_struct_fields.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import unittest
22
import sys
33
from ctypes import Structure, Union, sizeof, c_char, c_int, CField
4-
from ._support import Py_TPFLAGS_IMMUTABLETYPE, StructCheckMixin)
4+
from ._support import Py_TPFLAGS_IMMUTABLETYPE, StructCheckMixin
55

66

77
NOTHING = object()

Modules/_ctypes/cfield.c

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,9 @@ PyCField_new_impl(PyTypeObject *type, PyObject *name, PyObject *proto,
134134
// so they're limited to about 8 bytes.
135135
// This check is here to avoid overflow in later checks.
136136
PyErr_Format(PyExc_ValueError,
137-
"bit field %R size too large, got %zd",
138-
name, byte_size);
137+
"bit field %R size too large, got %zd",
138+
name, byte_size);
139+
goto error;
139140
}
140141
bitfield_size = PyLong_AsSsize_t(bit_size_obj);
141142
if ((bitfield_size <= 0) || (bitfield_size > 255)) {
@@ -150,8 +151,8 @@ PyCField_new_impl(PyTypeObject *type, PyObject *name, PyObject *proto,
150151
if ((bit_offset < 0) || (bit_offset > 255)) {
151152
if (!PyErr_Occurred()) {
152153
PyErr_Format(PyExc_ValueError,
153-
"bit offset of field %R out of range, got %zd",
154-
name, bit_offset);
154+
"bit offset of field %R out of range, got %zd",
155+
name, bit_offset);
155156
}
156157
goto error;
157158
}
@@ -160,7 +161,7 @@ PyCField_new_impl(PyTypeObject *type, PyObject *name, PyObject *proto,
160161
PyExc_ValueError,
161162
"bit field %R overflows its type (%zd + %zd >= %zd)",
162163
name, bit_offset, byte_size*8);
163-
goto error;
164+
goto error;
164165
}
165166
}
166167
else {
@@ -169,6 +170,7 @@ PyCField_new_impl(PyTypeObject *type, PyObject *name, PyObject *proto,
169170
PyExc_ValueError,
170171
"field %R: bit_offset must be specified if bit_size is",
171172
name);
173+
goto error;
172174
}
173175
}
174176

@@ -180,7 +182,7 @@ PyCField_new_impl(PyTypeObject *type, PyObject *name, PyObject *proto,
180182
if (!self->name) {
181183
goto error;
182184
}
183-
assert (PyUnicode_CheckExact(self->name));
185+
assert(PyUnicode_CheckExact(self->name));
184186

185187
self->proto = Py_NewRef(proto);
186188
self->byte_size = byte_size;
@@ -284,14 +286,14 @@ PyCField_get(PyObject *op, PyObject *inst, PyTypeObject *type)
284286
}
285287

286288
static PyObject *
287-
PyCField_get_legacy_size(PyObject *self, void *data)
289+
PyCField_get_legacy_size(PyObject *self, void *Py_UNUSED(closure))
288290
{
289291
CFieldObject *field = _CFieldObject_CAST(self);
290292
return PyLong_FromSsize_t(_pack_legacy_size(field));
291293
}
292294

293295
static PyObject *
294-
PyCField_get_bit_size(PyObject *self, void *data)
296+
PyCField_get_bit_size(PyObject *self, void *Py_UNUSED(closure))
295297
{
296298
CFieldObject *field = _CFieldObject_CAST(self);
297299
if (field->bitfield_size) {
@@ -323,13 +325,13 @@ PyCField_get_bit_size(PyObject *self, void *data)
323325
}
324326

325327
static PyObject *
326-
PyCField_is_bitfield(PyObject *self, void *data)
328+
PyCField_is_bitfield(PyObject *self, void *Py_UNUSED(closure))
327329
{
328330
return PyBool_FromLong(_CFieldObject_CAST(self)->bitfield_size);
329331
}
330332

331333
static PyObject *
332-
PyCField_is_anonymous(PyObject *self, void *data)
334+
PyCField_is_anonymous(PyObject *self, void *Py_UNUSED(closure))
333335
{
334336
return PyBool_FromLong(_CFieldObject_CAST(self)->anonymous);
335337
}

0 commit comments

Comments
 (0)