Permalink
Browse files

MFH: fix #38624 (Strange warning when incrementing an object property…

… and exception is thrown from __get method)
  • Loading branch information...
1 parent 615f2d7 commit f7ba7232d894c8658a50937733f226a8493e8e0b @tony2001 tony2001 committed Aug 28, 2006
Showing with 39 additions and 1 deletion.
  1. +2 −0 NEWS
  2. +34 −0 Zend/tests/bug38624.phpt
  3. +3 −1 Zend/zend_interfaces.c
View
2 NEWS
@@ -5,6 +5,8 @@ PHP NEWS
SoapServer::setClass() method). (Dmitry)
- Added support for hexadecimal entity in imagettftext() for the bundled GD.
(Pierre)
+- Fixed bug #38624 (Strange warning when incrementing an object property and
+ exception is thrown from __get method). (Tony)
- Fixed bug #38543 (shutdown_executor() may segfault when memory_limit is too
low). (Dmitry)
- Fixed bug #38535 (memory corruption in pdo_pgsql driver on error retrieval
View
@@ -0,0 +1,34 @@
+--TEST--
+Bug #38624 (Strange warning when incrementing an object property and exception is thrown from __get method)
+--FILE--
+<?php
+
+class impl
+{
+ public function __construct()
+ {
+ $this->counter++;
+ }
+ public function __set( $name, $value )
+ {
+ throw new Exception( "doesn't work" );
+ }
+
+ public function __get( $name )
+ {
+ throw new Exception( "doesn't work" );
+ }
+
+}
+
+$impl = new impl();
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Uncaught exception 'Exception' with message 'doesn't work' in %s:%d
+Stack trace:
+#0 %s(%d): impl->__get('counter')
+#1 %s(%d): impl->__construct()
+#2 {main}
+ thrown in %s on line %d
View
@@ -92,7 +92,9 @@ ZEND_API zval* zend_call_method(zval **object_pp, zend_class_entry *obj_ce, zend
if (!obj_ce) {
obj_ce = object_pp ? Z_OBJCE_PP(object_pp) : NULL;
}
- zend_error(E_CORE_ERROR, "Couldn't execute method %s%s%s", obj_ce ? obj_ce->name : "", obj_ce ? "::" : "", function_name);
+ if (!EG(exception)) {
+ zend_error(E_CORE_ERROR, "Couldn't execute method %s%s%s", obj_ce ? obj_ce->name : "", obj_ce ? "::" : "", function_name);
+ }
}
if (!retval_ptr_ptr) {
if (retval) {

0 comments on commit f7ba723

Please sign in to comment.