ROOT
Version master
master
v6.34
v6.32
v6.30
v6.28
v6.26
v6.24
v6.22
v6.20
v6.18
v6.16
v6.14
v6.12
v6.10
v6.08
v6.06
v6.04
Reference Guide
▼
ROOT
ROOT Reference Documentation
Tutorials
►
Functional Parts
►
Namespaces
►
All Classes
▼
Files
▼
File List
▼
bindings
▼
pyroot
▼
cppyy
►
cppyy
►
cppyy-backend
▼
CPyCppyy
►
include
▼
src
►
API.cxx
CallContext.cxx
►
CallContext.h
►
Converters.cxx
►
Converters.h
CPPClassMethod.cxx
►
CPPClassMethod.h
CPPConstructor.cxx
►
CPPConstructor.h
►
CPPDataMember.cxx
►
CPPDataMember.h
►
CPPEnum.cxx
►
CPPEnum.h
►
CPPExcInstance.cxx
►
CPPExcInstance.h
CPPFunction.cxx
►
CPPFunction.h
►
CPPGetSetItem.cxx
►
CPPGetSetItem.h
►
CPPInstance.cxx
►
CPPInstance.h
►
CPPMethod.cxx
►
CPPMethod.h
CPPOperator.cxx
►
CPPOperator.h
►
CPPOverload.cxx
►
CPPOverload.h
►
CPPScope.cxx
►
CPPScope.h
►
Cppyy.h
►
CPyCppyy.h
►
CPyCppyyModule.cxx
►
CustomPyTypes.cxx
►
CustomPyTypes.h
►
DeclareConverters.h
►
DeclareExecutors.h
►
Dimensions.h
►
Dispatcher.cxx
►
Dispatcher.h
►
DispatchPtr.cxx
►
Executors.cxx
►
Executors.h
►
LowLevelViews.cxx
►
LowLevelViews.h
►
MemoryRegulator.cxx
►
MemoryRegulator.h
►
ProxyWrappers.cxx
►
ProxyWrappers.h
►
PyCallable.h
►
PyException.cxx
PyObjectDir27.inc
►
PyResult.cxx
►
PyStrings.cxx
►
PyStrings.h
►
Pythonize.cxx
►
Pythonize.h
►
SignalTryCatch.h
►
TemplateProxy.cxx
►
TemplateProxy.h
►
TPyArg.cxx
TPyClassGenerator.cxx
TPyClassGenerator.h
►
TupleOfInstances.cxx
►
TupleOfInstances.h
►
TypeManip.cxx
►
TypeManip.h
►
Utility.cxx
►
Utility.h
►
pythonizations
►
r
►
tpython
►
core
►
documentation
►
geom
►
graf2d
►
graf3d
►
gui
►
hist
►
io
►
main
►
master
►
math
►
montecarlo
►
net
►
proof
►
roofit
►
sql
►
tmva
►
tree
►
tutorials
►
File Members
Release Notes
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
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
//- data _____________________________________________________________________
7
namespace
CPyCppyy
{
8
9
CallContext::ECallFlags
CallContext::sMemoryPolicy
=
CallContext::kUseStrict
;
10
// this is just a data holder for linking; actual value is set in CPyCppyyModule.cxx
11
CallContext::ECallFlags
CallContext::sSignalPolicy
=
CallContext::kNone
;
12
13
}
// namespace CPyCppyy
14
15
//-----------------------------------------------------------------------------
16
void
CPyCppyy::CallContext::AddTemporary
(
PyObject
*
pyobj
) {
17
if
(
pyobj
) {
18
if
(!
fTemps
)
19
fTemps
=
new
Temporary
{
pyobj
,
nullptr
};
20
else
{
21
Temporary
* tmp =
fTemps
;
22
while
(tmp->fNext) tmp = tmp->fNext;
23
tmp->fNext =
new
Temporary
{
pyobj
,
nullptr
};
24
}
25
}
26
}
27
28
//-----------------------------------------------------------------------------
29
void
CPyCppyy::CallContext::Cleanup
() {
30
Temporary
* tmp = fTemps;
31
while
(tmp) {
32
Py_DECREF
(tmp->fPyObject);
33
Temporary
*
tmp2
= tmp->fNext;
34
delete
tmp;
35
tmp =
tmp2
;
36
}
37
fTemps =
nullptr
;
38
}
39
40
//-----------------------------------------------------------------------------
41
bool
CPyCppyy::CallContext::SetMemoryPolicy
(
ECallFlags
e
)
42
{
43
// Set the global memory policy, which affects object ownership when objects
44
// are passed as function arguments.
45
if
(kUseHeuristics ==
e
||
e
== kUseStrict) {
46
sMemoryPolicy =
e
;
47
return
true
;
48
}
49
return
false
;
50
}
51
52
//-----------------------------------------------------------------------------
53
bool
CPyCppyy::CallContext::SetGlobalSignalPolicy
(
bool
setProtected
)
54
{
55
// Set the global signal policy, which determines whether a jmp address
56
// should be saved to return to after a C++ segfault.
57
bool
old = sSignalPolicy == kProtected;
58
sSignalPolicy =
setProtected
? kProtected :
kNone
;
59
return
old;
60
}
61
CPyCppyy.h
CallContext.h
PyObject
_object PyObject
Definition
PyMethodBase.h:43
e
#define e(i)
Definition
RSha256.hxx:103
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
Definition
callcontext.h:10
CPyCppyy::kNone
@ kNone
Definition
CPPDataMember.cxx:23
CPyCppyy::CallContext::Temporary
Definition
CallContext.h:111
CPyCppyy::CallContext::sMemoryPolicy
static ECallFlags sMemoryPolicy
Definition
CallContext.h:78
CPyCppyy::CallContext::SetGlobalSignalPolicy
static bool SetGlobalSignalPolicy(bool setProtected)
Definition
CallContext.cxx:53
CPyCppyy::CallContext::ECallFlags
ECallFlags
Definition
CallContext.h:55
CPyCppyy::CallContext::kUseStrict
@ kUseStrict
Definition
CallContext.h:66
CPyCppyy::CallContext::kNone
@ kNone
Definition
CallContext.h:56
CPyCppyy::CallContext::SetMemoryPolicy
static bool SetMemoryPolicy(ECallFlags e)
Definition
CallContext.cxx:41
CPyCppyy::CallContext::sSignalPolicy
static ECallFlags sSignalPolicy
Definition
CallContext.h:85
CPyCppyy::CallContext::fTemps
Temporary * fTemps
Definition
CallContext.h:117
CPyCppyy::CallContext::AddTemporary
void AddTemporary(PyObject *pyobj)
Definition
CallContext.cxx:16
CPyCppyy::CallContext::Cleanup
void Cleanup()
Definition
CallContext.cxx:29
bindings
pyroot
cppyy
CPyCppyy
src
CallContext.cxx
ROOT master - Reference Guide Generated on Thu Feb 27 2025 14:45:06 (GVA Time) using Doxygen 1.10.0