Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 9d759b6

Browse filesBrowse files
authored
gh-111178: Change Argument Clinic signature for METH_O (#130682)
Use "PyObject*" for METH_O functions to fix an undefined behavior.
1 parent 4162bc1 commit 9d759b6
Copy full SHA for 9d759b6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Dismiss banner
Expand file treeCollapse file tree

66 files changed

+843
-190
lines changed

‎Lib/test/clinic.test.c

Copy file name to clipboardExpand all lines: Lib/test/clinic.test.c
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4940,7 +4940,7 @@ static int
49404940
Test_metho_not_default_return_converter_impl(TestObj *self, PyObject *a);
49414941

49424942
static PyObject *
4943-
Test_metho_not_default_return_converter(TestObj *self, PyObject *a)
4943+
Test_metho_not_default_return_converter(PyObject *self, PyObject *a)
49444944
{
49454945
PyObject *return_value = NULL;
49464946
int _return_value;
@@ -4957,7 +4957,7 @@ Test_metho_not_default_return_converter(TestObj *self, PyObject *a)
49574957

49584958
static int
49594959
Test_metho_not_default_return_converter_impl(TestObj *self, PyObject *a)
4960-
/*[clinic end generated code: output=b2cce75a7af2e6ce input=428657129b521177]*/
4960+
/*[clinic end generated code: output=8b03f5213c312138 input=428657129b521177]*/
49614961

49624962

49634963
/*[clinic input]

‎Modules/_asynciomodule.c

Copy file name to clipboardExpand all lines: Modules/_asynciomodule.c
+4-4Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2738,8 +2738,8 @@ _asyncio.Task.set_result
27382738
[clinic start generated code]*/
27392739

27402740
static PyObject *
2741-
_asyncio_Task_set_result(TaskObj *self, PyObject *result)
2742-
/*[clinic end generated code: output=1dcae308bfcba318 input=9d1a00c07be41bab]*/
2741+
_asyncio_Task_set_result_impl(TaskObj *self, PyObject *result)
2742+
/*[clinic end generated code: output=e9d8e3cdaf18e258 input=9d1a00c07be41bab]*/
27432743
{
27442744
PyErr_SetString(PyExc_RuntimeError,
27452745
"Task does not support set_result operation");
@@ -2754,8 +2754,8 @@ _asyncio.Task.set_exception
27542754
[clinic start generated code]*/
27552755

27562756
static PyObject *
2757-
_asyncio_Task_set_exception(TaskObj *self, PyObject *exception)
2758-
/*[clinic end generated code: output=bc377fc28067303d input=9a8f65c83dcf893a]*/
2757+
_asyncio_Task_set_exception_impl(TaskObj *self, PyObject *exception)
2758+
/*[clinic end generated code: output=96a91790c192cc7d input=9a8f65c83dcf893a]*/
27592759
{
27602760
PyErr_SetString(PyExc_RuntimeError,
27612761
"Task does not support set_exception operation");

‎Modules/_collectionsmodule.c

Copy file name to clipboardExpand all lines: Modules/_collectionsmodule.c
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ deque_extend_impl(dequeobject *deque, PyObject *iterable)
484484
PyObject *s = PySequence_List(iterable);
485485
if (s == NULL)
486486
return NULL;
487-
result = deque_extend(deque, s);
487+
result = deque_extend((PyObject*)deque, s);
488488
Py_DECREF(s);
489489
return result;
490490
}
@@ -578,7 +578,7 @@ deque_inplace_concat(PyObject *self, PyObject *other)
578578
PyObject *result;
579579

580580
// deque_extend is thread-safe
581-
result = deque_extend(deque, other);
581+
result = deque_extend((PyObject*)deque, other);
582582
if (result == NULL)
583583
return result;
584584
Py_INCREF(deque);

‎Modules/_cursesmodule.c

Copy file name to clipboardExpand all lines: Modules/_cursesmodule.c
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2309,8 +2309,8 @@ This information can be later retrieved using the getwin() function.
23092309
[clinic start generated code]*/
23102310

23112311
static PyObject *
2312-
_curses_window_putwin(PyCursesWindowObject *self, PyObject *file)
2313-
/*[clinic end generated code: output=3a25e2a5e7a040ac input=0608648e09c8ea0a]*/
2312+
_curses_window_putwin_impl(PyCursesWindowObject *self, PyObject *file)
2313+
/*[clinic end generated code: output=fdae68ac59b0281b input=0608648e09c8ea0a]*/
23142314
{
23152315
/* We have to simulate this by writing to a temporary FILE*,
23162316
then reading back, then writing to the argument file. */

‎Modules/_elementtree.c

Copy file name to clipboardExpand all lines: Modules/_elementtree.c
+12-10Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2951,8 +2951,8 @@ _elementtree.TreeBuilder.data
29512951
[clinic start generated code]*/
29522952

29532953
static PyObject *
2954-
_elementtree_TreeBuilder_data(TreeBuilderObject *self, PyObject *data)
2955-
/*[clinic end generated code: output=69144c7100795bb2 input=a0540c532b284d29]*/
2954+
_elementtree_TreeBuilder_data_impl(TreeBuilderObject *self, PyObject *data)
2955+
/*[clinic end generated code: output=dfa02b68f732b8c0 input=a0540c532b284d29]*/
29562956
{
29572957
return treebuilder_handle_data(self, data);
29582958
}
@@ -2966,8 +2966,8 @@ _elementtree.TreeBuilder.end
29662966
[clinic start generated code]*/
29672967

29682968
static PyObject *
2969-
_elementtree_TreeBuilder_end(TreeBuilderObject *self, PyObject *tag)
2970-
/*[clinic end generated code: output=9a98727cc691cd9d input=22dc3674236f5745]*/
2969+
_elementtree_TreeBuilder_end_impl(TreeBuilderObject *self, PyObject *tag)
2970+
/*[clinic end generated code: output=84cb6ca9008ec740 input=22dc3674236f5745]*/
29712971
{
29722972
return treebuilder_handle_end(self, tag);
29732973
}
@@ -2981,8 +2981,9 @@ _elementtree.TreeBuilder.comment
29812981
[clinic start generated code]*/
29822982

29832983
static PyObject *
2984-
_elementtree_TreeBuilder_comment(TreeBuilderObject *self, PyObject *text)
2985-
/*[clinic end generated code: output=22835be41deeaa27 input=47e7ebc48ed01dfa]*/
2984+
_elementtree_TreeBuilder_comment_impl(TreeBuilderObject *self,
2985+
PyObject *text)
2986+
/*[clinic end generated code: output=a555ef39027c3823 input=47e7ebc48ed01dfa]*/
29862987
{
29872988
return treebuilder_handle_comment(self, text);
29882989
}
@@ -3949,8 +3950,8 @@ _elementtree.XMLParser.feed
39493950
[clinic start generated code]*/
39503951

39513952
static PyObject *
3952-
_elementtree_XMLParser_feed(XMLParserObject *self, PyObject *data)
3953-
/*[clinic end generated code: output=e42b6a78eec7446d input=fe231b6b8de3ce1f]*/
3953+
_elementtree_XMLParser_feed_impl(XMLParserObject *self, PyObject *data)
3954+
/*[clinic end generated code: output=503e6fbf1adf17ab input=fe231b6b8de3ce1f]*/
39543955
{
39553956
/* feed data to parser */
39563957

@@ -3997,8 +3998,9 @@ _elementtree.XMLParser._parse_whole
39973998
[clinic start generated code]*/
39983999

39994000
static PyObject *
4000-
_elementtree_XMLParser__parse_whole(XMLParserObject *self, PyObject *file)
4001-
/*[clinic end generated code: output=f797197bb818dda3 input=19ecc893b6f3e752]*/
4001+
_elementtree_XMLParser__parse_whole_impl(XMLParserObject *self,
4002+
PyObject *file)
4003+
/*[clinic end generated code: output=60718a4e63d237d2 input=19ecc893b6f3e752]*/
40024004
{
40034005
/* (internal) parse the whole input, until end of stream */
40044006
PyObject* reader;

‎Modules/_hashopenssl.c

Copy file name to clipboardExpand all lines: Modules/_hashopenssl.c
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -645,8 +645,8 @@ Update this hash object's state with the provided string.
645645
[clinic start generated code]*/
646646

647647
static PyObject *
648-
EVP_update(EVPobject *self, PyObject *obj)
649-
/*[clinic end generated code: output=ec1d55ed2432e966 input=9b30ec848f015501]*/
648+
EVP_update_impl(EVPobject *self, PyObject *obj)
649+
/*[clinic end generated code: output=d56f91c68348f95f input=9b30ec848f015501]*/
650650
{
651651
int result;
652652
Py_buffer view;

‎Modules/_io/bufferedio.c

Copy file name to clipboardExpand all lines: Modules/_io/bufferedio.c
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -472,8 +472,8 @@ _io._Buffered._dealloc_warn
472472
[clinic start generated code]*/
473473

474474
static PyObject *
475-
_io__Buffered__dealloc_warn(buffered *self, PyObject *source)
476-
/*[clinic end generated code: output=690dcc3df8967162 input=8f845f2a4786391c]*/
475+
_io__Buffered__dealloc_warn_impl(buffered *self, PyObject *source)
476+
/*[clinic end generated code: output=d8db21c6dec0e614 input=8f845f2a4786391c]*/
477477
{
478478
if (self->ok && self->raw) {
479479
PyObject *r;
@@ -560,7 +560,7 @@ _io__Buffered_close_impl(buffered *self)
560560
}
561561

562562
if (self->finalizing) {
563-
PyObject *r = _io__Buffered__dealloc_warn(self, (PyObject *) self);
563+
PyObject *r = _io__Buffered__dealloc_warn_impl(self, (PyObject *)self);
564564
if (r)
565565
Py_DECREF(r);
566566
else

‎Modules/_io/bytesio.c

Copy file name to clipboardExpand all lines: Modules/_io/bytesio.c
+6-6Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -710,8 +710,8 @@ Return the number of bytes written.
710710
[clinic start generated code]*/
711711

712712
static PyObject *
713-
_io_BytesIO_write(bytesio *self, PyObject *b)
714-
/*[clinic end generated code: output=53316d99800a0b95 input=f5ec7c8c64ed720a]*/
713+
_io_BytesIO_write_impl(bytesio *self, PyObject *b)
714+
/*[clinic end generated code: output=d3e46bcec8d9e21c input=f5ec7c8c64ed720a]*/
715715
{
716716
Py_ssize_t n = write_bytes(self, b);
717717
return n >= 0 ? PyLong_FromSsize_t(n) : NULL;
@@ -730,8 +730,8 @@ each element.
730730
[clinic start generated code]*/
731731

732732
static PyObject *
733-
_io_BytesIO_writelines(bytesio *self, PyObject *lines)
734-
/*[clinic end generated code: output=7f33aa3271c91752 input=e972539176fc8fc1]*/
733+
_io_BytesIO_writelines_impl(bytesio *self, PyObject *lines)
734+
/*[clinic end generated code: output=03a43a75773bc397 input=e972539176fc8fc1]*/
735735
{
736736
PyObject *it, *item;
737737

@@ -842,7 +842,7 @@ bytesio_setstate(PyObject *op, PyObject *state)
842842

843843
/* Set the value of the internal buffer. If state[0] does not support the
844844
buffer protocol, bytesio_write will raise the appropriate TypeError. */
845-
result = _io_BytesIO_write(self, PyTuple_GET_ITEM(state, 0));
845+
result = _io_BytesIO_write_impl(self, PyTuple_GET_ITEM(state, 0));
846846
if (result == NULL)
847847
return NULL;
848848
Py_DECREF(result);
@@ -958,7 +958,7 @@ _io_BytesIO___init___impl(bytesio *self, PyObject *initvalue)
958958
}
959959
else {
960960
PyObject *res;
961-
res = _io_BytesIO_write(self, initvalue);
961+
res = _io_BytesIO_write_impl(self, initvalue);
962962
if (res == NULL)
963963
return -1;
964964
Py_DECREF(res);

‎Modules/_io/clinic/bufferedio.c.h

Copy file name to clipboardExpand all lines: Modules/_io/clinic/bufferedio.c.h
+14-1Lines changed: 14 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Modules/_io/clinic/bytesio.c.h

Copy file name to clipboardExpand all lines: Modules/_io/clinic/bytesio.c.h
+27-1Lines changed: 27 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Modules/_io/clinic/stringio.c.h

Copy file name to clipboardExpand all lines: Modules/_io/clinic/stringio.c.h
+3-3Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Modules/_io/clinic/textio.c.h

Copy file name to clipboardExpand all lines: Modules/_io/clinic/textio.c.h
+15-1Lines changed: 15 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Modules/_io/textio.c

Copy file name to clipboardExpand all lines: Modules/_io/textio.c
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -579,9 +579,9 @@ _io.IncrementalNewlineDecoder.setstate
579579
[clinic start generated code]*/
580580

581581
static PyObject *
582-
_io_IncrementalNewlineDecoder_setstate(nldecoder_object *self,
583-
PyObject *state)
584-
/*[clinic end generated code: output=c10c622508b576cb input=c53fb505a76dbbe2]*/
582+
_io_IncrementalNewlineDecoder_setstate_impl(nldecoder_object *self,
583+
PyObject *state)
584+
/*[clinic end generated code: output=09135cb6e78a1dc8 input=c53fb505a76dbbe2]*/
585585
{
586586
PyObject *buffer;
587587
unsigned long long flag;

‎Modules/_sqlite/clinic/connection.c.h

Copy file name to clipboardExpand all lines: Modules/_sqlite/clinic/connection.c.h
+15-1Lines changed: 15 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Modules/_sqlite/clinic/cursor.c.h

Copy file name to clipboardExpand all lines: Modules/_sqlite/clinic/cursor.c.h
+14-1Lines changed: 14 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Modules/_sqlite/connection.c

Copy file name to clipboardExpand all lines: Modules/_sqlite/connection.c
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1908,9 +1908,9 @@ Executes multiple SQL statements at once.
19081908
[clinic start generated code]*/
19091909

19101910
static PyObject *
1911-
pysqlite_connection_executescript(pysqlite_Connection *self,
1912-
PyObject *script_obj)
1913-
/*[clinic end generated code: output=4c4f9d77aa0ae37d input=f6e5f1ccfa313db4]*/
1911+
pysqlite_connection_executescript_impl(pysqlite_Connection *self,
1912+
PyObject *script_obj)
1913+
/*[clinic end generated code: output=e921c49e2291782c input=f6e5f1ccfa313db4]*/
19141914
{
19151915
PyObject* result = 0;
19161916

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.