[Python-checkins] cpython: call_function(): document PyMethod optimization
victor.stinner
python-checkins at python.org
Mon Nov 28 12:33:30 EST 2016
https://hg.python.org/cpython/rev/c085f2e0e1af
changeset: 105385:c085f2e0e1af
user: Victor Stinner <victor.stinner at gmail.com>
date: Mon Nov 28 18:32:31 2016 +0100
summary:
call_function(): document PyMethod optimization
files:
Python/ceval.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/Python/ceval.c b/Python/ceval.c
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -4736,7 +4736,11 @@
}
else {
if (PyMethod_Check(func) && PyMethod_GET_SELF(func) != NULL) {
- /* optimize access to bound methods */
+ /* Optimize access to bound methods. Reuse the Python stack
+ to pass 'self' as the first argument, replace 'func'
+ with 'self'. It avoids the creation of a new temporary tuple
+ for arguments (to replace func with self) when the method uses
+ FASTCALL. */
PyObject *self = PyMethod_GET_SELF(func);
Py_INCREF(self);
func = PyMethod_GET_FUNCTION(func);
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list