[Christian Tismer] > How about > > if ( 0 || > || VISIT(self->readline) > || VISIT(self->read) > || VISIT(self->file) > ) > return 1; Well, "0 ||" doesn't do anything at all, it doesn't return the return value of the visit() callback if a non-zero one is returned, it's clumsier to write and read than what Jim checked in, and since Py_VISIT does exactly one thing in exactly one context (tp_traverse implementations), I have no fear at all of the "hidden" return. Almost all tp_traverse implementations can (and should) look exactly alike: Py_VISIT(member1); Py_VISIT(member2); ... Py_VISIT(member_n); return 0; and Py_VISIT has no other use case. Why complicate it? Sticking a "return" in a general purpose macro could be horrid indeed; Py_VISIT is so specific, and of such limited use, there's simply nothing to fear here. It makes writing "correct by casual inspection" tp_traverse implementations dead easy, and has no effect on anything else. A continued +1 for the simplest thing that could possibly work here (which is happily a 100% solution in this case too).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4