--- assert.c.old 2007-01-04 10:18:44.031250000 +0000 +++ assert.c 2007-01-04 12:42:06.671875000 +0000 @@ -114,6 +114,17 @@ return SUCCESS; } +PHP_RINIT_FUNCTION(assert) +{ + if (ASSERTG(cb)) { + MAKE_STD_ZVAL(ASSERTG(callback)); + ZVAL_STRING(ASSERTG(callback), ASSERTG(cb), 1); + } + + return SUCCESS; +} + + PHP_RSHUTDOWN_FUNCTION(assert) { if (ASSERTG(callback)) { @@ -187,11 +198,6 @@ RETURN_TRUE; } - if (!ASSERTG(callback) && ASSERTG(cb)) { - MAKE_STD_ZVAL(ASSERTG(callback)); - ZVAL_STRING(ASSERTG(callback), ASSERTG(cb), 1); - } - if (ASSERTG(callback)) { zval *args[3]; zval *retval; @@ -286,6 +292,11 @@ break; case ASSERT_CALLBACK: + if (ASSERTG(callback) != NULL) { + RETVAL_ZVAL(ASSERTG(callback), 1, 0); + } else { + RETVAL_NULL(); + } if (ac == 2) { if (ASSERTG(callback)) { zval_ptr_dtor(&ASSERTG(callback)); @@ -293,7 +304,7 @@ ASSERTG(callback) = *value; zval_add_ref(value); } - RETURN_TRUE; + return; break; default: