Skip to content

Commit 9b11c77

Browse files
committed
[GR-52100] [GR-51580] Refactor PyMethodDef an PyCFunction wrappers.
PullRequest: graalpython/3198
2 parents 118b92b + 35f0ce5 commit 9b11c77

29 files changed

+1435
-725
lines changed

graalpython/com.oracle.graal.python.cext/src/descrobject.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0
@@ -41,13 +41,13 @@
4141
#include "capi.h"
4242

4343
PyObject* PyDescr_NewClassMethod(PyTypeObject *type, PyMethodDef *method) {
44-
int flags = PyMethodDef_ml_flags(method);
44+
int flags = method->ml_flags;
4545
return GraalPyTruffleDescr_NewClassMethod(method,
46-
PyMethodDef_ml_name(method),
47-
PyMethodDef_ml_doc(method),
46+
method->ml_name,
47+
method->ml_doc,
4848
flags,
4949
get_method_flags_wrapper(flags),
50-
PyMethodDef_ml_meth(method),
50+
method->ml_meth,
5151
type);
5252
}
5353

@@ -59,20 +59,20 @@ PyObject* PyDescr_NewGetSet(PyTypeObject *type, PyGetSetDef *getset) {
5959
getter_fun,
6060
setter_fun,
6161
PyGetSetDef_doc(getset),
62-
PyGetSetDef_closure(getset));
62+
PyGetSetDef_closure(getset));
6363
}
6464

6565

6666
PyMethodDef* PyMethodDescrObject_GetMethod(PyObject* descr) {
67-
return PyMethodDescrObject_d_method(descr);
67+
return PyMethodDescrObject_d_method(descr);
6868
}
6969

7070
PyTypeObject* PyDescrObject_GetType(PyObject* descr) {
71-
return PyDescrObject_d_type(descr);
71+
return PyDescrObject_d_type(descr);
7272
}
7373

7474
PyObject* PyDescrObject_GetName(PyObject* descr) {
75-
return PyDescrObject_d_name(descr);
75+
return PyDescrObject_d_name(descr);
7676
}
7777

7878
int PyDescr_IsData(PyObject *ob) {

graalpython/com.oracle.graal.python.cext/src/methodobject.c

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0
@@ -57,35 +57,34 @@ PyObject *PyCFunction_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module) {
5757

5858

5959
PyObject* PyCMethod_New(PyMethodDef *ml, PyObject *self, PyObject *module, PyTypeObject *cls) {
60-
return GraalPyTruffleCMethod_NewEx(ml,
61-
PyMethodDef_ml_name(ml),
62-
PyMethodDef_ml_meth(ml),
63-
PyMethodDef_ml_flags(ml),
64-
get_method_flags_wrapper(PyMethodDef_ml_flags(ml)),
65-
self,
66-
module,
67-
cls,
68-
PyMethodDef_ml_doc(ml));
60+
return GraalPyTruffleCMethod_NewEx(ml, ml->ml_name,
61+
ml->ml_meth,
62+
ml->ml_flags,
63+
get_method_flags_wrapper(ml->ml_flags),
64+
self,
65+
module,
66+
cls,
67+
ml->ml_doc);
6968
}
7069

7170
PyCFunction PyCFunction_GetFunction(PyObject *func) {
72-
PyMethodDef* def = PyCFunctionObject_m_ml(func);
73-
return PyMethodDef_ml_meth(def);
71+
PyMethodDef* def = PyCFunctionObject_m_ml(func);
72+
return def->ml_meth;
7473
}
7574

7675
PyObject * PyCFunction_GetSelf(PyObject *func) {
77-
PyMethodDef* def = PyCFunctionObject_m_ml(func);
78-
return PyMethodDef_ml_flags(def) & METH_STATIC ? NULL : PyCFunctionObject_m_self(func);
76+
PyMethodDef* def = PyCFunctionObject_m_ml(func);
77+
return def->ml_flags & METH_STATIC ? NULL : PyCFunctionObject_m_self(func);
7978
}
8079

8180
int PyCFunction_GetFlags(PyObject *func) {
82-
PyMethodDef* def = PyCFunctionObject_m_ml(func);
83-
return PyMethodDef_ml_flags(def);
81+
PyMethodDef* def = PyCFunctionObject_m_ml(func);
82+
return def->ml_flags;
8483
}
8584

8685
PyTypeObject * PyCMethod_GetClass(PyObject *func) {
87-
PyMethodDef* def = PyCFunctionObject_m_ml(func);
88-
return PyMethodDef_ml_flags(def) & METH_METHOD ? PyCMethodObject_mm_class(func) : NULL;
86+
PyMethodDef* def = PyCFunctionObject_m_ml(func);
87+
return def->ml_flags & METH_METHOD ? PyCMethodObject_mm_class(func) : NULL;
8988
}
9089

9190
PyObject* _PyCFunction_GetModule(PyObject *func) {

0 commit comments

Comments
 (0)