On Wed, 2004-02-25 at 15:41, Andi Gutmans wrote:
> Quick reminder...
> If you have any bugs to fix, please fix them in the coming days.

Not a bug, but a feature request - make set_exception_handler() accept
the meta-type "callable" instead of only strings.

- Timm
Index: Zend/zend_builtin_functions.c
===================================================================
RCS file: /repository/ZendEngine2/zend_builtin_functions.c,v
retrieving revision 1.223
diff -u -r1.223 zend_builtin_functions.c
--- Zend/zend_builtin_functions.c	25 Feb 2004 21:06:59 -0000	1.223
+++ Zend/zend_builtin_functions.c	26 Feb 2004 03:13:17 -0000
@@ -1000,18 +1000,26 @@
 /* }}} */
 
 
-/* {{{ proto string set_exception_handler(string exception_handler)
+/* {{{ proto string set_exception_handler(callable exception_handler)
    Sets a user-defined exception handler function.  Returns the previously defined exception handler, or false on error */
 ZEND_FUNCTION(set_exception_handler)
 {
 	zval **exception_handler;
+	char *exception_handler_name = NULL;
 	zend_bool had_orig_exception_handler=0;
 
 	if (ZEND_NUM_ARGS()!=1 || zend_get_parameters_ex(1, &exception_handler)==FAILURE) {
 		ZEND_WRONG_PARAM_COUNT();
 	}
 
-	convert_to_string_ex(exception_handler);
+	if (!zend_is_callable(*exception_handler, 0, &exception_handler_name)) {
+		zend_error(E_WARNING, "%s() expects the argument (%s) to be a valid callback",
+				   get_active_function_name(TSRMLS_C), exception_handler_name?exception_handler_name:"unknown");
+		efree(exception_handler_name);
+		return;
+	}
+	efree(exception_handler_name);
+
 	if (EG(user_exception_handler)) {
 		had_orig_exception_handler = 1;
 		*return_value = *EG(user_exception_handler);

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to