FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
cpython/Include/internal/pycore_function.h at 3.13 · python/cpython · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
python
/
cpython
Public
Uh oh!
There was an error while loading.
Please reload this page
.
Notifications
You must be signed in to change notification settings
Fork
35.3k
Star
75k
Code
Issues
5k+
Pull requests
2.6k
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
cpython
/
Include
/
internal
/
pycore_function.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
55 lines (43 loc) · 1.5 KB
Breadcrumbs
cpython
/
Include
/
internal
/
pycore_function.h
Copy path
File metadata and controls
55 lines (43 loc) · 1.5 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#ifndef
Py_INTERNAL_FUNCTION_H
#define
Py_INTERNAL_FUNCTION_H
#ifdef
__cplusplus
extern
"C"
{
#endif
#include
"pycore_lock.h"
#ifndef
Py_BUILD_CORE
# error
"this header requires Py_BUILD_CORE define"
#endif
extern
PyObject
*
_PyFunction_Vectorcall
(
PyObject
*
func
,
PyObject
*
const
*
stack
,
size_t
nargsf
,
PyObject
*
kwnames
);
#define
FUNC_MAX_WATCHERS
8
#define
FUNC_VERSION_CACHE_SIZE
(1<<12)
/* Must be a power of 2 */
struct
_func_version_cache_item
{
PyFunctionObject
*
func
;
PyObject
*
code
;
};
struct
_py_func_state
{
#ifdef
Py_GIL_DISABLED
// Protects next_version
PyMutex
mutex
;
#endif
uint32_t
next_version
;
// Borrowed references to function and code objects whose
// func_version % FUNC_VERSION_CACHE_SIZE
// once was equal to the index in the table.
// They are cleared when the function or code object is deallocated.
struct
_func_version_cache_item
func_version_cache
[
FUNC_VERSION_CACHE_SIZE
];
};
extern
PyFunctionObject
*
_PyFunction_FromConstructor
(
PyFrameConstructor
*
constr
);
extern
uint32_t
_PyFunction_GetVersionForCurrentState
(
PyFunctionObject
*
func
);
PyAPI_FUNC
(
void
)
_PyFunction_SetVersion
(
PyFunctionObject
*
func
,
uint32_t
version
);
void
_PyFunction_ClearCodeByVersion
(
uint32_t
version
);
PyFunctionObject
*
_PyFunction_LookupByVersion
(
uint32_t
version
,
PyObject
*
*
p_code
);
extern
PyObject
*
_Py_set_function_type_params
(
PyThreadState
*
unused
,
PyObject
*
func
,
PyObject
*
type_params
);
#ifdef
__cplusplus
}
#endif
#endif
/* !Py_INTERNAL_FUNCTION_H */
Back
|
FazBrowse Home
|
New Git URL