\cfunction{PyString_FromString()} data conversion routine.
\begin{verbatim}
- pDict = PyModule_GetDict(pModule);
- /* pDict is a borrowed reference */
-
- pFunc = PyDict_GetItemString(pDict, argv[2]);
- /* pFun is a borrowed reference */
+ pFunc = PyObject_GetAttrString(pModule, argv[2]);
+ /* pFunc is a new reference */
if (pFunc && PyCallable_Check(pFunc)) {
...
}
+ Py_XDECREF(pFunc);
\end{verbatim}
-Once the script is loaded, its dictionary is retrieved with
-\cfunction{PyModule_GetDict()}. The dictionary is then searched using
-the normal dictionary access routines for the function name. If the
-name exists, and the object retunred is callable, you can safely
-assume that it is a function. The program then proceeds by
-constructing a tuple of arguments as normal. The call to the python
-function is then made with:
+Once the script is loaded, the name we're looking for is retrieved
+using \cfunction{PyObject_GetAttrString()}. If the name exists, and
+the object retunred is callable, you can safely assume that it is a
+function. The program then proceeds by constructing a tuple of
+arguments as normal. The call to the Python function is then made
+with:
\begin{verbatim}
pValue = PyObject_CallObject(pFunc, pArgs);