diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-01-16 16:18:53 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2017-01-16 16:18:53 (GMT) |
commit | 7fc252adfbedece75f2330bcfdadbf84dee7836f (patch) | |
tree | 46a72327ee83962cdde9ff0070aa925cebe65b9e /Tools/gdb | |
parent | 15f94596b64aa9809fac63c395ddc4308d2b0e68 (diff) | |
download | cpython-7fc252adfbedece75f2330bcfdadbf84dee7836f.zip cpython-7fc252adfbedece75f2330bcfdadbf84dee7836f.tar.gz cpython-7fc252adfbedece75f2330bcfdadbf84dee7836f.tar.bz2 |
Optimize _PyCFunction_FastCallKeywords()
Issue #29259: Write fast path in _PyCFunction_FastCallKeywords() for
METH_FASTCALL, avoid the creation of a temporary dictionary for keyword
arguments.
Cleanup also _PyCFunction_FastCallDict():
* Don't dereference func before checking that it's not NULL
* Move code to raise the "no keyword argument" exception into a new
no_keyword_error label.
Update python-gdb.py for the change.
Diffstat (limited to 'Tools/gdb')
-rwxr-xr-x | Tools/gdb/libpython.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py index cc1afbe..88fb0aa 100755 --- a/Tools/gdb/libpython.py +++ b/Tools/gdb/libpython.py @@ -1518,7 +1518,8 @@ class Frame(object): except RuntimeError: return 'PyCFunction invocation (unable to read "func")' - elif caller == '_PyCFunction_FastCallDict': + elif caller in {'_PyCFunction_FastCallDict', + '_PyCFunction_FastCallKeywords'}: try: func = older._gdbframe.read_var('func_obj') return str(func) |