本文整理汇总了C++中PyTypeObject::tp_traverse方法的典型用法代码示例。如果您正苦于以下问题:C++ PyTypeObject::tp_traverse方法的具体用法?C++ PyTypeObject::tp_traverse怎么用?C++ PyTypeObject::tp_traverse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyTypeObject
的用法示例。
在下文中一共展示了PyTypeObject::tp_traverse方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
static int
WorkRequest_tp_traverse(WorkRequest *self, visitproc visit, void *arg)
{
Py_VISIT(self->work_cb);
Py_VISIT(self->done_cb);
return RequestType.tp_traverse((PyObject *)self, visit, arg);
}
示例2: return
static int
exc_traverse (zbarException *self,
visitproc visit,
void *arg)
{
Py_VISIT(self->obj);
PyTypeObject *base = (PyTypeObject*)PyExc_Exception;
return(base->tp_traverse((PyObject*)self, visit, arg));
}
示例3: __Pyx_call_next_tp_traverse
static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse) {
PyTypeObject* type = Py_TYPE(obj);
/* try to find the first parent type that has a different tp_traverse() function */
while (type && type->tp_traverse != current_tp_traverse)
type = type->tp_base;
while (type && type->tp_traverse == current_tp_traverse)
type = type->tp_base;
if (type && type->tp_traverse)
return type->tp_traverse(obj, v, a);
// FIXME: really ignore?
return 0;
}