helly Sat Aug 9 10:32:33 2003 EDT
Modified files:
/ZendEngine2 zend_objects.c
/php-src/tests/classes factory_and_singleton_005.phpt
factory_and_singleton_006.phpt
Log:
Precise destructor errors
Index: ZendEngine2/zend_objects.c
diff -u ZendEngine2/zend_objects.c:1.36 ZendEngine2/zend_objects.c:1.37
--- ZendEngine2/zend_objects.c:1.36 Sun Jul 27 09:20:31 2003
+++ ZendEngine2/zend_objects.c Sat Aug 9 10:32:33 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_objects.c,v 1.36 2003/07/27 13:20:31 stas Exp $ */
+/* $Id: zend_objects.c,v 1.37 2003/08/09 14:32:33 helly Exp $ */
#include "zend.h"
#include "zend_globals.h"
@@ -46,17 +46,28 @@
/* Ensure that if we're calling a private function,
we're allowed to do so.
*/
if (object->ce != EG(scope)) {
+ zend_class_entry *ce = object->ce;
+
zend_nuke_object(object TSRMLS_CC); /*
unfortunately we *must* destroy it now anyway */
- /* this is a E_ERROR in real but we can't do
that right now because of problems in shutdown */
- zend_error(E_WARNING, "Call to private
destructor from context '%s'", EG(scope) ? EG(scope)->name : "");
+ zend_error(EG(in_execution) ? E_ERROR :
E_WARNING,
+ "Call to private %s::__destruct from
context '%s'%s",
+ ce->name,
+ EG(scope) ? EG(scope)->name : "",
+ EG(in_execution) ? "" : " during
shutdown ignored");
return;
}
} else {
/* Ensure that if we're calling a protected function,
we're allowed to do so.
*/
if (!zend_check_protected(destructor->common.scope,
EG(scope))) {
+ zend_class_entry *ce = object->ce;
+
zend_nuke_object(object TSRMLS_CC); /*
unfortunately we *must* destroy it now anyway */
- zend_error(E_WARNING, "Call to protected
destructor from context '%s'", EG(scope) ? EG(scope)->name : "");
+ zend_error(EG(in_execution) ? E_ERROR :
E_WARNING,
+ "Call to protected %s::__destruct from
context '%s'%s",
+ ce->name,
+ EG(scope) ? EG(scope)->name : "",
+ EG(in_execution) ? "" : " during
shutdown ignored");
return;
}
}
Index: php-src/tests/classes/factory_and_singleton_005.phpt
diff -u php-src/tests/classes/factory_and_singleton_005.phpt:1.2
php-src/tests/classes/factory_and_singleton_005.phpt:1.3
--- php-src/tests/classes/factory_and_singleton_005.phpt:1.2 Thu Jul 3 03:18:41
2003
+++ php-src/tests/classes/factory_and_singleton_005.phpt Sat Aug 9 10:32:33
2003
@@ -16,5 +16,4 @@
echo "Done\n";
?>
--EXPECTF--
-Warning: Call to protected destructor from context '' in
%sfactory_and_singleton_005.php on line %d
-Done
+Fatal error: Call to protected test::__destruct from context '' in
%sfactory_and_singleton_005.php on line %d
Index: php-src/tests/classes/factory_and_singleton_006.phpt
diff -u php-src/tests/classes/factory_and_singleton_006.phpt:1.2
php-src/tests/classes/factory_and_singleton_006.phpt:1.3
--- php-src/tests/classes/factory_and_singleton_006.phpt:1.2 Thu Jul 3 03:18:41
2003
+++ php-src/tests/classes/factory_and_singleton_006.phpt Sat Aug 9 10:32:33
2003
@@ -16,5 +16,5 @@
echo "Done\n";
?>
--EXPECTF--
-Warning: Call to private destructor from context '' in
%sfactory_and_singleton_006.php on line %d
-Done
+Fatal error: Call to private test::__destruct from context '' in
%sfactory_and_singleton_006.php on line %d
+
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php