ROOT
git-r3/HEAD
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
CPyCppyy::CallContext::Temporary
Definition
CallContext.h:112
CPyCppyy::CallContext::Temporary::fPyObject
PyObject * fPyObject
Definition
CallContext.h:112
CPyCppyy::CallContext::Temporary::fNext
Temporary * fNext
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::fTemps
Temporary * fTemps
Definition
CallContext.h:118
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
ROOTgit-r3/HEAD - Reference Guide Generated on
(GVA Time) using Doxygen 1.16.1