]> granicus.if.org Git - php/commitdiff
- Synch zend_call_function() with VM function call helper
authorMarcus Boerger <helly@php.net>
Mon, 20 Feb 2006 20:03:36 +0000 (20:03 +0000)
committerMarcus Boerger <helly@php.net>
Mon, 20 Feb 2006 20:03:36 +0000 (20:03 +0000)
Zend/zend_execute_API.c

index d4aa68ba7631d94dcbbad5a43c23024119e736a9..8b82c0f26d9cb347b82831885a8f5e1ca3634731 100644 (file)
@@ -861,11 +861,16 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
                fci->object_pp = fci_cache->object_pp;
        }
        
-       if (EX(function_state).function->common.fn_flags & ZEND_ACC_DEPRECATED) { 
-               zend_error(E_NOTICE, "Function %s%s%s() is deprecated", 
-                       EX(function_state).function->common.scope ? EX(function_state).function->common.scope->name : "",
-                       EX(function_state).function->common.scope ? "::" : "",
-                       EX(function_state).function->common.function_name);
+       if (EX(function_state).function->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) { 
+               if (EX(function_state).function->common.fn_flags & ZEND_ACC_ABSTRACT) {
+                       zend_error_noreturn(E_ERROR, "Cannot call abstract method %v::%v()", EX(function_state).function->common.scope->name, EX(function_state).function->common.function_name);
+               }
+               if (EX(function_state).function->common.fn_flags & ZEND_ACC_DEPRECATED) { 
+                       zend_error(E_NOTICE, "Function %s%s%s() is deprecated", 
+                               EX(function_state).function->common.scope ? EX(function_state).function->common.scope->name : "",
+                               EX(function_state).function->common.scope ? "::" : "",
+                               EX(function_state).function->common.function_name);
+               }
        }
 
        for (i=0; i<fci->param_count; i++) {