]> granicus.if.org Git - php/commitdiff
Added missing warning message
authorDmitry Stogov <dmitry@php.net>
Thu, 10 Jan 2008 09:38:23 +0000 (09:38 +0000)
committerDmitry Stogov <dmitry@php.net>
Thu, 10 Jan 2008 09:38:23 +0000 (09:38 +0000)
Zend/zend_execute_API.c
ext/reflection/tests/bug42976.phpt
ext/standard/tests/general_functions/bug41970.phpt

index fa7110caa89799906aa68cd371543dd617a8b655..d5a323de6a681075df2eba79435e0fafcdfdedf3 100644 (file)
@@ -944,6 +944,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
 
                if (ARG_SHOULD_BE_SENT_BY_REF(EX(function_state).function, i + 1)
                        && !PZVAL_IS_REF(*fci->params[i])) {
+
                        if (Z_REFCOUNT_PP(fci->params[i]) > 1) {
                                zval *new_zval;
 
@@ -958,8 +959,14 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
                                                zval_ptr_dtor(&method_name);
                                                zval_ptr_dtor(&params_array);
                                        }
+                                       zend_error(E_WARNING, "Parameter %d to %s%s%s() expected to be a reference, value given",
+                                               i+1,
+                                               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);
                                        return FAILURE;
                                }
+
                                ALLOC_ZVAL(new_zval);
                                *new_zval = **fci->params[i];
                                zval_copy_ctor(new_zval);
index 38aed3a400f34ad7602507e13465619c7a271927..3669d957d3b3216d992090872053eab3333e41dc 100644 (file)
@@ -26,9 +26,13 @@ echo "Done\n";
 --EXPECTF--    
 string(9) "x.changed"
 
-Warning: Invocation of C's constructor failed in %s/bug42976.php on line %d
+Warning: Parameter 1 to C::__construct() expected to be a reference, value given in %sbug42976.php on line 15
+
+Warning: Invocation of C's constructor failed in %sbug42976.php on line 15
 string(10) "x.original"
 
-Warning: Invocation of C's constructor failed in %s/bug42976.php on line %d
+Warning: Parameter 1 to C::__construct() expected to be a reference, value given in %sbug42976.php on line 18
+
+Warning: Invocation of C's constructor failed in %sbug42976.php on line 18
 string(10) "x.original"
 Done
index cc942ffa64ebea462b37dfaa71271dcc7395a2c2..17461a312ba3786b941876d125f049d584d122fa 100644 (file)
@@ -12,13 +12,16 @@ var_dump(call_user_func("strlen", $a));
 
 echo "Done\n";
 ?>
---EXPECTF--    
+--EXPECTF--
+Warning: Parameter 1 to sort() expected to be a reference, value given in %sbug41970.php on line 5
 NULL
 
-Notice: Array to string conversion in %s on line %d
+Notice: Array to string conversion in %sbug41970.php on line 6
 int(5)
+
+Warning: Parameter 1 to sort() expected to be a reference, value given in %sbug41970.php on line 7
 NULL
 
-Notice: Array to string conversion in %s on line %d
+Notice: Array to string conversion in %sbug41970.php on line 8
 int(5)
 Done