cvs: ZendEngine2(PHP_5_3) / zend_compile.c zend_compile.h zend_vm_def.h zend_vm_execute.h /tests bug47165.phpt php-src/ext/standard/tests/array extract_variation9.phpt

[email protected] ("Dmitry Stogov") Tue, 20 Jan 2009 13:22:01 -0000
Newsgroups php.zend-engine.cvs
Message-ID <cvsdmitry1232457721@cvsserver>
dmitry		Tue Jan 20 13:22:01 2009 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src/ext/standard/tests/array	extract_variation9.phpt 
    /ZendEngine2	zend_compile.c zend_compile.h zend_vm_def.h 
                	zend_vm_execute.h 
    /ZendEngine2/tests	bug47165.phpt 
  Log:
  Removed wrong warning message
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/extract_variation9.phpt?r1=1.1.2.1.2.1&r2=1.1.2.1.2.2&diff_format=u
Index: php-src/ext/standard/tests/array/extract_variation9.phpt
diff -u php-src/ext/standard/tests/array/extract_variation9.phpt:1.1.2.1.2.1 php-src/ext/standard/tests/array/extract_variation9.phpt:1.1.2.1.2.2
--- php-src/ext/standard/tests/array/extract_variation9.phpt:1.1.2.1.2.1	Tue Jan 20 11:22:44 2009
+++ php-src/ext/standard/tests/array/extract_variation9.phpt	Tue Jan 20 13:21:43 2009
@@ -14,9 +14,7 @@
 
 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
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_compile.c?r1=1.647.2.27.2.41.2.100&r2=1.647.2.27.2.41.2.101&diff_format=u
Index: ZendEngine2/zend_compile.c
diff -u ZendEngine2/zend_compile.c:1.647.2.27.2.41.2.100 ZendEngine2/zend_compile.c:1.647.2.27.2.41.2.101
--- ZendEngine2/zend_compile.c:1.647.2.27.2.41.2.100	Tue Jan 20 11:22:44 2009
+++ ZendEngine2/zend_compile.c	Tue Jan 20 13:21:44 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_compile.c,v 1.647.2.27.2.41.2.100 2009/01/20 11:22:44 dmitry Exp $ */
+/* $Id: zend_compile.c,v 1.647.2.27.2.41.2.101 2009/01/20 13:21:44 dmitry Exp $ */
 
 #include <zend_language_parser.h>
 #include "zend.h"
@@ -2133,7 +2133,7 @@
 				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;
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_compile.h?r1=1.316.2.8.2.12.2.37&r2=1.316.2.8.2.12.2.38&diff_format=u
Index: ZendEngine2/zend_compile.h
diff -u ZendEngine2/zend_compile.h:1.316.2.8.2.12.2.37 ZendEngine2/zend_compile.h:1.316.2.8.2.12.2.38
--- ZendEngine2/zend_compile.h:1.316.2.8.2.12.2.37	Wed Dec 31 11:15:32 2008
+++ ZendEngine2/zend_compile.h	Tue Jan 20 13:21:46 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_compile.h,v 1.316.2.8.2.12.2.37 2008/12/31 11:15:32 sebastian Exp $ */
+/* $Id: zend_compile.h,v 1.316.2.8.2.12.2.38 2009/01/20 13:21:46 dmitry Exp $ */
 
 #ifndef ZEND_COMPILE_H
 #define ZEND_COMPILE_H
@@ -702,6 +702,7 @@
 #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
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_vm_def.h?r1=1.59.2.29.2.48.2.82&r2=1.59.2.29.2.48.2.83&diff_format=u
Index: ZendEngine2/zend_vm_def.h
diff -u ZendEngine2/zend_vm_def.h:1.59.2.29.2.48.2.82 ZendEngine2/zend_vm_def.h:1.59.2.29.2.48.2.83
--- ZendEngine2/zend_vm_def.h:1.59.2.29.2.48.2.82	Thu Jan 15 08:48:56 2009
+++ ZendEngine2/zend_vm_def.h	Tue Jan 20 13:21:46 2009
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_vm_def.h,v 1.59.2.29.2.48.2.82 2009/01/15 08:48:56 dmitry Exp $ */
+/* $Id: zend_vm_def.h,v 1.59.2.29.2.48.2.83 2009/01/20 13:21:46 dmitry Exp $ */
 
 /* If you change this file, please regenerate the zend_vm_execute.h and
  * zend_vm_opcodes.h files by running:
@@ -2645,7 +2645,9 @@
 	} 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()) {
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_vm_execute.h?r1=1.62.2.30.2.49.2.82&r2=1.62.2.30.2.49.2.83&diff_format=u
Index: ZendEngine2/zend_vm_execute.h
diff -u ZendEngine2/zend_vm_execute.h:1.62.2.30.2.49.2.82 ZendEngine2/zend_vm_execute.h:1.62.2.30.2.49.2.83
--- ZendEngine2/zend_vm_execute.h:1.62.2.30.2.49.2.82	Thu Jan 15 08:48:56 2009
+++ ZendEngine2/zend_vm_execute.h	Tue Jan 20 13:21:46 2009
@@ -8202,7 +8202,9 @@
 	} 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) {
@@ -22261,7 +22263,9 @@
 	} 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) {
http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/bug47165.phpt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: ZendEngine2/tests/bug47165.phpt
diff -u ZendEngine2/tests/bug47165.phpt:1.1.2.1 ZendEngine2/tests/bug47165.phpt:1.1.2.2
--- ZendEngine2/tests/bug47165.phpt:1.1.2.1	Tue Jan 20 11:22:45 2009
+++ ZendEngine2/tests/bug47165.phpt	Tue Jan 20 13:21:52 2009
@@ -14,7 +14,5 @@
 extract(Foo::bar());
 echo "ok\n";
 ?>
---EXPECTF--
-
-Strict Standards: Only variables should be passed by reference in %sbug47165.php on line 11
+--EXPECT--
 ok