ROOT
master
Reference Guide
Loading...
Searching...
No Matches
CallContext.cxx
Go to the documentation of this file.
1
// Bindings
2
#include "
CPyCppyy.h
"
3
#include "
CallContext.h
"
4
5
//-----------------------------------------------------------------------------
6
uint32_t &
CPyCppyy::CallContext::GlobalPolicyFlags
()
7
{
8
static
uint32_t flags = 0;
9
return
flags;
10
}
11
12
//-----------------------------------------------------------------------------
13
void
CPyCppyy::CallContext::AddTemporary
(
PyObject
*
pyobj
) {
14
if
(
pyobj
) {
15
if
(!fTemps)
16
fTemps =
new
Temporary
{
pyobj
,
nullptr
};
17
else
{
18
Temporary
* tmp = fTemps;
19
while
(tmp->fNext) tmp = tmp->fNext;
20
tmp->fNext =
new
Temporary
{
pyobj
,
nullptr
};
21
}
22
}
23
}
24
25
//-----------------------------------------------------------------------------
26
void
CPyCppyy::CallContext::Cleanup
() {
27
Temporary
* tmp = fTemps;
28
while
(tmp) {
29
Py_DECREF
(tmp->fPyObject);
30
Temporary
*
tmp2
= tmp->fNext;
31
delete
tmp;
32
tmp =
tmp2
;
33
}
34
fTemps =
nullptr
;
35
}
36
37
//-----------------------------------------------------------------------------
38
bool
CPyCppyy::CallContext::SetGlobalPolicy
(
ECallFlags
toggleFlag
,
bool
enabled
)
39
{
40
auto
&flags = GlobalPolicyFlags();
41
bool
old = flags &
toggleFlag
;
42
if
(
enabled
)
43
flags |=
toggleFlag
;
44
else
45
flags &=
~toggleFlag
;
46
return
old;
47
}
CPyCppyy.h
CallContext.h
PyObject
_object PyObject
Definition
PyMethodBase.h:36
TRangeDynCast
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Definition
TCollection.h:358
ROOT::Detail::TRangeCast
Definition
TCollection.h:311
CPyCppyy::CallContext::Temporary
Definition
CallContext.h:112
CPyCppyy::CallContext::ECallFlags
ECallFlags
Definition
CallContext.h:59
CPyCppyy::CallContext::SetGlobalPolicy
static bool SetGlobalPolicy(ECallFlags e, bool enabled)
Definition
CallContext.cxx:38
CPyCppyy::CallContext::GlobalPolicyFlags
static uint32_t & GlobalPolicyFlags()
Definition
CallContext.cxx:6
CPyCppyy::CallContext::AddTemporary
void AddTemporary(PyObject *pyobj)
Definition
CallContext.cxx:13
CPyCppyy::CallContext::Cleanup
void Cleanup()
Definition
CallContext.cxx:26
bindings
pyroot
cppyy
CPyCppyy
src
CallContext.cxx
ROOT master - Reference Guide Generated on Sun Sep 21 2025 15:07:43 (GVA Time) using Doxygen 1.10.0