23 void TPyArg::CallConstructor( PyObject*& pyself, PyObject* pyclass,
const std::vector<TPyArg>& args )
25 int nArgs = args.size();
26 PyObject* pyargs = PyTuple_New( nArgs );
27 for (
int i = 0; i < nArgs; ++i )
28 PyTuple_SET_ITEM( pyargs, i, (PyObject*)args[i] );
29 pyself = PyObject_Call( pyclass, pyargs, NULL );
34 void CallConstructor( PyObject*& pyself, PyObject* pyclass )
36 PyObject* pyargs = PyTuple_New( 0 );
37 pyself = PyObject_Call( pyclass, pyargs, NULL );
42 PyObject* TPyArg::CallMethod( PyObject* pymeth,
const std::vector<TPyArg>& args )
44 int nArgs = args.size();
45 PyObject* pyargs = PyTuple_New( nArgs );
46 for (
int i = 0; i < nArgs; ++i )
47 PyTuple_SET_ITEM( pyargs, i, (PyObject*)args[i] );
48 PyObject* result = PyObject_Call( pymeth, pyargs, NULL );
54 void TPyArg::CallDestructor( PyObject*& pyself, PyObject*,
const std::vector<TPyArg>& )
60 void TPyArg::CallDestructor( PyObject*& pyself )
66 TPyArg::TPyArg( PyObject* pyobject )
69 Py_XINCREF( pyobject );
76 TPyArg::TPyArg( Int_t value )
78 fPyObject = PyInt_FromLong( value );
84 TPyArg::TPyArg( Long_t value )
86 fPyObject = PyLong_FromLong( value );
92 TPyArg::TPyArg( Double_t value )
94 fPyObject = PyFloat_FromDouble( value );
100 TPyArg::TPyArg(
const char* value )
102 fPyObject = PyROOT_PyUnicode_FromString( value );
108 TPyArg::TPyArg(
const TPyArg& s )
110 Py_XINCREF( s.fPyObject );
111 fPyObject = s.fPyObject;
117 TPyArg& TPyArg::operator=(
const TPyArg& s )
120 Py_XINCREF( s.fPyObject );
121 fPyObject = s.fPyObject;
131 Py_XDECREF( fPyObject );
136 TPyArg::operator PyObject*()
const
139 Py_XINCREF( fPyObject );