Skip to content

Commit

Permalink
gh-101819: Remove _testcapi dependencies on specific _io symbols (#10…
Browse files Browse the repository at this point in the history
  • Loading branch information
erlend-aasland authored Feb 15, 2023
1 parent 8a2b7ee commit e8b6aaa
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 12 deletions.
12 changes: 2 additions & 10 deletions Modules/_io/_iomodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -720,16 +720,8 @@ PyInit__io(void)
// Add types
for (size_t i=0; i < Py_ARRAY_LENGTH(static_types); i++) {
PyTypeObject *type = static_types[i];
// Private type not exposed in the _io module
if (type == &_PyBytesIOBuffer_Type) {
if (PyType_Ready(type) < 0) {
goto fail;
}
}
else {
if (PyModule_AddType(m, type) < 0) {
goto fail;
}
if (PyModule_AddType(m, type) < 0) {
goto fail;
}
}

Expand Down
8 changes: 6 additions & 2 deletions Modules/_testcapimodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -1448,12 +1448,10 @@ test_from_contiguous(PyObject* self, PyObject *Py_UNUSED(ignored))
}

#if (defined(__linux__) || defined(__FreeBSD__)) && defined(__GNUC__)
extern PyTypeObject _PyBytesIOBuffer_Type;

static PyObject *
test_pep3118_obsolete_write_locks(PyObject* self, PyObject *Py_UNUSED(ignored))
{
PyTypeObject *type = &_PyBytesIOBuffer_Type;
PyObject *b;
char *dummy[1];
int ret, match;
Expand All @@ -1466,7 +1464,13 @@ test_pep3118_obsolete_write_locks(PyObject* self, PyObject *Py_UNUSED(ignored))
goto error;

/* bytesiobuf_getbuffer() */
PyTypeObject *type = (PyTypeObject *)_PyImport_GetModuleAttrString(
"_io", "_BytesIOBuffer");
if (type == NULL) {
return NULL;
}
b = type->tp_alloc(type, 0);
Py_DECREF(type);
if (b == NULL) {
return NULL;
}
Expand Down

0 comments on commit e8b6aaa

Please sign in to comment.