cvs: Zend(PHP_4_4) / zend_compile.c zend_execute.c php-src NEWS
| From: | Derick Rethans | Date: | Mon, 15 Aug 2005 10:47:25 +0000 |
| Subject: | cvs: Zend(PHP_4_4) / zend_compile.c zend_execute.c php-src NEWS | ||
| Groups: | php.zend-engine.cvs | ||
| Request: | Send a blank email to php-zend-engine-cvs+get-4012@lists.php.net to get a copy of this message | ||
derick Mon Aug 15 06:47:25 2005 EDT
Modified files: (Branch: PHP_4_4)
/php-src NEWS
/Zend zend_compile.c zend_execute.c
Log:
- MFH: Fixed bug #33558 (Warning with nested calls to functions returning by
reference).
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1247.2.920.2.24&r2=1.1247.2.920.2.25&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1247.2.920.2.24 php-src/NEWS:1.1247.2.920.2.25
--- php-src/NEWS:1.1247.2.920.2.24 Wed Aug 10 18:39:10 2005
+++ php-src/NEWS Mon Aug 15 06:47:17 2005
@@ -11,6 +11,8 @@
- Fixed bug #33690 (Crash setting some ini directives in httpd.conf). (Rasmus)
- Fixed bug #33673 (Added detection for partially uploaded files). (Ilia)
- Fixed bug #33648 (Using --with-regex=system causes compile failure). (Andrei)
+- Fixed bug #33558 (Warning with nested calls to functions returning by
+ reference). (Dmitry, Derick)
- Fixed bug #33156 (cygwin version of setitimer doesn't accept ITIMER_PROF).
(Nuno)
- Fixed bug #32160 (copying a file into itself leads to data loss). (Ilia)
http://cvs.php.net/diff.php/Zend/zend_compile.c?r1=1.240.2.10.2.3&r2=1.240.2.10.2.4&ty=u
Index: Zend/zend_compile.c
diff -u Zend/zend_compile.c:1.240.2.10.2.3 Zend/zend_compile.c:1.240.2.10.2.4
--- Zend/zend_compile.c:1.240.2.10.2.3 Fri Jun 24 07:48:30 2005
+++ Zend/zend_compile.c Mon Aug 15 06:47:23 2005
@@ -1121,7 +1121,7 @@
INIT_ZVAL(opline->op1.u.constant);
}
- if (do_end_vparse) {
+ if (expr) {
if (zend_is_function_or_method_call(expr)) {
opline->extended_value = ZEND_RETURNS_FUNCTION;
} else {
http://cvs.php.net/diff.php/Zend/zend_execute.c?r1=1.316.2.49.2.7&r2=1.316.2.49.2.8&ty=u
Index: Zend/zend_execute.c
diff -u Zend/zend_execute.c:1.316.2.49.2.7 Zend/zend_execute.c:1.316.2.49.2.8
--- Zend/zend_execute.c:1.316.2.49.2.7 Wed Aug 10 06:37:04 2005
+++ Zend/zend_execute.c Mon Aug 15 06:47:24 2005
@@ -1773,8 +1773,10 @@
}
if (!(*retval_ptr_ptr)->is_ref) {
- if (EX(Ts)[EX(opline)->op1.u.var].var.ptr_ptr ==
&EX(Ts)[EX(opline)->op1.u.var].var.ptr
- || (EX(opline)->extended_value == ZEND_RETURNS_FUNCTION &&
!EX(Ts)[EX(opline)->op1.u.var].var.fcall_returned_reference)) {
+ if (EX(opline)->extended_value == ZEND_RETURNS_FUNCTION &&
+ EX(Ts)[EX(opline)->op1.u.var].var.fcall_returned_reference) {
+ /* intentionally left empty */
+ } else if (EX(Ts)[EX(opline)->op1.u.var].var.ptr_ptr ==
&EX(Ts)[EX(opline)->op1.u.var].var.ptr) {
PZVAL_LOCK(*retval_ptr_ptr); /* undo the effect of get_zval_ptr_ptr() */
zend_error(E_NOTICE, "Only variable references should be returned by reference");
goto return_by_value;