From: Dmitry Stogov Date: Tue, 20 Jan 2009 13:22:26 +0000 (+0000) Subject: Removed wrong warning message X-Git-Tag: php-5.4.0alpha1~191^2~4451 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b5c6e15ab8b1a83454b697c50051f2fb85fe5bfe;p=php Removed wrong warning message --- diff --git a/Zend/tests/bug47165.phpt b/Zend/tests/bug47165.phpt index 343c98c1ee..2cf648d855 100644 --- a/Zend/tests/bug47165.phpt +++ b/Zend/tests/bug47165.phpt @@ -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 diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index e6fc233018..e83e48ff14 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -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; diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index 24a05cebf0..52f0f8852c 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -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 diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 78df870f23..de438eb647 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -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()) { diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 78426f3fc9..ae97d6e65c 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -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) { diff --git a/ext/standard/tests/array/extract_variation9.phpt b/ext/standard/tests/array/extract_variation9.phpt index e0b3a75fb8..4d42a69762 100644 --- a/ext/standard/tests/array/extract_variation9.phpt +++ b/ext/standard/tests/array/extract_variation9.phpt @@ -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