Mailing List Archive

CVS: python/dist/src/Doc/api abstract.tex,1.8.6.1,1.8.6.2
Update of /cvsroot/python/python/dist/src/Doc/api
In directory usw-pr-cvs1:/tmp/cvs-serv23448/api

Modified Files:
Tag: release22-maint
abstract.tex
Log Message:
Documentation for PyObject_GetIter(), contributed by Greg Chapman
(with only minor changes by Fred).
This closes SF bug #498607.


Index: abstract.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/api/abstract.tex,v
retrieving revision 1.8.6.1
retrieving revision 1.8.6.2
diff -C2 -d -r1.8.6.1 -r1.8.6.2
*** abstract.tex 28 Dec 2001 04:30:38 -0000 1.8.6.1
--- abstract.tex 11 Mar 2002 19:01:58 -0000 1.8.6.2
***************
*** 308,311 ****
--- 308,319 ----
\end{cfuncdesc}

+ \begin{cfuncdesc}{PyObject*}{PyObject_GetIter}{PyObject *o}
+ This is equivalent to the Python expression \samp{iter(\var{o})}.
+ It returns a new iterator for the object argument, or the object
+ itself if the object is already an iterator. Raises
+ \exception{TypeError} and returns \NULL{} if the object cannot be
+ iterated.
+ \end{cfuncdesc}
+

\section{Number Protocol \label{number}}
***************
*** 856,863 ****

\begin{verbatim}
! PyObject *iterator = ...;
PyObject *item;

! while (item = PyIter_Next(iter)) {
/* do something with item */
...
--- 864,875 ----

\begin{verbatim}
! PyObject *iterator = PyObject_GetIter(obj);
PyObject *item;

! if (iterator == NULL) {
! /* propagate error */
! }
!
! while (item = PyIter_Next(iterator)) {
/* do something with item */
...
***************
*** 865,870 ****
Py_DECREF(item);
}
if (PyErr_Occurred()) {
! /* propogate error */
}
else {
--- 877,885 ----
Py_DECREF(item);
}
+
+ Py_DECREF(iterator);
+
if (PyErr_Occurred()) {
! /* propagate error */
}
else {