summaryrefslogtreecommitdiffstats
path: root/Tools
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2017-01-16 16:18:53 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2017-01-16 16:18:53 (GMT)
commit7fc252adfbedece75f2330bcfdadbf84dee7836f (patch)
tree46a72327ee83962cdde9ff0070aa925cebe65b9e /Tools
parent15f94596b64aa9809fac63c395ddc4308d2b0e68 (diff)
downloadcpython-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')
-rwxr-xr-xTools/gdb/libpython.py3
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)