]> granicus.if.org Git - php/commitdiff
Removed wrong warning message
authorDmitry Stogov <dmitry@php.net>
Tue, 20 Jan 2009 13:22:26 +0000 (13:22 +0000)
committerDmitry Stogov <dmitry@php.net>
Tue, 20 Jan 2009 13:22:26 +0000 (13:22 +0000)
Zend/tests/bug47165.phpt
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/standard/tests/array/extract_variation9.phpt

index 343c98c1ee4030c134f76e043ae0291ab6e9333d..2cf648d85514838c74dd2068faad9fcca5807490 100644 (file)
@@ -14,7 +14,5 @@ class Foo {
 extract(Foo::bar());
 echo "ok\n";
 ?>
---EXPECTF--
-
-Strict Standards: Only variables should be passed by reference in %sbug47165.php on line 11
+--EXPECT--
 ok
index e6fc233018a8617523852a7f7f744a0bcae40112..e83e48ff14edc52cb261d52e047ba3f60fbb26f5 100644 (file)
@@ -2218,7 +2218,7 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{
                                if (op == ZEND_SEND_VAR && zend_is_function_or_method_call(param)) {
                                        /* Method call */
                                        op = ZEND_SEND_VAR_NO_REF;
-                                       send_function = ZEND_ARG_SEND_FUNCTION;
+                                       send_function = ZEND_ARG_SEND_FUNCTION | ZEND_ARG_SEND_SILENT;
                                }
                        } else {
                                op = ZEND_SEND_VAL;
index 24a05cebf05e00952bd688f11ef9fb396a9559ae..52f0f8852cabf4f35f2706a7b48c860835a6595b 100644 (file)
@@ -725,6 +725,7 @@ int zendlex(znode *zendlval TSRMLS_DC);
 #define ZEND_ARG_SEND_BY_REF (1<<0)
 #define ZEND_ARG_COMPILE_TIME_BOUND (1<<1)
 #define ZEND_ARG_SEND_FUNCTION (1<<2)
+#define ZEND_ARG_SEND_SILENT   (1<<3)
 
 #define ZEND_SEND_BY_VAL     0
 #define ZEND_SEND_BY_REF     1
index 78df870f2338399a4194c18bb1b6374598d2b4dd..de438eb6475b7b3ba6177ab4e15910e7f5b8e6c4 100644 (file)
@@ -2722,7 +2722,9 @@ ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR|CV, ANY)
        } else {
                zval *valptr;
 
-               zend_error(E_STRICT, "Only variables should be passed by reference");
+               if (!(opline->extended_value & ZEND_ARG_SEND_SILENT)) {
+                       zend_error(E_STRICT, "Only variables should be passed by reference");
+               }
                ALLOC_ZVAL(valptr);
                INIT_PZVAL_COPY(valptr, varptr);
                if (!IS_OP1_TMP_FREE()) {
index 78426f3fc9176ed110ef116bd4f7415e130c53ca..ae97d6e65cdb4e2fa36420f67427a1e76e40ced8 100644 (file)
@@ -8531,7 +8531,9 @@ static int ZEND_FASTCALL  ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
        } else {
                zval *valptr;
 
-               zend_error(E_STRICT, "Only variables should be passed by reference");
+               if (!(opline->extended_value & ZEND_ARG_SEND_SILENT)) {
+                       zend_error(E_STRICT, "Only variables should be passed by reference");
+               }
                ALLOC_ZVAL(valptr);
                INIT_PZVAL_COPY(valptr, varptr);
                if (!0) {
@@ -23274,7 +23276,9 @@ static int ZEND_FASTCALL  ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
        } else {
                zval *valptr;
 
-               zend_error(E_STRICT, "Only variables should be passed by reference");
+               if (!(opline->extended_value & ZEND_ARG_SEND_SILENT)) {
+                       zend_error(E_STRICT, "Only variables should be passed by reference");
+               }
                ALLOC_ZVAL(valptr);
                INIT_PZVAL_COPY(valptr, varptr);
                if (!0) {
index e0b3a75fb8a312c0b83adbeab7194055d977bce4..4d42a697624732129b4456dbc59d90106839bf56 100644 (file)
@@ -14,9 +14,7 @@ var_dump ( extract(get_object_vars($A),EXTR_REFS));
 
 echo "Done\n";
 ?>
---EXPECTF--
+--EXPECT--
 *** Testing for object ***
-
-Strict Standards: Only variables should be passed by reference in %sextract_variation9.php on line 10
 int(1)
 Done