Claifications: visit procs are supplied by the core, users aren't

expected to write their own.  A NULL "object" must not be passed to
the visit callback.  A non-zero return from a visit proc isn't
necessarily an error return (and it doesn't matter to the tp_traverse
code *what* it might signify, their only job is to return it).
This commit is contained in:
Tim Peters 2004-07-13 17:18:10 +00:00
parent 0751d554c0
commit e45d5a3b00
1 changed files with 6 additions and 3 deletions

View File

@ -1645,7 +1645,9 @@ type:
Type of the visitor function passed to the \member{tp_traverse} Type of the visitor function passed to the \member{tp_traverse}
handler. The function should be called with an object to traverse handler. The function should be called with an object to traverse
as \var{object} and the third parameter to the \member{tp_traverse} as \var{object} and the third parameter to the \member{tp_traverse}
handler as \var{arg}. handler as \var{arg}. The Python core uses several visitor functions
to implement cyclic garbage detection; it's not expected that users will
need to write their own visitor functions.
\end{ctypedesc} \end{ctypedesc}
The \member{tp_traverse} handler must have the following type: The \member{tp_traverse} handler must have the following type:
@ -1655,8 +1657,9 @@ The \member{tp_traverse} handler must have the following type:
Traversal function for a container object. Implementations must Traversal function for a container object. Implementations must
call the \var{visit} function for each object directly contained by call the \var{visit} function for each object directly contained by
\var{self}, with the parameters to \var{visit} being the contained \var{self}, with the parameters to \var{visit} being the contained
object and the \var{arg} value passed to the handler. If object and the \var{arg} value passed to the handler. The \var{visit}
\var{visit} returns a non-zero value then an error has occurred and function must not be called with a \NULL{} object argument. If
\var{visit} returns a non-zero value
that value should be returned immediately. that value should be returned immediately.
\end{ctypedesc} \end{ctypedesc}