All pastes #317353 Raw Copy code Copy link Edit

Unnamed

public text v1 · immutable
#317353 ·published 2007-01-15 15:24 UTC
rendered paste body
--- assert.c.old	2007-01-01 11:31:10.000000000 +0000
+++ assert.c	2007-01-15 15:24:11.906250000 +0000
@@ -76,6 +76,14 @@
 	return SUCCESS;
 }
 
+static void set_callback(TSRMLS_D)
+{
+	if (!ASSERTG(callback) && ASSERTG(cb)) {
+		MAKE_STD_ZVAL(ASSERTG(callback));
+		ZVAL_STRING(ASSERTG(callback), ASSERTG(cb), 1);
+	}
+}
+
 PHP_INI_BEGIN()
 	 STD_PHP_INI_ENTRY("assert.active",	    "1",	PHP_INI_ALL,	OnUpdateLong,		active,	 			zend_assert_globals,		assert_globals)
 	 STD_PHP_INI_ENTRY("assert.bail",	    "0",	PHP_INI_ALL,	OnUpdateLong,		bail,	 			zend_assert_globals,		assert_globals)
@@ -187,10 +195,7 @@
 		RETURN_TRUE;
 	}
 
-	if (!ASSERTG(callback) && ASSERTG(cb)) {
-		MAKE_STD_ZVAL(ASSERTG(callback));
-		ZVAL_STRING(ASSERTG(callback), ASSERTG(cb), 1);
-	}
+	set_callback(TSRMLS_C);
 
 	if (ASSERTG(callback)) {
 		zval *args[3];
@@ -286,6 +291,14 @@
 		break;
 
 	case ASSERT_CALLBACK:
+		set_callback(TSRMLS_C);
+
+		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 +306,7 @@
 			ASSERTG(callback) = *value;
 			zval_add_ref(value);
 		}
-		RETURN_TRUE;
+		return;
 		break;
 
 	default: