From 7fc252adfbedece75f2330bcfdadbf84dee7836f Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 16 Jan 2017 17:18:53 +0100 Subject: 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. --- Tools/gdb/libpython.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Tools/gdb/libpython.py') diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py index cc1afbe16d..88fb0aa7b0 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) -- cgit v1.2.1