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/python312/include/python3.12/internal/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/alt/python312/include/python3.12/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) {
    EVAL_CALL_STAT_INC_IF_FUNCTION(EVAL_CALL_API, 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)
{
    EVAL_CALL_STAT_INC_IF_FUNCTION(EVAL_CALL_API, func);
    return _PyObject_VectorcallTstate(tstate, func, args, (size_t)nargs, NULL);
}

PyObject *const *
_PyStack_UnpackDict(PyThreadState *tstate,
    PyObject *const *args, Py_ssize_t nargs,
    PyObject *kwargs, PyObject **p_kwnames);

void
_PyStack_UnpackDict_Free(PyObject *const *stack, Py_ssize_t nargs,
    PyObject *kwnames);

void _PyStack_UnpackDict_FreeNoDecRef(PyObject *const *stack, PyObject *kwnames);

#ifdef __cplusplus
}
#endif
#endif /* !Py_INTERNAL_CALL_H */
Name
Size
Permissions
Options
pycore_abstract.h
0.597 KB
-rw-r--r--
pycore_asdl.h
2.964 KB
-rw-r--r--
pycore_ast.h
30.555 KB
-rw-r--r--
pycore_ast_state.h
6.591 KB
-rw-r--r--
pycore_atexit.h
1.122 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.308 KB
-rw-r--r--
pycore_call.h
3.828 KB
-rw-r--r--
pycore_ceval.h
5.142 KB
-rw-r--r--
pycore_ceval_state.h
2.68 KB
-rw-r--r--
pycore_code.h
15.464 KB
-rw-r--r--
pycore_compile.h
3.372 KB
-rw-r--r--
pycore_condvar.h
2.841 KB
-rw-r--r--
pycore_context.h
1.271 KB
-rw-r--r--
pycore_descrobject.h
0.487 KB
-rw-r--r--
pycore_dict.h
6.234 KB
-rw-r--r--
pycore_dict_state.h
1.069 KB
-rw-r--r--
pycore_dtoa.h
1.577 KB
-rw-r--r--
pycore_emscripten_signal.h
0.549 KB
-rw-r--r--
pycore_exceptions.h
0.822 KB
-rw-r--r--
pycore_faulthandler.h
2.168 KB
-rw-r--r--
pycore_fileutils.h
7.725 KB
-rw-r--r--
pycore_fileutils_windows.h
2.66 KB
-rw-r--r--
pycore_floatobject.h
1.541 KB
-rw-r--r--
pycore_flowgraph.h
4.521 KB
-rw-r--r--
pycore_format.h
0.469 KB
-rw-r--r--
pycore_frame.h
9.038 KB
-rw-r--r--
pycore_function.h
0.597 KB
-rw-r--r--
pycore_gc.h
7.479 KB
-rw-r--r--
pycore_genobject.h
1.158 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
2.964 KB
-rw-r--r--
pycore_global_objects_fini_generated.h
112.657 KB
-rw-r--r--
pycore_global_strings.h
24.842 KB
-rw-r--r--
pycore_hamt.h
3.654 KB
-rw-r--r--
pycore_hashtable.h
4.186 KB
-rw-r--r--
pycore_import.h
6.209 KB
-rw-r--r--
pycore_initconfig.h
5.572 KB
-rw-r--r--
pycore_instruments.h
2.928 KB
-rw-r--r--
pycore_interp.h
8.873 KB
-rw-r--r--
pycore_intrinsics.h
1.364 KB
-rw-r--r--
pycore_list.h
1.934 KB
-rw-r--r--
pycore_long.h
7.622 KB
-rw-r--r--
pycore_memoryobject.h
0.374 KB
-rw-r--r--
pycore_moduleobject.h
1.164 KB
-rw-r--r--
pycore_namespace.h
0.383 KB
-rw-r--r--
pycore_object.h
14.567 KB
-rw-r--r--
pycore_object_state.h
0.992 KB
-rw-r--r--
pycore_obmalloc.h
26.645 KB
-rw-r--r--
pycore_obmalloc_init.h
2.036 KB
-rw-r--r--
pycore_opcode.h
19.61 KB
-rw-r--r--
pycore_opcode_utils.h
2.623 KB
-rw-r--r--
pycore_parser.h
1.326 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
3.037 KB
-rw-r--r--
pycore_pyhash.h
0.692 KB
-rw-r--r--
pycore_pylifecycle.h
3.286 KB
-rw-r--r--
pycore_pymath.h
8.398 KB
-rw-r--r--
pycore_pymem.h
2.969 KB
-rw-r--r--
pycore_pymem_init.h
2.592 KB
-rw-r--r--
pycore_pystate.h
4.865 KB
-rw-r--r--
pycore_pythread.h
2.026 KB
-rw-r--r--
pycore_range.h
0.338 KB
-rw-r--r--
pycore_runtime.h
8.231 KB
-rw-r--r--
pycore_runtime_init.h
5.773 KB
-rw-r--r--
pycore_runtime_init_generated.h
44.679 KB
-rw-r--r--
pycore_signal.h
2.55 KB
-rw-r--r--
pycore_sliceobject.h
0.404 KB
-rw-r--r--
pycore_strhex.h
0.915 KB
-rw-r--r--
pycore_structseq.h
0.901 KB
-rw-r--r--
pycore_symtable.h
6.87 KB
-rw-r--r--
pycore_sysmodule.h
0.976 KB
-rw-r--r--
pycore_time.h
0.379 KB
-rw-r--r--
pycore_token.h
2.979 KB
-rw-r--r--
pycore_traceback.h
3.419 KB
-rw-r--r--
pycore_tracemalloc.h
3.003 KB
-rw-r--r--
pycore_tuple.h
2.146 KB
-rw-r--r--
pycore_typeobject.h
4.62 KB
-rw-r--r--
pycore_typevarobject.h
0.745 KB
-rw-r--r--
pycore_ucnhash.h
0.877 KB
-rw-r--r--
pycore_unicodeobject.h
2.595 KB
-rw-r--r--
pycore_unicodeobject_generated.h
122.574 KB
-rw-r--r--
pycore_unionobject.h
0.666 KB
-rw-r--r--
pycore_warnings.h
0.723 KB
-rw-r--r--