8000 gh-86457: Fix signature for code.replace(). · python/cpython@748a7e8 · GitHub
[go: up one dir, main page]

Skip to content

Commit 748a7e8

Browse files
gh-86457: Fix signature for code.replace().
1 parent 7031275 commit 748a7e8

File tree

3 files changed

+52
-50
lines changed

3 files changed

+52
-50
lines changed

Objects/clinic/codeobject.c.h

Lines changed: 22 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Objects/codeobject.c

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1949,24 +1949,24 @@ code_linesiterator(PyCodeObject *code, PyObject *Py_UNUSED(args))
19491949
code.replace
19501950
19511951
*
1952-
co_argcount: int(c_default="self->co_argcount") = -1
1953-
co_posonlyargcount: int(c_default="self->co_posonlyargcount") = -1
1954-
co_kwonlyargcount: int(c_default="self->co_kwonlyargcount") = -1
1955-
co_nlocals: int(c_default="self->co_nlocals") = -1
1956-
co_stacksize: int(c_default="self->co_stacksize") = -1
1957-
co_flags: int(c_default="self->co_flags") = -1
1958-
co_firstlineno: int(c_default="self->co_firstlineno") = -1
1959-
co_code: PyBytesObject(c_default="NULL") = None
1960-
co_consts: object(subclass_of="&PyTuple_Type", c_default="self->co_consts") = None
1961-
co_names: object(subclass_of="&PyTuple_Type", c_default="self->co_names") = None
1962-
co_varnames: object(subclass_of="&PyTuple_Type", c_default="NULL") = None
1963-
co_freevars: object(subclass_of="&PyTuple_Type", c_default="NULL") = None
1964-
co_cellvars: object(subclass_of="&PyTuple_Type", c_default="NULL") = None
1965-
co_filename: unicode(c_default="self->co_filename") = None
1966-
co_name: unicode(c_default="self->co_name") = None
1967-
co_qualname: unicode(c_default="self->co_qualname") = None
1968-
co_linetable: PyBytesObject(c_default="(PyBytesObject *)self->co_linetable") = None
1969-
co_exceptiontable: PyBytesObject(c_default="(PyBytesObject *)self->co_exceptiontable") = None
1952+
co_argcount: int(c_default="self->co_argcount") = unchanged
1953+
co_posonlyargcount: int(c_default="self->co_posonlyargcount") = unchanged
1954+
co_kwonlyargcount: int(c_default="self->co_kwonlyargcount") = unchanged
1955+
co_nlocals: int(c_default="self->co_nlocals") = unchanged
1956+
co_stacksize: int(c_default="self->co_stacksize") = unchanged
1957+
co_flags: int(c_default="self->co_flags") = unchanged
1958+
co_firstlineno: int(c_default="self->co_firstlineno") = unchanged
1959+
co_code: object(subclass_of="&PyBytes_Type", c_default="NULL") = unchanged
1960+
co_consts: object(subclass_of="&PyTuple_Type", c_default="self->co_consts") = unchanged
1961+
co_names: object(subclass_of="&PyTuple_Type", c_default="self->co_names") = unchanged
1962+
co_varnames: object(subclass_of="&PyTuple_Type", c_default="NULL") = unchanged
1963+
co_freevars: object(subclass_of="&PyTuple_Type", c_default="NULL") = unchanged
1964+
co_cellvars: object(subclass_of="&PyTuple_Type", c_default="NULL") = unchanged
1965+
co_filename: unicode(c_default="self->co_filename") = unchanged
1966+
co_name: unicode(c_default="self->co_name") = unchanged
1967+
co_qualname: unicode(c_default="self->co_qualname") = unchanged
1968+
co_linetable: object(subclass_of="&PyBytes_Type", c_default="self->co_linetable") = unchanged
1969+
co_exceptiontable: object(subclass_of="&PyBytes_Type", c_default="self->co_exceptiontable") = unchanged
19701970
19711971
Return a copy of the code object with new values for the specified fields.
19721972
[clinic start generated code]*/
@@ -1975,14 +1975,13 @@ static PyObject *
19751975
code_replace_impl(PyCodeObject *self, int co_argcount,
19761976
int co_posonlyargcount, int co_kwonlyargcount,
19771977
int co_nlocals, int co_stacksize, int co_flags,
1978-
int co_firstlineno, PyBytesObject *co_code,
1979-
PyObject *co_consts, PyObject *co_names,
1980-
PyObject *co_varnames, PyObject *co_freevars,
1981-
PyObject *co_cellvars, PyObject *co_filename,
1982-
PyObject *co_name, PyObject *co_qualname,
1983-
PyBytesObject *co_linetable,
1984-
PyBytesObject *co_exceptiontable)
1985-
/*[clinic end generated code: output=b6cd9988391d5711 input=f6f68e03571f8d7c]*/
1978+
int co_firstlineno, PyObject *co_code, PyObject *co_consts,
1979+
PyObject *co_names, PyObject *co_varnames,
1980+
PyObject *co_freevars, PyObject *co_cellvars,
1981+
PyObject *co_filename, PyObject *co_name,
1982+
PyObject *co_qualname, PyObject *co_linetable,
1983+
PyObject *co_exceptiontable)
1984+
/*[clinic end generated code: output=e75c48a15def18b9 input=520204253f64c415]*/
19861985
{
19871986
#define CHECK_INT_ARG(ARG) \
19881987
if (ARG < 0) { \
@@ -2007,13 +2006,14 @@ code_replace_impl(PyCodeObject *self, int co_argcount,
20072006
if (code == NULL) {
20082007
return NULL;
20092008
}
2010-
co_code = (PyBytesObject *)code;
2009+
co_code = code;
20112010
}
20122011

20132012
if (PySys_Audit("code.__new__", "OOOiiiiii",
20142013
co_code, co_filename, co_name, co_argcount,
20152014
co_posonlyargcount, co_kwonlyargcount, co_nlocals,
20162015
co_stacksize, co_flags) < 0) {
2016+
Py_XDECREF(code);
20172017
return NULL;
20182018
}
20192019

@@ -2045,10 +2045,10 @@ code_replace_impl(PyCodeObject *self, int co_argcount,
20452045

20462046
co = PyCode_NewWithPosOnlyArgs(
20472047
co_argcount, co_posonlyargcount, co_kwonlyargcount, co_nlocals,
2048-
co_stacksize, co_flags, (PyObject*)co_code, co_consts, co_names,
2048+
co_stacksize, co_flags, co_code, co_consts, co_names,
20492049
co_varnames, co_freevars, co_cellvars, co_filename, co_name,
20502050
co_qualname, co_firstlineno,
2051-
(PyObject*)co_linetable, (PyObject*)co_exceptiontable);
2051+
co_linetable, co_exceptiontable);
20522052

20532053
error:
20542054
Py_XDECREF(code);

Tools/clinic/clinic.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2652,7 +2652,7 @@ def __init__(self, name, py_name, function, default=unspecified, *, c_default=No
26522652
self.name = ensure_legal_c_identifier(name)
26532653
self.py_name = py_name
26542654

2655-
if default is not unspecified:
2655+
if default is not unspecified and (default is not NULL or c_default == 'NULL'):
26562656
if self.default_type and not isinstance(default, (self.default_type, Unknown)):
26572657
if isinstance(self.default_type, type):
26582658
types_str = self.default_type.__name__

0 commit comments

Comments
 (0)
0