summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2024-10-04 09:59:08 (GMT)
committerGitHub <noreply@github.com>2024-10-04 09:59:08 (GMT)
commit6c7d5c6415fc22d35c7b8410533eb1831d46ba72 (patch)
tree08365be2b3861ec556d06d59642fe6c3bfaa79d8
parentf66d785861d3a210f1b6b14ebd129728b24f95bf (diff)
downloadcpython-6c7d5c6415fc22d35c7b8410533eb1831d46ba72.zip
cpython-6c7d5c6415fc22d35c7b8410533eb1831d46ba72.tar.gz
cpython-6c7d5c6415fc22d35c7b8410533eb1831d46ba72.tar.bz2
gh-111178: Fix function signatures in Python-ast.c (#124942)
-rwxr-xr-xParser/asdl_c.py18
-rw-r--r--Python/Python-ast.c18
2 files changed, 22 insertions, 14 deletions
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index fac9a77..ab5fd22 100755
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -843,8 +843,9 @@ typedef struct {
} AST_object;
static void
-ast_dealloc(AST_object *self)
+ast_dealloc(PyObject *op)
{
+ AST_object *self = (AST_object*)op;
/* bpo-31095: UnTrack is needed before calling any callbacks */
PyTypeObject *tp = Py_TYPE(self);
PyObject_GC_UnTrack(self);
@@ -856,16 +857,18 @@ ast_dealloc(AST_object *self)
}
static int
-ast_traverse(AST_object *self, visitproc visit, void *arg)
+ast_traverse(PyObject *op, visitproc visit, void *arg)
{
+ AST_object *self = (AST_object*)op;
Py_VISIT(Py_TYPE(self));
Py_VISIT(self->dict);
return 0;
}
static int
-ast_clear(AST_object *self)
+ast_clear(PyObject *op)
{
+ AST_object *self = (AST_object*)op;
Py_CLEAR(self->dict);
return 0;
}
@@ -1651,9 +1654,9 @@ error:
}
static PyObject *
-ast_repr(AST_object *self)
+ast_repr(PyObject *self)
{
- return ast_repr_max_depth(self, 3);
+ return ast_repr_max_depth((AST_object*)self, 3);
}
static PyType_Slot AST_type_slots[] = {
@@ -1847,8 +1850,9 @@ static int add_ast_fields(struct ast_state *state)
self.file.write(textwrap.dedent('''
static int
- init_types(struct ast_state *state)
+ init_types(void *arg)
{
+ struct ast_state *state = arg;
if (init_identifiers(state) < 0) {
return -1;
}
@@ -2296,7 +2300,7 @@ def generate_module_def(mod, metadata, f, internal_h):
};
// Forward declaration
- static int init_types(struct ast_state *state);
+ static int init_types(void *arg);
static struct ast_state*
get_ast_state(void)
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 860447e..4a58c09 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -19,7 +19,7 @@ struct validator {
};
// Forward declaration
-static int init_types(struct ast_state *state);
+static int init_types(void *arg);
static struct ast_state*
get_ast_state(void)
@@ -5044,8 +5044,9 @@ typedef struct {
} AST_object;
static void
-ast_dealloc(AST_object *self)
+ast_dealloc(PyObject *op)
{
+ AST_object *self = (AST_object*)op;
/* bpo-31095: UnTrack is needed before calling any callbacks */
PyTypeObject *tp = Py_TYPE(self);
PyObject_GC_UnTrack(self);
@@ -5057,16 +5058,18 @@ ast_dealloc(AST_object *self)
}
static int
-ast_traverse(AST_object *self, visitproc visit, void *arg)
+ast_traverse(PyObject *op, visitproc visit, void *arg)
{
+ AST_object *self = (AST_object*)op;
Py_VISIT(Py_TYPE(self));
Py_VISIT(self->dict);
return 0;
}
static int
-ast_clear(AST_object *self)
+ast_clear(PyObject *op)
{
+ AST_object *self = (AST_object*)op;
Py_CLEAR(self->dict);
return 0;
}
@@ -5852,9 +5855,9 @@ error:
}
static PyObject *
-ast_repr(AST_object *self)
+ast_repr(PyObject *self)
{
- return ast_repr_max_depth(self, 3);
+ return ast_repr_max_depth((AST_object*)self, 3);
}
static PyType_Slot AST_type_slots[] = {
@@ -6047,8 +6050,9 @@ static int add_ast_fields(struct ast_state *state)
static int
-init_types(struct ast_state *state)
+init_types(void *arg)
{
+ struct ast_state *state = arg;
if (init_identifiers(state) < 0) {
return -1;
}