ROOT
master
Reference Guide
Loading...
Searching...
No Matches
CallContext.cxx
Go to the documentation of this file.
1
// Bindings
2
#include "
cpyrt.h
"
3
4
using namespace
cppjit
;
5
#include "
CallContext.h
"
6
7
//-----------------------------------------------------------------------------
8
uint32_t&
cpyrt::CallContext::GlobalPolicyFlags
() {
9
static
uint32_t flags = 0;
10
return
flags;
11
}
12
13
//-----------------------------------------------------------------------------
14
void
cpyrt::CallContext::AddTemporary
(
PyObject
* pyobj) {
15
if
(pyobj) {
16
if
(!fTemps)
17
fTemps =
new
Temporary
{pyobj,
nullptr
};
18
else
{
19
Temporary
* tmp = fTemps;
20
while
(tmp->
fNext
)
21
tmp = tmp->
fNext
;
22
tmp->
fNext
=
new
Temporary
{pyobj,
nullptr
};
23
}
24
}
25
}
26
27
//-----------------------------------------------------------------------------
28
void
cpyrt::CallContext::Cleanup
() {
29
Temporary
* tmp = fTemps;
30
while
(tmp) {
31
Py_DECREF(tmp->
fPyObject
);
32
Temporary
* tmp2 = tmp->
fNext
;
33
delete
tmp;
34
tmp = tmp2;
35
}
36
fTemps =
nullptr
;
37
}
38
39
//-----------------------------------------------------------------------------
40
bool
cpyrt::CallContext::SetGlobalPolicy
(
ECallFlags
toggleFlag,
bool
enabled) {
41
auto
& flags = GlobalPolicyFlags();
42
bool
old = flags & toggleFlag;
43
if
(enabled)
44
flags |= toggleFlag;
45
else
46
flags &= ~toggleFlag;
47
return
old;
48
}
CallContext.h
PyObject
_object PyObject
Definition
PyMethodBase.h:36
cpyrt.h
cppjit
Definition
API.cxx:34
cppjit::cpyrt::CallContext::Temporary
Definition
CallContext.h:91
cppjit::cpyrt::CallContext::Temporary::fPyObject
PyObject * fPyObject
Definition
CallContext.h:92
cppjit::cpyrt::CallContext::Temporary::fNext
Temporary * fNext
Definition
CallContext.h:93
cppjit::cpyrt::CallContext::SetGlobalPolicy
static bool SetGlobalPolicy(ECallFlags e, bool enabled)
Definition
CallContext.cxx:40
cppjit::cpyrt::CallContext::AddTemporary
void AddTemporary(PyObject *pyobj)
Definition
CallContext.cxx:14
cppjit::cpyrt::CallContext::Cleanup
void Cleanup()
Definition
CallContext.cxx:28
cppjit::cpyrt::CallContext::ECallFlags
ECallFlags
Definition
CallContext.h:31
cppjit::cpyrt::CallContext::GlobalPolicyFlags
static uint32_t & GlobalPolicyFlags()
Definition
CallContext.cxx:8
bindings
pyroot
cppjit
src
cpyrt
CallContext.cxx
ROOTmaster - Reference Guide Generated on Tue Oct 20 2026 15:12:45 (GVA Time) using Doxygen 1.10.0