cvs: ZendEngine2 / zend_compile.c
| From: | Marcus Boerger | Date: | Thu, 11 Aug 2005 20:32:02 +0000 |
| Subject: | cvs: ZendEngine2 / zend_compile.c | ||
| Groups: | php.zend-engine.cvs | ||
| Request: | Send a blank email to php-zend-engine-cvs+get-3987@lists.php.net to get a copy of this message | ||
helly Thu Aug 11 16:32:02 2005 EDT
Modified files:
/ZendEngine2 zend_compile.c
Log:
- For internal classes we must auto generate the abstract class flags.
# Actually providing the flags while registering the class is not possible
# since that would require a major API change.
http://cvs.php.net/diff.php/ZendEngine2/zend_compile.c?r1=1.648&r2=1.649&ty=u
Index: ZendEngine2/zend_compile.c
diff -u ZendEngine2/zend_compile.c:1.648 ZendEngine2/zend_compile.c:1.649
--- ZendEngine2/zend_compile.c:1.648 Wed Aug 10 08:02:13 2005
+++ ZendEngine2/zend_compile.c Thu Aug 11 16:32:01 2005
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_compile.c,v 1.648 2005/08/10 12:02:13 dmitry Exp $ */
+/* $Id: zend_compile.c,v 1.649 2005/08/11 20:32:01 helly Exp $ */
#include <zend_language_parser.h>
#include "zend.h"
@@ -2144,8 +2144,12 @@
zend_hash_merge(&ce->constants_table, &parent_ce->constants_table, (void (*)(void
*)) zval_add_ref, NULL, sizeof(zval *), 0);
zend_hash_merge_ex(&ce->function_table, &parent_ce->function_table,
(copy_ctor_func_t) do_inherit_method, sizeof(zend_function), (merge_checker_func_t)
do_inherit_method_check, ce);
do_inherit_parent_constructor(ce);
-
- zend_verify_abstract_class(ce TSRMLS_CC);
+
+ if (ce->ce_flags & ZEND_ACC_IMPLICIT_ABSTRACT_CLASS && ce->type ==
ZEND_INTERNAL_CLASS) {
+ ce->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS;
+ } else {
+ zend_verify_abstract_class(ce TSRMLS_CC);
+ }
}