Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /opt/alt/python311/include/python3.11/internal/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/alt/python311/include/python3.11/internal/pycore_call.h
#ifndef Py_INTERNAL_CALL_H
#define Py_INTERNAL_CALL_H
#ifdef __cplusplus
extern "C" {
#endif

#ifndef Py_BUILD_CORE
#  error "this header requires Py_BUILD_CORE define"
#endif

#include "pycore_pystate.h"       // _PyThreadState_GET()

PyAPI_FUNC(PyObject *) _PyObject_Call_Prepend(
    PyThreadState *tstate,
    PyObject *callable,
    PyObject *obj,
    PyObject *args,
    PyObject *kwargs);

PyAPI_FUNC(PyObject *) _PyObject_FastCallDictTstate(
    PyThreadState *tstate,
    PyObject *callable,
    PyObject *const *args,
    size_t nargsf,
    PyObject *kwargs);

PyAPI_FUNC(PyObject *) _PyObject_Call(
    PyThreadState *tstate,
    PyObject *callable,
    PyObject *args,
    PyObject *kwargs);

extern PyObject * _PyObject_CallMethodFormat(
        PyThreadState *tstate, PyObject *callable, const char *format, ...);


// Static inline variant of public PyVectorcall_Function().
static inline vectorcallfunc
_PyVectorcall_FunctionInline(PyObject *callable)
{
    assert(callable != NULL);

    PyTypeObject *tp = Py_TYPE(callable);
    if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) {
        return NULL;
    }
    assert(PyCallable_Check(callable));

    Py_ssize_t offset = tp->tp_vectorcall_offset;
    assert(offset > 0);

    vectorcallfunc ptr;
    memcpy(&ptr, (char *) callable + offset, sizeof(ptr));
    return ptr;
}


/* Call the callable object 'callable' with the "vectorcall" calling
   convention.

   args is a C array for positional arguments.

   nargsf is the number of positional arguments plus optionally the flag
   PY_VECTORCALL_ARGUMENTS_OFFSET which means that the caller is allowed to
   modify args[-1].

   kwnames is a tuple of keyword names. The values of the keyword arguments
   are stored in "args" after the positional arguments (note that the number
   of keyword arguments does not change nargsf). kwnames can also be NULL if
   there are no keyword arguments.

   keywords must only contain strings and all keys must be unique.

   Return the result on success. Raise an exception and return NULL on
   error. */
static inline PyObject *
_PyObject_VectorcallTstate(PyThreadState *tstate, PyObject *callable,
                           PyObject *const *args, size_t nargsf,
                           PyObject *kwnames)
{
    vectorcallfunc func;
    PyObject *res;

    assert(kwnames == NULL || PyTuple_Check(kwnames));
    assert(args != NULL || PyVectorcall_NARGS(nargsf) == 0);

    func = _PyVectorcall_FunctionInline(callable);
    if (func == NULL) {
        Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
        return _PyObject_MakeTpCall(tstate, callable, args, nargs, kwnames);
    }
    res = func(callable, args, nargsf, kwnames);
    return _Py_CheckFunctionResult(tstate, callable, res, NULL);
}


static inline PyObject *
_PyObject_CallNoArgsTstate(PyThreadState *tstate, PyObject *func) {
    return _PyObject_VectorcallTstate(tstate, func, NULL, 0, NULL);
}


// Private static inline function variant of public PyObject_CallNoArgs()
static inline PyObject *
_PyObject_CallNoArgs(PyObject *func) {
    PyThreadState *tstate = _PyThreadState_GET();
    return _PyObject_VectorcallTstate(tstate, func, NULL, 0, NULL);
}


static inline PyObject *
_PyObject_FastCallTstate(PyThreadState *tstate, PyObject *func, PyObject *const *args, Py_ssize_t nargs)
{
    return _PyObject_VectorcallTstate(tstate, func, args, (size_t)nargs, NULL);
}


#ifdef __cplusplus
}
#endif
#endif /* !Py_INTERNAL_CALL_H */
Name
Size
Permissions
Options
pycore_abstract.h
0.597 KB
-rw-r--r--
pycore_accu.h
1.1 KB
-rw-r--r--
pycore_asdl.h
2.96 KB
-rw-r--r--
pycore_ast.h
28.628 KB
-rw-r--r--
pycore_ast_state.h
6.396 KB
-rw-r--r--
pycore_atomic.h
16.581 KB
-rw-r--r--
pycore_atomic_funcs.h
2.381 KB
-rw-r--r--
pycore_bitutils.h
5.92 KB
-rw-r--r--
pycore_blocks_output_buffer.h
8.484 KB
-rw-r--r--
pycore_bytes_methods.h
3.305 KB
-rw-r--r--
pycore_bytesobject.h
1.391 KB
-rw-r--r--
pycore_call.h
3.394 KB
-rw-r--r--
pycore_ceval.h
4.306 KB
-rw-r--r--
pycore_code.h
15.557 KB
-rw-r--r--
pycore_compile.h
1.021 KB
-rw-r--r--
pycore_condvar.h
2.772 KB
-rw-r--r--
pycore_context.h
1.21 KB
-rw-r--r--
pycore_dict.h
5.551 KB
-rw-r--r--
pycore_dtoa.h
0.688 KB
-rw-r--r--
pycore_emscripten_signal.h
0.549 KB
-rw-r--r--
pycore_exceptions.h
0.822 KB
-rw-r--r--
pycore_fileutils.h
7.229 KB
-rw-r--r--
pycore_floatobject.h
1.276 KB
-rw-r--r--
pycore_format.h
0.469 KB
-rw-r--r--
pycore_frame.h
7.39 KB
-rw-r--r--
pycore_function.h
0.403 KB
-rw-r--r--
pycore_gc.h
6.733 KB
-rw-r--r--
pycore_genobject.h
1.137 KB
-rw-r--r--
pycore_getopt.h
0.479 KB
-rw-r--r--
pycore_gil.h
1.528 KB
-rw-r--r--
pycore_global_objects.h
1.402 KB
-rw-r--r--
pycore_global_strings.h
12.676 KB
-rw-r--r--
pycore_hamt.h
3.609 KB
-rw-r--r--
pycore_hashtable.h
4.099 KB
-rw-r--r--
pycore_import.h
0.726 KB
-rw-r--r--
pycore_initconfig.h
5.664 KB
-rw-r--r--
pycore_interp.h
6.515 KB
-rw-r--r--
pycore_interpreteridobject.h
0.549 KB
-rw-r--r--
pycore_list.h
1.32 KB
-rw-r--r--
pycore_long.h
3.434 KB
-rw-r--r--
pycore_moduleobject.h
1.016 KB
-rw-r--r--
pycore_namespace.h
0.383 KB
-rw-r--r--
pycore_object.h
9.802 KB
-rw-r--r--
pycore_opcode.h
18.541 KB
-rw-r--r--
pycore_parser.h
0.611 KB
-rw-r--r--
pycore_pathconfig.h
0.592 KB
-rw-r--r--
pycore_pyarena.h
2.669 KB
-rw-r--r--
pycore_pyerrors.h
2.436 KB
-rw-r--r--
pycore_pyhash.h
0.201 KB
-rw-r--r--
pycore_pylifecycle.h
3.425 KB
-rw-r--r--
pycore_pymath.h
9.214 KB
-rw-r--r--
pycore_pymem.h
3.621 KB
-rw-r--r--
pycore_pystate.h
4.15 KB
-rw-r--r--
pycore_runtime.h
5.848 KB
-rw-r--r--
pycore_runtime_init.h
47.941 KB
-rw-r--r--
pycore_signal.h
0.915 KB
-rw-r--r--
pycore_sliceobject.h
0.328 KB
-rw-r--r--
pycore_strhex.h
0.915 KB
-rw-r--r--
pycore_structseq.h
0.566 KB
-rw-r--r--
pycore_symtable.h
5.506 KB
-rw-r--r--
pycore_sysmodule.h
0.591 KB
-rw-r--r--
pycore_traceback.h
3.419 KB
-rw-r--r--
pycore_tuple.h
2.04 KB
-rw-r--r--
pycore_typeobject.h
1.131 KB
-rw-r--r--
pycore_ucnhash.h
0.877 KB
-rw-r--r--
pycore_unicodeobject.h
1.676 KB
-rw-r--r--
pycore_unionobject.h
0.662 KB
-rw-r--r--
pycore_warnings.h
0.723 KB
-rw-r--r--