helly           Fri Dec 16 22:17:33 2005 EDT

  Modified files:              (Branch: PHP_5_1)
    /php-src/ext/spl    php_spl.c 
  Log:
  - Provide better error message when using illegal function 'pointers'
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/spl/php_spl.c?r1=1.52.2.17&r2=1.52.2.18&diff_format=u
Index: php-src/ext/spl/php_spl.c
diff -u php-src/ext/spl/php_spl.c:1.52.2.17 php-src/ext/spl/php_spl.c:1.52.2.18
--- php-src/ext/spl/php_spl.c:1.52.2.17 Tue Dec  6 02:00:14 2005
+++ php-src/ext/spl/php_spl.c   Fri Dec 16 22:17:32 2005
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_spl.c,v 1.52.2.17 2005/12/06 02:00:14 sniper Exp $ */
+/* $Id: php_spl.c,v 1.52.2.18 2005/12/16 22:17:32 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
        #include "config.h"
@@ -403,7 +403,7 @@
                        }
                }
        
-               if (!zend_is_callable_ex(zcallable, 
IS_CALLABLE_CHECK_IS_STATIC, &func_name, &func_name_len, &alfi.ce, 
&alfi.func_ptr, &obj_ptr TSRMLS_CC)) {
+               if (!zend_is_callable_ex(zcallable, IS_CALLABLE_STRICT, 
&func_name, &func_name_len, &alfi.ce, &alfi.func_ptr, &obj_ptr TSRMLS_CC)) {
                        if (Z_TYPE_P(zcallable) == IS_ARRAY) {
                                if (!obj_ptr && alfi.func_ptr && 
!(alfi.func_ptr->common.fn_flags & ZEND_ACC_STATIC)) {
                                        if (do_throw) {
@@ -413,13 +413,13 @@
                                        return;
                                }
                                else if (do_throw) {
-                                       
zend_throw_exception_ex(spl_ce_LogicException, 0 TSRMLS_CC, "Passed array does 
not specify a callable %smethod", !obj_ptr ? "static " : "");
+                                       
zend_throw_exception_ex(spl_ce_LogicException, 0 TSRMLS_CC, "Passed array does 
not specify %s %smethod", alfi.func_ptr ? "a callable" : "an existing", 
!obj_ptr ? "static " : "");
                                }
                                efree(func_name);
                                return;
                        } else if (Z_TYPE_P(zcallable) == IS_STRING) {
                                if (do_throw) {
-                                       
zend_throw_exception_ex(spl_ce_LogicException, 0 TSRMLS_CC, "Function '%s' not 
found", func_name);
+                                       
zend_throw_exception_ex(spl_ce_LogicException, 0 TSRMLS_CC, "Function '%s' not 
%s", func_name, alfi.func_ptr ? "callable" : "found");
                                }
                                efree(func_name);
                                return;

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to