/src/Python-3.8.3/Include/cpython/abstract.h
Line | Count | Source (jump to first uncovered line) |
1 | | #ifndef Py_CPYTHON_ABSTRACTOBJECT_H |
2 | | # error "this header file must not be included directly" |
3 | | #endif |
4 | | |
5 | | #ifdef __cplusplus |
6 | | extern "C" { |
7 | | #endif |
8 | | |
9 | | /* === Object Protocol ================================================== */ |
10 | | |
11 | | #ifdef PY_SSIZE_T_CLEAN |
12 | 659 | # define _PyObject_CallMethodId _PyObject_CallMethodId_SizeT |
13 | | #endif |
14 | | |
15 | | /* Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple) |
16 | | format to a Python dictionary ("kwargs" dict). |
17 | | |
18 | | The type of kwnames keys is not checked. The final function getting |
19 | | arguments is responsible to check if all keys are strings, for example using |
20 | | PyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments(). |
21 | | |
22 | | Duplicate keys are merged using the last value. If duplicate keys must raise |
23 | | an exception, the caller is responsible to implement an explicit keys on |
24 | | kwnames. */ |
25 | | PyAPI_FUNC(PyObject *) _PyStack_AsDict( |
26 | | PyObject *const *values, |
27 | | PyObject *kwnames); |
28 | | |
29 | | /* Convert (args, nargs, kwargs: dict) into a (stack, nargs, kwnames: tuple). |
30 | | |
31 | | Return 0 on success, raise an exception and return -1 on error. |
32 | | |
33 | | Write the new stack into *p_stack. If *p_stack is differen than args, it |
34 | | must be released by PyMem_Free(). |
35 | | |
36 | | The stack uses borrowed references. |
37 | | |
38 | | The type of keyword keys is not checked, these checks should be done |
39 | | later (ex: _PyArg_ParseStackAndKeywords). */ |
40 | | PyAPI_FUNC(int) _PyStack_UnpackDict( |
41 | | PyObject *const *args, |
42 | | Py_ssize_t nargs, |
43 | | PyObject *kwargs, |
44 | | PyObject *const **p_stack, |
45 | | PyObject **p_kwnames); |
46 | | |
47 | | /* Suggested size (number of positional arguments) for arrays of PyObject* |
48 | | allocated on a C stack to avoid allocating memory on the heap memory. Such |
49 | | array is used to pass positional arguments to call functions of the |
50 | | _PyObject_Vectorcall() family. |
51 | | |
52 | | The size is chosen to not abuse the C stack and so limit the risk of stack |
53 | | overflow. The size is also chosen to allow using the small stack for most |
54 | | function calls of the Python standard library. On 64-bit CPU, it allocates |
55 | | 40 bytes on the stack. */ |
56 | | #define _PY_FASTCALL_SMALL_STACK 5 |
57 | | |
58 | | PyAPI_FUNC(PyObject *) _Py_CheckFunctionResult(PyObject *callable, |
59 | | PyObject *result, |
60 | | const char *where); |
61 | | |
62 | | /* === Vectorcall protocol (PEP 590) ============================= */ |
63 | | |
64 | | /* Call callable using tp_call. Arguments are like _PyObject_Vectorcall() |
65 | | or _PyObject_FastCallDict() (both forms are supported), |
66 | | except that nargs is plainly the number of arguments without flags. */ |
67 | | PyAPI_FUNC(PyObject *) _PyObject_MakeTpCall( |
68 | | PyObject *callable, |
69 | | PyObject *const *args, Py_ssize_t nargs, |
70 | | PyObject *keywords); |
71 | | |
72 | 211k | #define PY_VECTORCALL_ARGUMENTS_OFFSET ((size_t)1 << (8 * sizeof(size_t) - 1)) |
73 | | |
74 | | static inline Py_ssize_t |
75 | | PyVectorcall_NARGS(size_t n) |
76 | 122k | { |
77 | 122k | return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; |
78 | 122k | } Unexecuted instantiation: abstract.c:PyVectorcall_NARGS Unexecuted instantiation: boolobject.c:PyVectorcall_NARGS Unexecuted instantiation: bytearrayobject.c:PyVectorcall_NARGS Unexecuted instantiation: bytesobject.c:PyVectorcall_NARGS call.c:PyVectorcall_NARGS Line | Count | Source | 76 | 46.4k | { | 77 | 46.4k | return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; | 78 | 46.4k | } |
Unexecuted instantiation: capsule.c:PyVectorcall_NARGS Unexecuted instantiation: exceptions.c:PyVectorcall_NARGS Unexecuted instantiation: floatobject.c:PyVectorcall_NARGS Unexecuted instantiation: frameobject.c:PyVectorcall_NARGS Unexecuted instantiation: funcobject.c:PyVectorcall_NARGS Unexecuted instantiation: iterobject.c:PyVectorcall_NARGS Unexecuted instantiation: listobject.c:PyVectorcall_NARGS Unexecuted instantiation: longobject.c:PyVectorcall_NARGS dictobject.c:PyVectorcall_NARGS Line | Count | Source | 76 | 17 | { | 77 | 17 | return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; | 78 | 17 | } |
Unexecuted instantiation: memoryobject.c:PyVectorcall_NARGS methodobject.c:PyVectorcall_NARGS Line | Count | Source | 76 | 32.3k | { | 77 | 32.3k | return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; | 78 | 32.3k | } |
Unexecuted instantiation: moduleobject.c:PyVectorcall_NARGS Unexecuted instantiation: object.c:PyVectorcall_NARGS Unexecuted instantiation: obmalloc.c:PyVectorcall_NARGS Unexecuted instantiation: picklebufobject.c:PyVectorcall_NARGS Unexecuted instantiation: rangeobject.c:PyVectorcall_NARGS Unexecuted instantiation: setobject.c:PyVectorcall_NARGS Unexecuted instantiation: sliceobject.c:PyVectorcall_NARGS Unexecuted instantiation: structseq.c:PyVectorcall_NARGS Unexecuted instantiation: tupleobject.c:PyVectorcall_NARGS typeobject.c:PyVectorcall_NARGS Line | Count | Source | 76 | 1.35k | { | 77 | 1.35k | return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; | 78 | 1.35k | } |
Unexecuted instantiation: unicodeobject.c:PyVectorcall_NARGS Unexecuted instantiation: unicodectype.c:PyVectorcall_NARGS Unexecuted instantiation: weakrefobject.c:PyVectorcall_NARGS Unexecuted instantiation: _warnings.c:PyVectorcall_NARGS ceval.c:PyVectorcall_NARGS Line | Count | Source | 76 | 17.2k | { | 77 | 17.2k | return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; | 78 | 17.2k | } |
Unexecuted instantiation: codecs.c:PyVectorcall_NARGS Unexecuted instantiation: compile.c:PyVectorcall_NARGS errors.c:PyVectorcall_NARGS Line | Count | Source | 76 | 208 | { | 77 | 208 | return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; | 78 | 208 | } |
Unexecuted instantiation: future.c:PyVectorcall_NARGS Unexecuted instantiation: getargs.c:PyVectorcall_NARGS Unexecuted instantiation: getversion.c:PyVectorcall_NARGS Unexecuted instantiation: import.c:PyVectorcall_NARGS Unexecuted instantiation: importdl.c:PyVectorcall_NARGS Unexecuted instantiation: initconfig.c:PyVectorcall_NARGS Unexecuted instantiation: marshal.c:PyVectorcall_NARGS Unexecuted instantiation: modsupport.c:PyVectorcall_NARGS Unexecuted instantiation: mysnprintf.c:PyVectorcall_NARGS Unexecuted instantiation: pathconfig.c:PyVectorcall_NARGS Unexecuted instantiation: peephole.c:PyVectorcall_NARGS Unexecuted instantiation: preconfig.c:PyVectorcall_NARGS Unexecuted instantiation: pyarena.c:PyVectorcall_NARGS Unexecuted instantiation: pyctype.c:PyVectorcall_NARGS Unexecuted instantiation: pyhash.c:PyVectorcall_NARGS Unexecuted instantiation: pylifecycle.c:PyVectorcall_NARGS Unexecuted instantiation: pymath.c:PyVectorcall_NARGS Unexecuted instantiation: pystate.c:PyVectorcall_NARGS Unexecuted instantiation: pythonrun.c:PyVectorcall_NARGS Unexecuted instantiation: pytime.c:PyVectorcall_NARGS Unexecuted instantiation: bootstrap_hash.c:PyVectorcall_NARGS Unexecuted instantiation: symtable.c:PyVectorcall_NARGS Unexecuted instantiation: sysmodule.c:PyVectorcall_NARGS Unexecuted instantiation: thread.c:PyVectorcall_NARGS Unexecuted instantiation: traceback.c:PyVectorcall_NARGS Unexecuted instantiation: getopt.c:PyVectorcall_NARGS Unexecuted instantiation: pystrcmp.c:PyVectorcall_NARGS Unexecuted instantiation: pystrtod.c:PyVectorcall_NARGS Unexecuted instantiation: pystrhex.c:PyVectorcall_NARGS Unexecuted instantiation: dtoa.c:PyVectorcall_NARGS Unexecuted instantiation: formatter_unicode.c:PyVectorcall_NARGS Unexecuted instantiation: fileutils.c:PyVectorcall_NARGS Unexecuted instantiation: dynload_shlib.c:PyVectorcall_NARGS Unexecuted instantiation: config.c:PyVectorcall_NARGS Unexecuted instantiation: getpath.c:PyVectorcall_NARGS Unexecuted instantiation: gcmodule.c:PyVectorcall_NARGS Unexecuted instantiation: posixmodule.c:PyVectorcall_NARGS Unexecuted instantiation: errnomodule.c:PyVectorcall_NARGS Unexecuted instantiation: pwdmodule.c:PyVectorcall_NARGS Unexecuted instantiation: _sre.c:PyVectorcall_NARGS Unexecuted instantiation: _codecsmodule.c:PyVectorcall_NARGS Unexecuted instantiation: _weakref.c:PyVectorcall_NARGS _functoolsmodule.c:PyVectorcall_NARGS Line | Count | Source | 76 | 1 | { | 77 | 1 | return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; | 78 | 1 | } |
Unexecuted instantiation: _operator.c:PyVectorcall_NARGS Unexecuted instantiation: _collectionsmodule.c:PyVectorcall_NARGS Unexecuted instantiation: _abc.c:PyVectorcall_NARGS Unexecuted instantiation: itertoolsmodule.c:PyVectorcall_NARGS Unexecuted instantiation: atexitmodule.c:PyVectorcall_NARGS Unexecuted instantiation: signalmodule.c:PyVectorcall_NARGS Unexecuted instantiation: _stat.c:PyVectorcall_NARGS Unexecuted instantiation: timemodule.c:PyVectorcall_NARGS Unexecuted instantiation: _threadmodule.c:PyVectorcall_NARGS Unexecuted instantiation: _localemodule.c:PyVectorcall_NARGS Unexecuted instantiation: _iomodule.c:PyVectorcall_NARGS Unexecuted instantiation: iobase.c:PyVectorcall_NARGS Unexecuted instantiation: fileio.c:PyVectorcall_NARGS Unexecuted instantiation: bytesio.c:PyVectorcall_NARGS Unexecuted instantiation: bufferedio.c:PyVectorcall_NARGS Unexecuted instantiation: textio.c:PyVectorcall_NARGS Unexecuted instantiation: stringio.c:PyVectorcall_NARGS Unexecuted instantiation: faulthandler.c:PyVectorcall_NARGS Unexecuted instantiation: _tracemalloc.c:PyVectorcall_NARGS Unexecuted instantiation: hashtable.c:PyVectorcall_NARGS Unexecuted instantiation: symtablemodule.c:PyVectorcall_NARGS Unexecuted instantiation: xxsubtype.c:PyVectorcall_NARGS Unexecuted instantiation: frozen.c:PyVectorcall_NARGS Unexecuted instantiation: getbuildinfo.c:PyVectorcall_NARGS Unexecuted instantiation: acceler.c:PyVectorcall_NARGS Unexecuted instantiation: grammar1.c:PyVectorcall_NARGS Unexecuted instantiation: node.c:PyVectorcall_NARGS Unexecuted instantiation: token.c:PyVectorcall_NARGS Unexecuted instantiation: parsetok.c:PyVectorcall_NARGS Unexecuted instantiation: tokenizer.c:PyVectorcall_NARGS Unexecuted instantiation: accu.c:PyVectorcall_NARGS Unexecuted instantiation: bytes_methods.c:PyVectorcall_NARGS Unexecuted instantiation: cellobject.c:PyVectorcall_NARGS classobject.c:PyVectorcall_NARGS Line | Count | Source | 76 | 7.24k | { | 77 | 7.24k | return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; | 78 | 7.24k | } |
Unexecuted instantiation: codeobject.c:PyVectorcall_NARGS Unexecuted instantiation: complexobject.c:PyVectorcall_NARGS descrobject.c:PyVectorcall_NARGS Line | Count | Source | 76 | 17.4k | { | 77 | 17.4k | return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; | 78 | 17.4k | } |
Unexecuted instantiation: enumobject.c:PyVectorcall_NARGS Unexecuted instantiation: genobject.c:PyVectorcall_NARGS Unexecuted instantiation: fileobject.c:PyVectorcall_NARGS Unexecuted instantiation: interpreteridobject.c:PyVectorcall_NARGS Unexecuted instantiation: odictobject.c:PyVectorcall_NARGS Unexecuted instantiation: namespaceobject.c:PyVectorcall_NARGS Unexecuted instantiation: Python-ast.c:PyVectorcall_NARGS Unexecuted instantiation: asdl.c:PyVectorcall_NARGS Unexecuted instantiation: ast.c:PyVectorcall_NARGS Unexecuted instantiation: ast_opt.c:PyVectorcall_NARGS Unexecuted instantiation: ast_unparse.c:PyVectorcall_NARGS bltinmodule.c:PyVectorcall_NARGS Line | Count | Source | 76 | 9 | { | 77 | 9 | return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; | 78 | 9 | } |
Unexecuted instantiation: context.c:PyVectorcall_NARGS Unexecuted instantiation: getcompiler.c:PyVectorcall_NARGS Unexecuted instantiation: getcopyright.c:PyVectorcall_NARGS Unexecuted instantiation: getplatform.c:PyVectorcall_NARGS Unexecuted instantiation: hamt.c:PyVectorcall_NARGS Unexecuted instantiation: mystrtoul.c:PyVectorcall_NARGS Unexecuted instantiation: structmember.c:PyVectorcall_NARGS Unexecuted instantiation: parser.c:PyVectorcall_NARGS Unexecuted instantiation: myreadline.c:PyVectorcall_NARGS |
79 | | |
80 | | static inline vectorcallfunc |
81 | | _PyVectorcall_Function(PyObject *callable) |
82 | 117k | { |
83 | 117k | PyTypeObject *tp = Py_TYPE(callable); |
84 | 117k | Py_ssize_t offset = tp->tp_vectorcall_offset; |
85 | 117k | vectorcallfunc *ptr; |
86 | 117k | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { |
87 | 15.8k | return NULL; |
88 | 15.8k | } |
89 | 101k | assert(PyCallable_Check(callable)); |
90 | 101k | assert(offset > 0); |
91 | 101k | ptr = (vectorcallfunc*)(((char *)callable) + offset); |
92 | 101k | return *ptr; |
93 | 117k | } abstract.c:_PyVectorcall_Function Line | Count | Source | 82 | 460 | { | 83 | 460 | PyTypeObject *tp = Py_TYPE(callable); | 84 | 460 | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 460 | vectorcallfunc *ptr; | 86 | 460 | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 0 | return NULL; | 88 | 0 | } | 89 | 460 | assert(PyCallable_Check(callable)); | 90 | 460 | assert(offset > 0); | 91 | 460 | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 460 | return *ptr; | 93 | 460 | } |
Unexecuted instantiation: boolobject.c:_PyVectorcall_Function Unexecuted instantiation: bytearrayobject.c:_PyVectorcall_Function Unexecuted instantiation: bytesobject.c:_PyVectorcall_Function call.c:_PyVectorcall_Function Line | Count | Source | 82 | 19.0k | { | 83 | 19.0k | PyTypeObject *tp = Py_TYPE(callable); | 84 | 19.0k | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 19.0k | vectorcallfunc *ptr; | 86 | 19.0k | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 5.77k | return NULL; | 88 | 5.77k | } | 89 | 13.2k | assert(PyCallable_Check(callable)); | 90 | 13.2k | assert(offset > 0); | 91 | 13.2k | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 13.2k | return *ptr; | 93 | 19.0k | } |
Unexecuted instantiation: capsule.c:_PyVectorcall_Function Unexecuted instantiation: exceptions.c:_PyVectorcall_Function Unexecuted instantiation: floatobject.c:_PyVectorcall_Function Unexecuted instantiation: frameobject.c:_PyVectorcall_Function Unexecuted instantiation: funcobject.c:_PyVectorcall_Function Unexecuted instantiation: iterobject.c:_PyVectorcall_Function Unexecuted instantiation: listobject.c:_PyVectorcall_Function Unexecuted instantiation: longobject.c:_PyVectorcall_Function dictobject.c:_PyVectorcall_Function Line | Count | Source | 82 | 17 | { | 83 | 17 | PyTypeObject *tp = Py_TYPE(callable); | 84 | 17 | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 17 | vectorcallfunc *ptr; | 86 | 17 | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 17 | return NULL; | 88 | 17 | } | 89 | 0 | assert(PyCallable_Check(callable)); | 90 | 0 | assert(offset > 0); | 91 | 0 | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 0 | return *ptr; | 93 | 17 | } |
Unexecuted instantiation: memoryobject.c:_PyVectorcall_Function Unexecuted instantiation: methodobject.c:_PyVectorcall_Function Unexecuted instantiation: moduleobject.c:_PyVectorcall_Function object.c:_PyVectorcall_Function Line | Count | Source | 82 | 14 | { | 83 | 14 | PyTypeObject *tp = Py_TYPE(callable); | 84 | 14 | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 14 | vectorcallfunc *ptr; | 86 | 14 | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 0 | return NULL; | 88 | 0 | } | 89 | 14 | assert(PyCallable_Check(callable)); | 90 | 14 | assert(offset > 0); | 91 | 14 | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 14 | return *ptr; | 93 | 14 | } |
Unexecuted instantiation: obmalloc.c:_PyVectorcall_Function Unexecuted instantiation: picklebufobject.c:_PyVectorcall_Function Unexecuted instantiation: rangeobject.c:_PyVectorcall_Function Unexecuted instantiation: setobject.c:_PyVectorcall_Function Unexecuted instantiation: sliceobject.c:_PyVectorcall_Function Unexecuted instantiation: structseq.c:_PyVectorcall_Function Unexecuted instantiation: tupleobject.c:_PyVectorcall_Function typeobject.c:_PyVectorcall_Function Line | Count | Source | 82 | 1.81k | { | 83 | 1.81k | PyTypeObject *tp = Py_TYPE(callable); | 84 | 1.81k | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 1.81k | vectorcallfunc *ptr; | 86 | 1.81k | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 1.35k | return NULL; | 88 | 1.35k | } | 89 | 463 | assert(PyCallable_Check(callable)); | 90 | 463 | assert(offset > 0); | 91 | 463 | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 463 | return *ptr; | 93 | 1.81k | } |
Unexecuted instantiation: unicodeobject.c:_PyVectorcall_Function Unexecuted instantiation: unicodectype.c:_PyVectorcall_Function Unexecuted instantiation: weakrefobject.c:_PyVectorcall_Function Unexecuted instantiation: _warnings.c:_PyVectorcall_Function ceval.c:_PyVectorcall_Function Line | Count | Source | 82 | 86.4k | { | 83 | 86.4k | PyTypeObject *tp = Py_TYPE(callable); | 84 | 86.4k | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 86.4k | vectorcallfunc *ptr; | 86 | 86.4k | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 8.44k | return NULL; | 88 | 8.44k | } | 89 | 77.9k | assert(PyCallable_Check(callable)); | 90 | 77.9k | assert(offset > 0); | 91 | 77.9k | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 77.9k | return *ptr; | 93 | 86.4k | } |
Unexecuted instantiation: codecs.c:_PyVectorcall_Function Unexecuted instantiation: compile.c:_PyVectorcall_Function errors.c:_PyVectorcall_Function Line | Count | Source | 82 | 208 | { | 83 | 208 | PyTypeObject *tp = Py_TYPE(callable); | 84 | 208 | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 208 | vectorcallfunc *ptr; | 86 | 208 | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 208 | return NULL; | 88 | 208 | } | 89 | 0 | assert(PyCallable_Check(callable)); | 90 | 0 | assert(offset > 0); | 91 | 0 | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 0 | return *ptr; | 93 | 208 | } |
Unexecuted instantiation: future.c:_PyVectorcall_Function Unexecuted instantiation: getargs.c:_PyVectorcall_Function Unexecuted instantiation: getversion.c:_PyVectorcall_Function Unexecuted instantiation: import.c:_PyVectorcall_Function Unexecuted instantiation: importdl.c:_PyVectorcall_Function Unexecuted instantiation: initconfig.c:_PyVectorcall_Function Unexecuted instantiation: marshal.c:_PyVectorcall_Function Unexecuted instantiation: modsupport.c:_PyVectorcall_Function Unexecuted instantiation: mysnprintf.c:_PyVectorcall_Function Unexecuted instantiation: pathconfig.c:_PyVectorcall_Function Unexecuted instantiation: peephole.c:_PyVectorcall_Function Unexecuted instantiation: preconfig.c:_PyVectorcall_Function Unexecuted instantiation: pyarena.c:_PyVectorcall_Function Unexecuted instantiation: pyctype.c:_PyVectorcall_Function Unexecuted instantiation: pyhash.c:_PyVectorcall_Function Unexecuted instantiation: pylifecycle.c:_PyVectorcall_Function Unexecuted instantiation: pymath.c:_PyVectorcall_Function Unexecuted instantiation: pystate.c:_PyVectorcall_Function Unexecuted instantiation: pythonrun.c:_PyVectorcall_Function Unexecuted instantiation: pytime.c:_PyVectorcall_Function Unexecuted instantiation: bootstrap_hash.c:_PyVectorcall_Function Unexecuted instantiation: symtable.c:_PyVectorcall_Function Unexecuted instantiation: sysmodule.c:_PyVectorcall_Function Unexecuted instantiation: thread.c:_PyVectorcall_Function Unexecuted instantiation: traceback.c:_PyVectorcall_Function Unexecuted instantiation: getopt.c:_PyVectorcall_Function Unexecuted instantiation: pystrcmp.c:_PyVectorcall_Function Unexecuted instantiation: pystrtod.c:_PyVectorcall_Function Unexecuted instantiation: pystrhex.c:_PyVectorcall_Function Unexecuted instantiation: dtoa.c:_PyVectorcall_Function Unexecuted instantiation: formatter_unicode.c:_PyVectorcall_Function Unexecuted instantiation: fileutils.c:_PyVectorcall_Function Unexecuted instantiation: dynload_shlib.c:_PyVectorcall_Function Unexecuted instantiation: config.c:_PyVectorcall_Function Unexecuted instantiation: getpath.c:_PyVectorcall_Function Unexecuted instantiation: gcmodule.c:_PyVectorcall_Function Unexecuted instantiation: posixmodule.c:_PyVectorcall_Function Unexecuted instantiation: errnomodule.c:_PyVectorcall_Function Unexecuted instantiation: pwdmodule.c:_PyVectorcall_Function Unexecuted instantiation: _sre.c:_PyVectorcall_Function Unexecuted instantiation: _codecsmodule.c:_PyVectorcall_Function Unexecuted instantiation: _weakref.c:_PyVectorcall_Function _functoolsmodule.c:_PyVectorcall_Function Line | Count | Source | 82 | 2 | { | 83 | 2 | PyTypeObject *tp = Py_TYPE(callable); | 84 | 2 | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 2 | vectorcallfunc *ptr; | 86 | 2 | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 1 | return NULL; | 88 | 1 | } | 89 | 1 | assert(PyCallable_Check(callable)); | 90 | 1 | assert(offset > 0); | 91 | 1 | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 1 | return *ptr; | 93 | 2 | } |
Unexecuted instantiation: _operator.c:_PyVectorcall_Function Unexecuted instantiation: _collectionsmodule.c:_PyVectorcall_Function Unexecuted instantiation: _abc.c:_PyVectorcall_Function Unexecuted instantiation: itertoolsmodule.c:_PyVectorcall_Function Unexecuted instantiation: atexitmodule.c:_PyVectorcall_Function Unexecuted instantiation: signalmodule.c:_PyVectorcall_Function Unexecuted instantiation: _stat.c:_PyVectorcall_Function Unexecuted instantiation: timemodule.c:_PyVectorcall_Function Unexecuted instantiation: _threadmodule.c:_PyVectorcall_Function Unexecuted instantiation: _localemodule.c:_PyVectorcall_Function Unexecuted instantiation: _iomodule.c:_PyVectorcall_Function Unexecuted instantiation: iobase.c:_PyVectorcall_Function Unexecuted instantiation: fileio.c:_PyVectorcall_Function Unexecuted instantiation: bytesio.c:_PyVectorcall_Function bufferedio.c:_PyVectorcall_Function Line | Count | Source | 82 | 235 | { | 83 | 235 | PyTypeObject *tp = Py_TYPE(callable); | 84 | 235 | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 235 | vectorcallfunc *ptr; | 86 | 235 | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 0 | return NULL; | 88 | 0 | } | 89 | 235 | assert(PyCallable_Check(callable)); | 90 | 235 | assert(offset > 0); | 91 | 235 | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 235 | return *ptr; | 93 | 235 | } |
Unexecuted instantiation: textio.c:_PyVectorcall_Function Unexecuted instantiation: stringio.c:_PyVectorcall_Function Unexecuted instantiation: faulthandler.c:_PyVectorcall_Function Unexecuted instantiation: _tracemalloc.c:_PyVectorcall_Function Unexecuted instantiation: hashtable.c:_PyVectorcall_Function Unexecuted instantiation: symtablemodule.c:_PyVectorcall_Function Unexecuted instantiation: xxsubtype.c:_PyVectorcall_Function Unexecuted instantiation: frozen.c:_PyVectorcall_Function Unexecuted instantiation: getbuildinfo.c:_PyVectorcall_Function Unexecuted instantiation: acceler.c:_PyVectorcall_Function Unexecuted instantiation: grammar1.c:_PyVectorcall_Function Unexecuted instantiation: node.c:_PyVectorcall_Function Unexecuted instantiation: token.c:_PyVectorcall_Function Unexecuted instantiation: parsetok.c:_PyVectorcall_Function Unexecuted instantiation: tokenizer.c:_PyVectorcall_Function Unexecuted instantiation: accu.c:_PyVectorcall_Function Unexecuted instantiation: bytes_methods.c:_PyVectorcall_Function Unexecuted instantiation: cellobject.c:_PyVectorcall_Function classobject.c:_PyVectorcall_Function Line | Count | Source | 82 | 7.24k | { | 83 | 7.24k | PyTypeObject *tp = Py_TYPE(callable); | 84 | 7.24k | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 7.24k | vectorcallfunc *ptr; | 86 | 7.24k | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 0 | return NULL; | 88 | 0 | } | 89 | 7.24k | assert(PyCallable_Check(callable)); | 90 | 7.24k | assert(offset > 0); | 91 | 7.24k | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 7.24k | return *ptr; | 93 | 7.24k | } |
Unexecuted instantiation: codeobject.c:_PyVectorcall_Function Unexecuted instantiation: complexobject.c:_PyVectorcall_Function descrobject.c:_PyVectorcall_Function Line | Count | Source | 82 | 1.64k | { | 83 | 1.64k | PyTypeObject *tp = Py_TYPE(callable); | 84 | 1.64k | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 1.64k | vectorcallfunc *ptr; | 86 | 1.64k | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 0 | return NULL; | 88 | 0 | } | 89 | 1.64k | assert(PyCallable_Check(callable)); | 90 | 1.64k | assert(offset > 0); | 91 | 1.64k | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 1.64k | return *ptr; | 93 | 1.64k | } |
enumobject.c:_PyVectorcall_Function Line | Count | Source | 82 | 16 | { | 83 | 16 | PyTypeObject *tp = Py_TYPE(callable); | 84 | 16 | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 16 | vectorcallfunc *ptr; | 86 | 16 | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 0 | return NULL; | 88 | 0 | } | 89 | 16 | assert(PyCallable_Check(callable)); | 90 | 16 | assert(offset > 0); | 91 | 16 | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 16 | return *ptr; | 93 | 16 | } |
Unexecuted instantiation: genobject.c:_PyVectorcall_Function Unexecuted instantiation: fileobject.c:_PyVectorcall_Function Unexecuted instantiation: interpreteridobject.c:_PyVectorcall_Function Unexecuted instantiation: odictobject.c:_PyVectorcall_Function Unexecuted instantiation: namespaceobject.c:_PyVectorcall_Function Unexecuted instantiation: Python-ast.c:_PyVectorcall_Function Unexecuted instantiation: asdl.c:_PyVectorcall_Function Unexecuted instantiation: ast.c:_PyVectorcall_Function Unexecuted instantiation: ast_opt.c:_PyVectorcall_Function Unexecuted instantiation: ast_unparse.c:_PyVectorcall_Function bltinmodule.c:_PyVectorcall_Function Line | Count | Source | 82 | 362 | { | 83 | 362 | PyTypeObject *tp = Py_TYPE(callable); | 84 | 362 | Py_ssize_t offset = tp->tp_vectorcall_offset; | 85 | 362 | vectorcallfunc *ptr; | 86 | 362 | if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) { | 87 | 9 | return NULL; | 88 | 9 | } | 89 | 353 | assert(PyCallable_Check(callable)); | 90 | 353 | assert(offset > 0); | 91 | 353 | ptr = (vectorcallfunc*)(((char *)callable) + offset); | 92 | 353 | return *ptr; | 93 | 362 | } |
Unexecuted instantiation: context.c:_PyVectorcall_Function Unexecuted instantiation: getcompiler.c:_PyVectorcall_Function Unexecuted instantiation: getcopyright.c:_PyVectorcall_Function Unexecuted instantiation: getplatform.c:_PyVectorcall_Function Unexecuted instantiation: hamt.c:_PyVectorcall_Function Unexecuted instantiation: mystrtoul.c:_PyVectorcall_Function Unexecuted instantiation: structmember.c:_PyVectorcall_Function Unexecuted instantiation: parser.c:_PyVectorcall_Function Unexecuted instantiation: myreadline.c:_PyVectorcall_Function |
94 | | |
95 | | /* Call the callable object 'callable' with the "vectorcall" calling |
96 | | convention. |
97 | | |
98 | | args is a C array for positional arguments. |
99 | | |
100 | | nargsf is the number of positional arguments plus optionally the flag |
101 | | PY_VECTORCALL_ARGUMENTS_OFFSET which means that the caller is allowed to |
102 | | modify args[-1]. |
103 | | |
104 | | kwnames is a tuple of keyword names. The values of the keyword arguments |
105 | | are stored in "args" after the positional arguments (note that the number |
106 | | of keyword arguments does not change nargsf). kwnames can also be NULL if |
107 | | there are no keyword arguments. |
108 | | |
109 | | keywords must only contains str strings (no subclass), and all keys must |
110 | | be unique. |
111 | | |
112 | | Return the result on success. Raise an exception and return NULL on |
113 | | error. */ |
114 | | static inline PyObject * |
115 | | _PyObject_Vectorcall(PyObject *callable, PyObject *const *args, |
116 | | size_t nargsf, PyObject *kwnames) |
117 | 109k | { |
118 | 109k | PyObject *res; |
119 | 109k | vectorcallfunc func; |
120 | 109k | assert(kwnames == NULL || PyTuple_Check(kwnames)); |
121 | 109k | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); |
122 | 109k | func = _PyVectorcall_Function(callable); |
123 | 109k | if (func == NULL) { |
124 | 23.1k | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); |
125 | 23.1k | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); |
126 | 23.1k | } |
127 | 86.6k | res = func(callable, args, nargsf, kwnames); |
128 | 86.6k | return _Py_CheckFunctionResult(callable, res, NULL); |
129 | 109k | } abstract.c:_PyObject_Vectorcall Line | Count | Source | 117 | 460 | { | 118 | 460 | PyObject *res; | 119 | 460 | vectorcallfunc func; | 120 | 460 | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 460 | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 460 | func = _PyVectorcall_Function(callable); | 123 | 460 | if (func == NULL) { | 124 | 0 | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 0 | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 0 | } | 127 | 460 | res = func(callable, args, nargsf, kwnames); | 128 | 460 | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 460 | } |
Unexecuted instantiation: boolobject.c:_PyObject_Vectorcall Unexecuted instantiation: bytearrayobject.c:_PyObject_Vectorcall Unexecuted instantiation: bytesobject.c:_PyObject_Vectorcall call.c:_PyObject_Vectorcall Line | Count | Source | 117 | 11.3k | { | 118 | 11.3k | PyObject *res; | 119 | 11.3k | vectorcallfunc func; | 120 | 11.3k | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 11.3k | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 11.3k | func = _PyVectorcall_Function(callable); | 123 | 11.3k | if (func == NULL) { | 124 | 4.23k | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 4.23k | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 4.23k | } | 127 | 7.09k | res = func(callable, args, nargsf, kwnames); | 128 | 7.09k | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 11.3k | } |
Unexecuted instantiation: capsule.c:_PyObject_Vectorcall Unexecuted instantiation: exceptions.c:_PyObject_Vectorcall Unexecuted instantiation: floatobject.c:_PyObject_Vectorcall Unexecuted instantiation: frameobject.c:_PyObject_Vectorcall Unexecuted instantiation: funcobject.c:_PyObject_Vectorcall Unexecuted instantiation: iterobject.c:_PyObject_Vectorcall Unexecuted instantiation: listobject.c:_PyObject_Vectorcall Unexecuted instantiation: longobject.c:_PyObject_Vectorcall dictobject.c:_PyObject_Vectorcall Line | Count | Source | 117 | 17 | { | 118 | 17 | PyObject *res; | 119 | 17 | vectorcallfunc func; | 120 | 17 | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 17 | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 17 | func = _PyVectorcall_Function(callable); | 123 | 17 | if (func == NULL) { | 124 | 17 | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 17 | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 17 | } | 127 | 0 | res = func(callable, args, nargsf, kwnames); | 128 | 0 | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 17 | } |
Unexecuted instantiation: memoryobject.c:_PyObject_Vectorcall Unexecuted instantiation: methodobject.c:_PyObject_Vectorcall Unexecuted instantiation: moduleobject.c:_PyObject_Vectorcall object.c:_PyObject_Vectorcall Line | Count | Source | 117 | 14 | { | 118 | 14 | PyObject *res; | 119 | 14 | vectorcallfunc func; | 120 | 14 | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 14 | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 14 | func = _PyVectorcall_Function(callable); | 123 | 14 | if (func == NULL) { | 124 | 0 | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 0 | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 0 | } | 127 | 14 | res = func(callable, args, nargsf, kwnames); | 128 | 14 | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 14 | } |
Unexecuted instantiation: obmalloc.c:_PyObject_Vectorcall Unexecuted instantiation: picklebufobject.c:_PyObject_Vectorcall Unexecuted instantiation: rangeobject.c:_PyObject_Vectorcall Unexecuted instantiation: setobject.c:_PyObject_Vectorcall Unexecuted instantiation: sliceobject.c:_PyObject_Vectorcall Unexecuted instantiation: structseq.c:_PyObject_Vectorcall Unexecuted instantiation: tupleobject.c:_PyObject_Vectorcall typeobject.c:_PyObject_Vectorcall Line | Count | Source | 117 | 1.81k | { | 118 | 1.81k | PyObject *res; | 119 | 1.81k | vectorcallfunc func; | 120 | 1.81k | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 1.81k | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 1.81k | func = _PyVectorcall_Function(callable); | 123 | 1.81k | if (func == NULL) { | 124 | 1.35k | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 1.35k | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 1.35k | } | 127 | 463 | res = func(callable, args, nargsf, kwnames); | 128 | 463 | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 1.81k | } |
Unexecuted instantiation: unicodeobject.c:_PyObject_Vectorcall Unexecuted instantiation: unicodectype.c:_PyObject_Vectorcall Unexecuted instantiation: weakrefobject.c:_PyObject_Vectorcall Unexecuted instantiation: _warnings.c:_PyObject_Vectorcall ceval.c:_PyObject_Vectorcall Line | Count | Source | 117 | 86.4k | { | 118 | 86.4k | PyObject *res; | 119 | 86.4k | vectorcallfunc func; | 120 | 86.4k | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 86.4k | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 86.4k | func = _PyVectorcall_Function(callable); | 123 | 86.4k | if (func == NULL) { | 124 | 17.2k | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 17.2k | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 17.2k | } | 127 | 69.1k | res = func(callable, args, nargsf, kwnames); | 128 | 69.1k | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 86.4k | } |
Unexecuted instantiation: codecs.c:_PyObject_Vectorcall Unexecuted instantiation: compile.c:_PyObject_Vectorcall errors.c:_PyObject_Vectorcall Line | Count | Source | 117 | 208 | { | 118 | 208 | PyObject *res; | 119 | 208 | vectorcallfunc func; | 120 | 208 | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 208 | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 208 | func = _PyVectorcall_Function(callable); | 123 | 208 | if (func == NULL) { | 124 | 208 | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 208 | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 208 | } | 127 | 0 | res = func(callable, args, nargsf, kwnames); | 128 | 0 | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 208 | } |
Unexecuted instantiation: future.c:_PyObject_Vectorcall Unexecuted instantiation: getargs.c:_PyObject_Vectorcall Unexecuted instantiation: getversion.c:_PyObject_Vectorcall Unexecuted instantiation: import.c:_PyObject_Vectorcall Unexecuted instantiation: importdl.c:_PyObject_Vectorcall Unexecuted instantiation: initconfig.c:_PyObject_Vectorcall Unexecuted instantiation: marshal.c:_PyObject_Vectorcall Unexecuted instantiation: modsupport.c:_PyObject_Vectorcall Unexecuted instantiation: mysnprintf.c:_PyObject_Vectorcall Unexecuted instantiation: pathconfig.c:_PyObject_Vectorcall Unexecuted instantiation: peephole.c:_PyObject_Vectorcall Unexecuted instantiation: preconfig.c:_PyObject_Vectorcall Unexecuted instantiation: pyarena.c:_PyObject_Vectorcall Unexecuted instantiation: pyctype.c:_PyObject_Vectorcall Unexecuted instantiation: pyhash.c:_PyObject_Vectorcall Unexecuted instantiation: pylifecycle.c:_PyObject_Vectorcall Unexecuted instantiation: pymath.c:_PyObject_Vectorcall Unexecuted instantiation: pystate.c:_PyObject_Vectorcall Unexecuted instantiation: pythonrun.c:_PyObject_Vectorcall Unexecuted instantiation: pytime.c:_PyObject_Vectorcall Unexecuted instantiation: bootstrap_hash.c:_PyObject_Vectorcall Unexecuted instantiation: symtable.c:_PyObject_Vectorcall Unexecuted instantiation: sysmodule.c:_PyObject_Vectorcall Unexecuted instantiation: thread.c:_PyObject_Vectorcall Unexecuted instantiation: traceback.c:_PyObject_Vectorcall Unexecuted instantiation: getopt.c:_PyObject_Vectorcall Unexecuted instantiation: pystrcmp.c:_PyObject_Vectorcall Unexecuted instantiation: pystrtod.c:_PyObject_Vectorcall Unexecuted instantiation: pystrhex.c:_PyObject_Vectorcall Unexecuted instantiation: dtoa.c:_PyObject_Vectorcall Unexecuted instantiation: formatter_unicode.c:_PyObject_Vectorcall Unexecuted instantiation: fileutils.c:_PyObject_Vectorcall Unexecuted instantiation: dynload_shlib.c:_PyObject_Vectorcall Unexecuted instantiation: config.c:_PyObject_Vectorcall Unexecuted instantiation: getpath.c:_PyObject_Vectorcall Unexecuted instantiation: gcmodule.c:_PyObject_Vectorcall Unexecuted instantiation: posixmodule.c:_PyObject_Vectorcall Unexecuted instantiation: errnomodule.c:_PyObject_Vectorcall Unexecuted instantiation: pwdmodule.c:_PyObject_Vectorcall Unexecuted instantiation: _sre.c:_PyObject_Vectorcall Unexecuted instantiation: _codecsmodule.c:_PyObject_Vectorcall Unexecuted instantiation: _weakref.c:_PyObject_Vectorcall _functoolsmodule.c:_PyObject_Vectorcall Line | Count | Source | 117 | 1 | { | 118 | 1 | PyObject *res; | 119 | 1 | vectorcallfunc func; | 120 | 1 | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 1 | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 1 | func = _PyVectorcall_Function(callable); | 123 | 1 | if (func == NULL) { | 124 | 1 | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 1 | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 1 | } | 127 | 0 | res = func(callable, args, nargsf, kwnames); | 128 | 0 | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 1 | } |
Unexecuted instantiation: _operator.c:_PyObject_Vectorcall Unexecuted instantiation: _collectionsmodule.c:_PyObject_Vectorcall Unexecuted instantiation: _abc.c:_PyObject_Vectorcall Unexecuted instantiation: itertoolsmodule.c:_PyObject_Vectorcall Unexecuted instantiation: atexitmodule.c:_PyObject_Vectorcall Unexecuted instantiation: signalmodule.c:_PyObject_Vectorcall Unexecuted instantiation: _stat.c:_PyObject_Vectorcall Unexecuted instantiation: timemodule.c:_PyObject_Vectorcall Unexecuted instantiation: _threadmodule.c:_PyObject_Vectorcall Unexecuted instantiation: _localemodule.c:_PyObject_Vectorcall Unexecuted instantiation: _iomodule.c:_PyObject_Vectorcall Unexecuted instantiation: iobase.c:_PyObject_Vectorcall Unexecuted instantiation: fileio.c:_PyObject_Vectorcall Unexecuted instantiation: bytesio.c:_PyObject_Vectorcall bufferedio.c:_PyObject_Vectorcall Line | Count | Source | 117 | 235 | { | 118 | 235 | PyObject *res; | 119 | 235 | vectorcallfunc func; | 120 | 235 | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 235 | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 235 | func = _PyVectorcall_Function(callable); | 123 | 235 | if (func == NULL) { | 124 | 0 | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 0 | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 0 | } | 127 | 235 | res = func(callable, args, nargsf, kwnames); | 128 | 235 | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 235 | } |
Unexecuted instantiation: textio.c:_PyObject_Vectorcall Unexecuted instantiation: stringio.c:_PyObject_Vectorcall Unexecuted instantiation: faulthandler.c:_PyObject_Vectorcall Unexecuted instantiation: _tracemalloc.c:_PyObject_Vectorcall Unexecuted instantiation: hashtable.c:_PyObject_Vectorcall Unexecuted instantiation: symtablemodule.c:_PyObject_Vectorcall Unexecuted instantiation: xxsubtype.c:_PyObject_Vectorcall Unexecuted instantiation: frozen.c:_PyObject_Vectorcall Unexecuted instantiation: getbuildinfo.c:_PyObject_Vectorcall Unexecuted instantiation: acceler.c:_PyObject_Vectorcall Unexecuted instantiation: grammar1.c:_PyObject_Vectorcall Unexecuted instantiation: node.c:_PyObject_Vectorcall Unexecuted instantiation: token.c:_PyObject_Vectorcall Unexecuted instantiation: parsetok.c:_PyObject_Vectorcall Unexecuted instantiation: tokenizer.c:_PyObject_Vectorcall Unexecuted instantiation: accu.c:_PyObject_Vectorcall Unexecuted instantiation: bytes_methods.c:_PyObject_Vectorcall Unexecuted instantiation: cellobject.c:_PyObject_Vectorcall classobject.c:_PyObject_Vectorcall Line | Count | Source | 117 | 7.24k | { | 118 | 7.24k | PyObject *res; | 119 | 7.24k | vectorcallfunc func; | 120 | 7.24k | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 7.24k | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 7.24k | func = _PyVectorcall_Function(callable); | 123 | 7.24k | if (func == NULL) { | 124 | 0 | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 0 | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 0 | } | 127 | 7.24k | res = func(callable, args, nargsf, kwnames); | 128 | 7.24k | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 7.24k | } |
Unexecuted instantiation: codeobject.c:_PyObject_Vectorcall Unexecuted instantiation: complexobject.c:_PyObject_Vectorcall descrobject.c:_PyObject_Vectorcall Line | Count | Source | 117 | 1.64k | { | 118 | 1.64k | PyObject *res; | 119 | 1.64k | vectorcallfunc func; | 120 | 1.64k | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 1.64k | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 1.64k | func = _PyVectorcall_Function(callable); | 123 | 1.64k | if (func == NULL) { | 124 | 0 | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 0 | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 0 | } | 127 | 1.64k | res = func(callable, args, nargsf, kwnames); | 128 | 1.64k | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 1.64k | } |
enumobject.c:_PyObject_Vectorcall Line | Count | Source | 117 | 16 | { | 118 | 16 | PyObject *res; | 119 | 16 | vectorcallfunc func; | 120 | 16 | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 16 | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 16 | func = _PyVectorcall_Function(callable); | 123 | 16 | if (func == NULL) { | 124 | 0 | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 0 | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 0 | } | 127 | 16 | res = func(callable, args, nargsf, kwnames); | 128 | 16 | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 16 | } |
Unexecuted instantiation: genobject.c:_PyObject_Vectorcall Unexecuted instantiation: fileobject.c:_PyObject_Vectorcall Unexecuted instantiation: interpreteridobject.c:_PyObject_Vectorcall Unexecuted instantiation: odictobject.c:_PyObject_Vectorcall Unexecuted instantiation: namespaceobject.c:_PyObject_Vectorcall Unexecuted instantiation: Python-ast.c:_PyObject_Vectorcall Unexecuted instantiation: asdl.c:_PyObject_Vectorcall Unexecuted instantiation: ast.c:_PyObject_Vectorcall Unexecuted instantiation: ast_opt.c:_PyObject_Vectorcall Unexecuted instantiation: ast_unparse.c:_PyObject_Vectorcall bltinmodule.c:_PyObject_Vectorcall Line | Count | Source | 117 | 362 | { | 118 | 362 | PyObject *res; | 119 | 362 | vectorcallfunc func; | 120 | 362 | assert(kwnames == NULL || PyTuple_Check(kwnames)); | 121 | 362 | assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0); | 122 | 362 | func = _PyVectorcall_Function(callable); | 123 | 362 | if (func == NULL) { | 124 | 9 | Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); | 125 | 9 | return _PyObject_MakeTpCall(callable, args, nargs, kwnames); | 126 | 9 | } | 127 | 353 | res = func(callable, args, nargsf, kwnames); | 128 | 353 | return _Py_CheckFunctionResult(callable, res, NULL); | 129 | 362 | } |
Unexecuted instantiation: context.c:_PyObject_Vectorcall Unexecuted instantiation: getcompiler.c:_PyObject_Vectorcall Unexecuted instantiation: getcopyright.c:_PyObject_Vectorcall Unexecuted instantiation: getplatform.c:_PyObject_Vectorcall Unexecuted instantiation: hamt.c:_PyObject_Vectorcall Unexecuted instantiation: mystrtoul.c:_PyObject_Vectorcall Unexecuted instantiation: structmember.c:_PyObject_Vectorcall Unexecuted instantiation: parser.c:_PyObject_Vectorcall Unexecuted instantiation: myreadline.c:_PyObject_Vectorcall |
130 | | |
131 | | /* Same as _PyObject_Vectorcall except that keyword arguments are passed as |
132 | | dict, which may be NULL if there are no keyword arguments. */ |
133 | | PyAPI_FUNC(PyObject *) _PyObject_FastCallDict( |
134 | | PyObject *callable, |
135 | | PyObject *const *args, |
136 | | size_t nargsf, |
137 | | PyObject *kwargs); |
138 | | |
139 | | /* Call "callable" (which must support vectorcall) with positional arguments |
140 | | "tuple" and keyword arguments "dict". "dict" may also be NULL */ |
141 | | PyAPI_FUNC(PyObject *) PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *dict); |
142 | | |
143 | | /* Same as _PyObject_Vectorcall except without keyword arguments */ |
144 | | static inline PyObject * |
145 | | _PyObject_FastCall(PyObject *func, PyObject *const *args, Py_ssize_t nargs) |
146 | 15.7k | { |
147 | 15.7k | return _PyObject_Vectorcall(func, args, (size_t)nargs, NULL); |
148 | 15.7k | } Unexecuted instantiation: abstract.c:_PyObject_FastCall Unexecuted instantiation: boolobject.c:_PyObject_FastCall Unexecuted instantiation: bytearrayobject.c:_PyObject_FastCall Unexecuted instantiation: bytesobject.c:_PyObject_FastCall call.c:_PyObject_FastCall Line | Count | Source | 146 | 9.58k | { | 147 | 9.58k | return _PyObject_Vectorcall(func, args, (size_t)nargs, NULL); | 148 | 9.58k | } |
Unexecuted instantiation: capsule.c:_PyObject_FastCall Unexecuted instantiation: exceptions.c:_PyObject_FastCall Unexecuted instantiation: floatobject.c:_PyObject_FastCall Unexecuted instantiation: frameobject.c:_PyObject_FastCall Unexecuted instantiation: funcobject.c:_PyObject_FastCall Unexecuted instantiation: iterobject.c:_PyObject_FastCall Unexecuted instantiation: listobject.c:_PyObject_FastCall Unexecuted instantiation: longobject.c:_PyObject_FastCall Unexecuted instantiation: dictobject.c:_PyObject_FastCall Unexecuted instantiation: memoryobject.c:_PyObject_FastCall Unexecuted instantiation: methodobject.c:_PyObject_FastCall Unexecuted instantiation: moduleobject.c:_PyObject_FastCall Unexecuted instantiation: object.c:_PyObject_FastCall Unexecuted instantiation: obmalloc.c:_PyObject_FastCall Unexecuted instantiation: picklebufobject.c:_PyObject_FastCall Unexecuted instantiation: rangeobject.c:_PyObject_FastCall Unexecuted instantiation: setobject.c:_PyObject_FastCall Unexecuted instantiation: sliceobject.c:_PyObject_FastCall Unexecuted instantiation: structseq.c:_PyObject_FastCall Unexecuted instantiation: tupleobject.c:_PyObject_FastCall typeobject.c:_PyObject_FastCall Line | Count | Source | 146 | 1.81k | { | 147 | 1.81k | return _PyObject_Vectorcall(func, args, (size_t)nargs, NULL); | 148 | 1.81k | } |
Unexecuted instantiation: unicodeobject.c:_PyObject_FastCall Unexecuted instantiation: unicodectype.c:_PyObject_FastCall Unexecuted instantiation: weakrefobject.c:_PyObject_FastCall Unexecuted instantiation: _warnings.c:_PyObject_FastCall ceval.c:_PyObject_FastCall Line | Count | Source | 146 | 2.36k | { | 147 | 2.36k | return _PyObject_Vectorcall(func, args, (size_t)nargs, NULL); | 148 | 2.36k | } |
Unexecuted instantiation: codecs.c:_PyObject_FastCall Unexecuted instantiation: compile.c:_PyObject_FastCall Unexecuted instantiation: errors.c:_PyObject_FastCall Unexecuted instantiation: future.c:_PyObject_FastCall Unexecuted instantiation: getargs.c:_PyObject_FastCall Unexecuted instantiation: getversion.c:_PyObject_FastCall Unexecuted instantiation: import.c:_PyObject_FastCall Unexecuted instantiation: importdl.c:_PyObject_FastCall Unexecuted instantiation: initconfig.c:_PyObject_FastCall Unexecuted instantiation: marshal.c:_PyObject_FastCall Unexecuted instantiation: modsupport.c:_PyObject_FastCall Unexecuted instantiation: mysnprintf.c:_PyObject_FastCall Unexecuted instantiation: pathconfig.c:_PyObject_FastCall Unexecuted instantiation: peephole.c:_PyObject_FastCall Unexecuted instantiation: preconfig.c:_PyObject_FastCall Unexecuted instantiation: pyarena.c:_PyObject_FastCall Unexecuted instantiation: pyctype.c:_PyObject_FastCall Unexecuted instantiation: pyhash.c:_PyObject_FastCall Unexecuted instantiation: pylifecycle.c:_PyObject_FastCall Unexecuted instantiation: pymath.c:_PyObject_FastCall Unexecuted instantiation: pystate.c:_PyObject_FastCall Unexecuted instantiation: pythonrun.c:_PyObject_FastCall Unexecuted instantiation: pytime.c:_PyObject_FastCall Unexecuted instantiation: bootstrap_hash.c:_PyObject_FastCall Unexecuted instantiation: symtable.c:_PyObject_FastCall Unexecuted instantiation: sysmodule.c:_PyObject_FastCall Unexecuted instantiation: thread.c:_PyObject_FastCall Unexecuted instantiation: traceback.c:_PyObject_FastCall Unexecuted instantiation: getopt.c:_PyObject_FastCall Unexecuted instantiation: pystrcmp.c:_PyObject_FastCall Unexecuted instantiation: pystrtod.c:_PyObject_FastCall Unexecuted instantiation: pystrhex.c:_PyObject_FastCall Unexecuted instantiation: dtoa.c:_PyObject_FastCall Unexecuted instantiation: formatter_unicode.c:_PyObject_FastCall Unexecuted instantiation: fileutils.c:_PyObject_FastCall Unexecuted instantiation: dynload_shlib.c:_PyObject_FastCall Unexecuted instantiation: config.c:_PyObject_FastCall Unexecuted instantiation: getpath.c:_PyObject_FastCall Unexecuted instantiation: gcmodule.c:_PyObject_FastCall Unexecuted instantiation: posixmodule.c:_PyObject_FastCall Unexecuted instantiation: errnomodule.c:_PyObject_FastCall Unexecuted instantiation: pwdmodule.c:_PyObject_FastCall Unexecuted instantiation: _sre.c:_PyObject_FastCall Unexecuted instantiation: _codecsmodule.c:_PyObject_FastCall Unexecuted instantiation: _weakref.c:_PyObject_FastCall Unexecuted instantiation: _functoolsmodule.c:_PyObject_FastCall Unexecuted instantiation: _operator.c:_PyObject_FastCall Unexecuted instantiation: _collectionsmodule.c:_PyObject_FastCall Unexecuted instantiation: _abc.c:_PyObject_FastCall Unexecuted instantiation: itertoolsmodule.c:_PyObject_FastCall Unexecuted instantiation: atexitmodule.c:_PyObject_FastCall Unexecuted instantiation: signalmodule.c:_PyObject_FastCall Unexecuted instantiation: _stat.c:_PyObject_FastCall Unexecuted instantiation: timemodule.c:_PyObject_FastCall Unexecuted instantiation: _threadmodule.c:_PyObject_FastCall Unexecuted instantiation: _localemodule.c:_PyObject_FastCall Unexecuted instantiation: _iomodule.c:_PyObject_FastCall Unexecuted instantiation: iobase.c:_PyObject_FastCall Unexecuted instantiation: fileio.c:_PyObject_FastCall Unexecuted instantiation: bytesio.c:_PyObject_FastCall Unexecuted instantiation: bufferedio.c:_PyObject_FastCall Unexecuted instantiation: textio.c:_PyObject_FastCall Unexecuted instantiation: stringio.c:_PyObject_FastCall Unexecuted instantiation: faulthandler.c:_PyObject_FastCall Unexecuted instantiation: _tracemalloc.c:_PyObject_FastCall Unexecuted instantiation: hashtable.c:_PyObject_FastCall Unexecuted instantiation: symtablemodule.c:_PyObject_FastCall Unexecuted instantiation: xxsubtype.c:_PyObject_FastCall Unexecuted instantiation: frozen.c:_PyObject_FastCall Unexecuted instantiation: getbuildinfo.c:_PyObject_FastCall Unexecuted instantiation: acceler.c:_PyObject_FastCall Unexecuted instantiation: grammar1.c:_PyObject_FastCall Unexecuted instantiation: node.c:_PyObject_FastCall Unexecuted instantiation: token.c:_PyObject_FastCall Unexecuted instantiation: parsetok.c:_PyObject_FastCall Unexecuted instantiation: tokenizer.c:_PyObject_FastCall Unexecuted instantiation: accu.c:_PyObject_FastCall Unexecuted instantiation: bytes_methods.c:_PyObject_FastCall Unexecuted instantiation: cellobject.c:_PyObject_FastCall Unexecuted instantiation: classobject.c:_PyObject_FastCall Unexecuted instantiation: codeobject.c:_PyObject_FastCall Unexecuted instantiation: complexobject.c:_PyObject_FastCall descrobject.c:_PyObject_FastCall Line | Count | Source | 146 | 1.64k | { | 147 | 1.64k | return _PyObject_Vectorcall(func, args, (size_t)nargs, NULL); | 148 | 1.64k | } |
Unexecuted instantiation: enumobject.c:_PyObject_FastCall Unexecuted instantiation: genobject.c:_PyObject_FastCall Unexecuted instantiation: fileobject.c:_PyObject_FastCall Unexecuted instantiation: interpreteridobject.c:_PyObject_FastCall Unexecuted instantiation: odictobject.c:_PyObject_FastCall Unexecuted instantiation: namespaceobject.c:_PyObject_FastCall Unexecuted instantiation: Python-ast.c:_PyObject_FastCall Unexecuted instantiation: asdl.c:_PyObject_FastCall Unexecuted instantiation: ast.c:_PyObject_FastCall Unexecuted instantiation: ast_opt.c:_PyObject_FastCall Unexecuted instantiation: ast_unparse.c:_PyObject_FastCall bltinmodule.c:_PyObject_FastCall Line | Count | Source | 146 | 361 | { | 147 | 361 | return _PyObject_Vectorcall(func, args, (size_t)nargs, NULL); | 148 | 361 | } |
Unexecuted instantiation: context.c:_PyObject_FastCall Unexecuted instantiation: getcompiler.c:_PyObject_FastCall Unexecuted instantiation: getcopyright.c:_PyObject_FastCall Unexecuted instantiation: getplatform.c:_PyObject_FastCall Unexecuted instantiation: hamt.c:_PyObject_FastCall Unexecuted instantiation: mystrtoul.c:_PyObject_FastCall Unexecuted instantiation: structmember.c:_PyObject_FastCall Unexecuted instantiation: parser.c:_PyObject_FastCall Unexecuted instantiation: myreadline.c:_PyObject_FastCall |
149 | | |
150 | | /* Call a callable without any arguments */ |
151 | | static inline PyObject * |
152 | 5.06k | _PyObject_CallNoArg(PyObject *func) { |
153 | 5.06k | return _PyObject_Vectorcall(func, NULL, 0, NULL); |
154 | 5.06k | } abstract.c:_PyObject_CallNoArg Line | Count | Source | 152 | 460 | _PyObject_CallNoArg(PyObject *func) { | 153 | 460 | return _PyObject_Vectorcall(func, NULL, 0, NULL); | 154 | 460 | } |
Unexecuted instantiation: boolobject.c:_PyObject_CallNoArg Unexecuted instantiation: bytearrayobject.c:_PyObject_CallNoArg Unexecuted instantiation: bytesobject.c:_PyObject_CallNoArg call.c:_PyObject_CallNoArg Line | Count | Source | 152 | 1.74k | _PyObject_CallNoArg(PyObject *func) { | 153 | 1.74k | return _PyObject_Vectorcall(func, NULL, 0, NULL); | 154 | 1.74k | } |
Unexecuted instantiation: capsule.c:_PyObject_CallNoArg Unexecuted instantiation: exceptions.c:_PyObject_CallNoArg Unexecuted instantiation: floatobject.c:_PyObject_CallNoArg Unexecuted instantiation: frameobject.c:_PyObject_CallNoArg Unexecuted instantiation: funcobject.c:_PyObject_CallNoArg Unexecuted instantiation: iterobject.c:_PyObject_CallNoArg Unexecuted instantiation: listobject.c:_PyObject_CallNoArg Unexecuted instantiation: longobject.c:_PyObject_CallNoArg dictobject.c:_PyObject_CallNoArg Line | Count | Source | 152 | 17 | _PyObject_CallNoArg(PyObject *func) { | 153 | 17 | return _PyObject_Vectorcall(func, NULL, 0, NULL); | 154 | 17 | } |
Unexecuted instantiation: memoryobject.c:_PyObject_CallNoArg Unexecuted instantiation: methodobject.c:_PyObject_CallNoArg Unexecuted instantiation: moduleobject.c:_PyObject_CallNoArg object.c:_PyObject_CallNoArg Line | Count | Source | 152 | 14 | _PyObject_CallNoArg(PyObject *func) { | 153 | 14 | return _PyObject_Vectorcall(func, NULL, 0, NULL); | 154 | 14 | } |
Unexecuted instantiation: obmalloc.c:_PyObject_CallNoArg Unexecuted instantiation: picklebufobject.c:_PyObject_CallNoArg Unexecuted instantiation: rangeobject.c:_PyObject_CallNoArg Unexecuted instantiation: setobject.c:_PyObject_CallNoArg Unexecuted instantiation: sliceobject.c:_PyObject_CallNoArg Unexecuted instantiation: structseq.c:_PyObject_CallNoArg Unexecuted instantiation: tupleobject.c:_PyObject_CallNoArg Unexecuted instantiation: typeobject.c:_PyObject_CallNoArg Unexecuted instantiation: unicodeobject.c:_PyObject_CallNoArg Unexecuted instantiation: unicodectype.c:_PyObject_CallNoArg Unexecuted instantiation: weakrefobject.c:_PyObject_CallNoArg Unexecuted instantiation: _warnings.c:_PyObject_CallNoArg ceval.c:_PyObject_CallNoArg Line | Count | Source | 152 | 2.36k | _PyObject_CallNoArg(PyObject *func) { | 153 | 2.36k | return _PyObject_Vectorcall(func, NULL, 0, NULL); | 154 | 2.36k | } |
Unexecuted instantiation: codecs.c:_PyObject_CallNoArg Unexecuted instantiation: compile.c:_PyObject_CallNoArg errors.c:_PyObject_CallNoArg Line | Count | Source | 152 | 208 | _PyObject_CallNoArg(PyObject *func) { | 153 | 208 | return _PyObject_Vectorcall(func, NULL, 0, NULL); | 154 | 208 | } |
Unexecuted instantiation: future.c:_PyObject_CallNoArg Unexecuted instantiation: getargs.c:_PyObject_CallNoArg Unexecuted instantiation: getversion.c:_PyObject_CallNoArg Unexecuted instantiation: import.c:_PyObject_CallNoArg Unexecuted instantiation: importdl.c:_PyObject_CallNoArg Unexecuted instantiation: initconfig.c:_PyObject_CallNoArg Unexecuted instantiation: marshal.c:_PyObject_CallNoArg Unexecuted instantiation: modsupport.c:_PyObject_CallNoArg Unexecuted instantiation: mysnprintf.c:_PyObject_CallNoArg Unexecuted instantiation: pathconfig.c:_PyObject_CallNoArg Unexecuted instantiation: peephole.c:_PyObject_CallNoArg Unexecuted instantiation: preconfig.c:_PyObject_CallNoArg Unexecuted instantiation: pyarena.c:_PyObject_CallNoArg Unexecuted instantiation: pyctype.c:_PyObject_CallNoArg Unexecuted instantiation: pyhash.c:_PyObject_CallNoArg Unexecuted instantiation: pylifecycle.c:_PyObject_CallNoArg Unexecuted instantiation: pymath.c:_PyObject_CallNoArg Unexecuted instantiation: pystate.c:_PyObject_CallNoArg Unexecuted instantiation: pythonrun.c:_PyObject_CallNoArg Unexecuted instantiation: pytime.c:_PyObject_CallNoArg Unexecuted instantiation: bootstrap_hash.c:_PyObject_CallNoArg Unexecuted instantiation: symtable.c:_PyObject_CallNoArg Unexecuted instantiation: sysmodule.c:_PyObject_CallNoArg Unexecuted instantiation: thread.c:_PyObject_CallNoArg Unexecuted instantiation: traceback.c:_PyObject_CallNoArg Unexecuted instantiation: getopt.c:_PyObject_CallNoArg Unexecuted instantiation: pystrcmp.c:_PyObject_CallNoArg Unexecuted instantiation: pystrtod.c:_PyObject_CallNoArg Unexecuted instantiation: pystrhex.c:_PyObject_CallNoArg Unexecuted instantiation: dtoa.c:_PyObject_CallNoArg Unexecuted instantiation: formatter_unicode.c:_PyObject_CallNoArg Unexecuted instantiation: fileutils.c:_PyObject_CallNoArg Unexecuted instantiation: dynload_shlib.c:_PyObject_CallNoArg Unexecuted instantiation: config.c:_PyObject_CallNoArg Unexecuted instantiation: getpath.c:_PyObject_CallNoArg Unexecuted instantiation: gcmodule.c:_PyObject_CallNoArg Unexecuted instantiation: posixmodule.c:_PyObject_CallNoArg Unexecuted instantiation: errnomodule.c:_PyObject_CallNoArg Unexecuted instantiation: pwdmodule.c:_PyObject_CallNoArg Unexecuted instantiation: _sre.c:_PyObject_CallNoArg Unexecuted instantiation: _codecsmodule.c:_PyObject_CallNoArg Unexecuted instantiation: _weakref.c:_PyObject_CallNoArg _functoolsmodule.c:_PyObject_CallNoArg Line | Count | Source | 152 | 1 | _PyObject_CallNoArg(PyObject *func) { | 153 | 1 | return _PyObject_Vectorcall(func, NULL, 0, NULL); | 154 | 1 | } |
Unexecuted instantiation: _operator.c:_PyObject_CallNoArg Unexecuted instantiation: _collectionsmodule.c:_PyObject_CallNoArg Unexecuted instantiation: _abc.c:_PyObject_CallNoArg Unexecuted instantiation: itertoolsmodule.c:_PyObject_CallNoArg Unexecuted instantiation: atexitmodule.c:_PyObject_CallNoArg Unexecuted instantiation: signalmodule.c:_PyObject_CallNoArg Unexecuted instantiation: _stat.c:_PyObject_CallNoArg Unexecuted instantiation: timemodule.c:_PyObject_CallNoArg Unexecuted instantiation: _threadmodule.c:_PyObject_CallNoArg Unexecuted instantiation: _localemodule.c:_PyObject_CallNoArg Unexecuted instantiation: _iomodule.c:_PyObject_CallNoArg Unexecuted instantiation: iobase.c:_PyObject_CallNoArg Unexecuted instantiation: fileio.c:_PyObject_CallNoArg Unexecuted instantiation: bytesio.c:_PyObject_CallNoArg bufferedio.c:_PyObject_CallNoArg Line | Count | Source | 152 | 235 | _PyObject_CallNoArg(PyObject *func) { | 153 | 235 | return _PyObject_Vectorcall(func, NULL, 0, NULL); | 154 | 235 | } |
Unexecuted instantiation: textio.c:_PyObject_CallNoArg Unexecuted instantiation: stringio.c:_PyObject_CallNoArg Unexecuted instantiation: faulthandler.c:_PyObject_CallNoArg Unexecuted instantiation: _tracemalloc.c:_PyObject_CallNoArg Unexecuted instantiation: hashtable.c:_PyObject_CallNoArg Unexecuted instantiation: symtablemodule.c:_PyObject_CallNoArg Unexecuted instantiation: xxsubtype.c:_PyObject_CallNoArg Unexecuted instantiation: frozen.c:_PyObject_CallNoArg Unexecuted instantiation: getbuildinfo.c:_PyObject_CallNoArg Unexecuted instantiation: acceler.c:_PyObject_CallNoArg Unexecuted instantiation: grammar1.c:_PyObject_CallNoArg Unexecuted instantiation: node.c:_PyObject_CallNoArg Unexecuted instantiation: token.c:_PyObject_CallNoArg Unexecuted instantiation: parsetok.c:_PyObject_CallNoArg Unexecuted instantiation: tokenizer.c:_PyObject_CallNoArg Unexecuted instantiation: accu.c:_PyObject_CallNoArg Unexecuted instantiation: bytes_methods.c:_PyObject_CallNoArg Unexecuted instantiation: cellobject.c:_PyObject_CallNoArg Unexecuted instantiation: classobject.c:_PyObject_CallNoArg Unexecuted instantiation: codeobject.c:_PyObject_CallNoArg Unexecuted instantiation: complexobject.c:_PyObject_CallNoArg Unexecuted instantiation: descrobject.c:_PyObject_CallNoArg enumobject.c:_PyObject_CallNoArg Line | Count | Source | 152 | 16 | _PyObject_CallNoArg(PyObject *func) { | 153 | 16 | return _PyObject_Vectorcall(func, NULL, 0, NULL); | 154 | 16 | } |
Unexecuted instantiation: genobject.c:_PyObject_CallNoArg Unexecuted instantiation: fileobject.c:_PyObject_CallNoArg Unexecuted instantiation: interpreteridobject.c:_PyObject_CallNoArg Unexecuted instantiation: odictobject.c:_PyObject_CallNoArg Unexecuted instantiation: namespaceobject.c:_PyObject_CallNoArg Unexecuted instantiation: Python-ast.c:_PyObject_CallNoArg Unexecuted instantiation: asdl.c:_PyObject_CallNoArg Unexecuted instantiation: ast.c:_PyObject_CallNoArg Unexecuted instantiation: ast_opt.c:_PyObject_CallNoArg Unexecuted instantiation: ast_unparse.c:_PyObject_CallNoArg Unexecuted instantiation: bltinmodule.c:_PyObject_CallNoArg Unexecuted instantiation: context.c:_PyObject_CallNoArg Unexecuted instantiation: getcompiler.c:_PyObject_CallNoArg Unexecuted instantiation: getcopyright.c:_PyObject_CallNoArg Unexecuted instantiation: getplatform.c:_PyObject_CallNoArg Unexecuted instantiation: hamt.c:_PyObject_CallNoArg Unexecuted instantiation: mystrtoul.c:_PyObject_CallNoArg Unexecuted instantiation: structmember.c:_PyObject_CallNoArg Unexecuted instantiation: parser.c:_PyObject_CallNoArg Unexecuted instantiation: myreadline.c:_PyObject_CallNoArg |
155 | | |
156 | | PyAPI_FUNC(PyObject *) _PyObject_Call_Prepend( |
157 | | PyObject *callable, |
158 | | PyObject *obj, |
159 | | PyObject *args, |
160 | | PyObject *kwargs); |
161 | | |
162 | | PyAPI_FUNC(PyObject *) _PyObject_FastCall_Prepend( |
163 | | PyObject *callable, |
164 | | PyObject *obj, |
165 | | PyObject *const *args, |
166 | | Py_ssize_t nargs); |
167 | | |
168 | | /* Like PyObject_CallMethod(), but expect a _Py_Identifier* |
169 | | as the method name. */ |
170 | | PyAPI_FUNC(PyObject *) _PyObject_CallMethodId(PyObject *obj, |
171 | | _Py_Identifier *name, |
172 | | const char *format, ...); |
173 | | |
174 | | PyAPI_FUNC(PyObject *) _PyObject_CallMethodId_SizeT(PyObject *obj, |
175 | | _Py_Identifier *name, |
176 | | const char *format, |
177 | | ...); |
178 | | |
179 | | PyAPI_FUNC(PyObject *) _PyObject_CallMethodIdObjArgs( |
180 | | PyObject *obj, |
181 | | struct _Py_Identifier *name, |
182 | | ...); |
183 | | |
184 | | PyAPI_FUNC(int) _PyObject_HasLen(PyObject *o); |
185 | | |
186 | | /* Guess the size of object 'o' using len(o) or o.__length_hint__(). |
187 | | If neither of those return a non-negative value, then return the default |
188 | | value. If one of the calls fails, this function returns -1. */ |
189 | | PyAPI_FUNC(Py_ssize_t) PyObject_LengthHint(PyObject *o, Py_ssize_t); |
190 | | |
191 | | /* === New Buffer API ============================================ */ |
192 | | |
193 | | /* Return 1 if the getbuffer function is available, otherwise return 0. */ |
194 | | #define PyObject_CheckBuffer(obj) \ |
195 | 1.47k | (((obj)->ob_type->tp_as_buffer != NULL) && \ |
196 | 1.47k | ((obj)->ob_type->tp_as_buffer->bf_getbuffer != NULL)) |
197 | | |
198 | | /* This is a C-API version of the getbuffer function call. It checks |
199 | | to make sure object has the required function pointer and issues the |
200 | | call. |
201 | | |
202 | | Returns -1 and raises an error on failure and returns 0 on success. */ |
203 | | PyAPI_FUNC(int) PyObject_GetBuffer(PyObject *obj, Py_buffer *view, |
204 | | int flags); |
205 | | |
206 | | /* Get the memory area pointed to by the indices for the buffer given. |
207 | | Note that view->ndim is the assumed size of indices. */ |
208 | | PyAPI_FUNC(void *) PyBuffer_GetPointer(Py_buffer *view, Py_ssize_t *indices); |
209 | | |
210 | | /* Return the implied itemsize of the data-format area from a |
211 | | struct-style description. */ |
212 | | PyAPI_FUNC(int) PyBuffer_SizeFromFormat(const char *); |
213 | | |
214 | | /* Implementation in memoryobject.c */ |
215 | | PyAPI_FUNC(int) PyBuffer_ToContiguous(void *buf, Py_buffer *view, |
216 | | Py_ssize_t len, char order); |
217 | | |
218 | | PyAPI_FUNC(int) PyBuffer_FromContiguous(Py_buffer *view, void *buf, |
219 | | Py_ssize_t len, char order); |
220 | | |
221 | | /* Copy len bytes of data from the contiguous chunk of memory |
222 | | pointed to by buf into the buffer exported by obj. Return |
223 | | 0 on success and return -1 and raise a PyBuffer_Error on |
224 | | error (i.e. the object does not have a buffer interface or |
225 | | it is not working). |
226 | | |
227 | | If fort is 'F', then if the object is multi-dimensional, |
228 | | then the data will be copied into the array in |
229 | | Fortran-style (first dimension varies the fastest). If |
230 | | fort is 'C', then the data will be copied into the array |
231 | | in C-style (last dimension varies the fastest). If fort |
232 | | is 'A', then it does not matter and the copy will be made |
233 | | in whatever way is more efficient. */ |
234 | | PyAPI_FUNC(int) PyObject_CopyData(PyObject *dest, PyObject *src); |
235 | | |
236 | | /* Copy the data from the src buffer to the buffer of destination. */ |
237 | | PyAPI_FUNC(int) PyBuffer_IsContiguous(const Py_buffer *view, char fort); |
238 | | |
239 | | /*Fill the strides array with byte-strides of a contiguous |
240 | | (Fortran-style if fort is 'F' or C-style otherwise) |
241 | | array of the given shape with the given number of bytes |
242 | | per element. */ |
243 | | PyAPI_FUNC(void) PyBuffer_FillContiguousStrides(int ndims, |
244 | | Py_ssize_t *shape, |
245 | | Py_ssize_t *strides, |
246 | | int itemsize, |
247 | | char fort); |
248 | | |
249 | | /* Fills in a buffer-info structure correctly for an exporter |
250 | | that can only share a contiguous chunk of memory of |
251 | | "unsigned bytes" of the given length. |
252 | | |
253 | | Returns 0 on success and -1 (with raising an error) on error. */ |
254 | | PyAPI_FUNC(int) PyBuffer_FillInfo(Py_buffer *view, PyObject *o, void *buf, |
255 | | Py_ssize_t len, int readonly, |
256 | | int flags); |
257 | | |
258 | | /* Releases a Py_buffer obtained from getbuffer ParseTuple's "s*". */ |
259 | | PyAPI_FUNC(void) PyBuffer_Release(Py_buffer *view); |
260 | | |
261 | | /* ==== Iterators ================================================ */ |
262 | | |
263 | | #define PyIter_Check(obj) \ |
264 | 8.15k | ((obj)->ob_type->tp_iternext != NULL && \ |
265 | 8.15k | (obj)->ob_type->tp_iternext != &_PyObject_NextNotImplemented) |
266 | | |
267 | | /* === Number Protocol ================================================== */ |
268 | | |
269 | | #define PyIndex_Check(obj) \ |
270 | 17.4k | ((obj)->ob_type->tp_as_number != NULL && \ |
271 | 17.4k | (obj)->ob_type->tp_as_number->nb_index != NULL) |
272 | | |
273 | | /* === Sequence protocol ================================================ */ |
274 | | |
275 | | /* Assume tp_as_sequence and sq_item exist and that 'i' does not |
276 | | need to be corrected for a negative index. */ |
277 | | #define PySequence_ITEM(o, i)\ |
278 | 0 | ( Py_TYPE(o)->tp_as_sequence->sq_item(o, i) ) |
279 | | |
280 | 0 | #define PY_ITERSEARCH_COUNT 1 |
281 | 0 | #define PY_ITERSEARCH_INDEX 2 |
282 | 0 | #define PY_ITERSEARCH_CONTAINS 3 |
283 | | |
284 | | /* Iterate over seq. |
285 | | |
286 | | Result depends on the operation: |
287 | | |
288 | | PY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if |
289 | | error. |
290 | | PY_ITERSEARCH_INDEX: return 0-based index of first occurrence of |
291 | | obj in seq; set ValueError and return -1 if none found; |
292 | | also return -1 on error. |
293 | | PY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on |
294 | | error. */ |
295 | | PyAPI_FUNC(Py_ssize_t) _PySequence_IterSearch(PyObject *seq, |
296 | | PyObject *obj, int operation); |
297 | | |
298 | | /* === Mapping protocol ================================================= */ |
299 | | |
300 | | PyAPI_FUNC(int) _PyObject_RealIsInstance(PyObject *inst, PyObject *cls); |
301 | | |
302 | | PyAPI_FUNC(int) _PyObject_RealIsSubclass(PyObject *derived, PyObject *cls); |
303 | | |
304 | | PyAPI_FUNC(char *const *) _PySequence_BytesToCharpArray(PyObject* self); |
305 | | |
306 | | PyAPI_FUNC(void) _Py_FreeCharPArray(char *const array[]); |
307 | | |
308 | | /* For internal use by buffer API functions */ |
309 | | PyAPI_FUNC(void) _Py_add_one_to_index_F(int nd, Py_ssize_t *index, |
310 | | const Py_ssize_t *shape); |
311 | | PyAPI_FUNC(void) _Py_add_one_to_index_C(int nd, Py_ssize_t *index, |
312 | | const Py_ssize_t *shape); |
313 | | |
314 | | /* Convert Python int to Py_ssize_t. Do nothing if the argument is None. */ |
315 | | PyAPI_FUNC(int) _Py_convert_optional_to_ssize_t(PyObject *, void *); |
316 | | |
317 | | #ifdef __cplusplus |
318 | | } |
319 | | #endif |