}
} /* }}} */
+static INLINE void spl_dual_it_require(spl_dual_it_object *intern TSRMLS_DC)
+{
+ if (!intern->inner.iterator) {
+ php_error_docref(NULL TSRMLS_CC, E_ERROR, "The inner constructor wasn't initialized with an iterator instance");
+ }
+}
+
static INLINE void spl_dual_it_free(spl_dual_it_object *intern TSRMLS_DC)
{
+ spl_dual_it_require(intern TSRMLS_CC);
if (intern->inner.iterator && intern->inner.iterator->funcs->invalidate_current) {
intern->inner.iterator->funcs->invalidate_current(intern->inner.iterator TSRMLS_CC);
}
{
if (do_free) {
spl_dual_it_free(intern TSRMLS_CC);
+ } else {
+ spl_dual_it_require(intern TSRMLS_CC);
}
intern->inner.iterator->funcs->move_forward(intern->inner.iterator TSRMLS_CC);
intern->current.pos++;