+
+void gdcmPythonVoidFunc(void *arg)
+{
+ PyObject *arglist, *result;
+ PyObject *func = (PyObject *)arg;
+
+ arglist = Py_BuildValue("()");
+
+ result = PyEval_CallObject(func, arglist);
+ Py_DECREF(arglist);
+
+ if (result)
+ {
+ Py_XDECREF(result);
+ }
+ else
+ {
+ if (PyErr_ExceptionMatches(PyExc_KeyboardInterrupt))
+ {
+ std::cerr << "Caught a Ctrl-C within python, exiting program.\n";
+ Py_Exit(1);
+ }
+ PyErr_Print();
+ }
+}
+
+void gdcmPythonVoidFuncArgDelete(void *arg)
+{
+ PyObject *func = (PyObject *)arg;
+ if (func)
+ {
+ Py_DECREF(func);
+ }
+}
+