cvs: ZendEngine2(PHP_5_3) / zend_execute_API.c /tests bug43323.phpt php-src NEWS
[email protected] ("Dmitry Stogov")
| Newsgroups | php.zend-engine.cvs |
|---|---|
| Message-ID | <cvsdmitry1201605177@cvsserver> |
dmitry Tue Jan 29 11:12:57 2008 UTC
Added files: (Branch: PHP_5_3)
/ZendEngine2/tests bug43323.phpt
Modified files:
/php-src NEWS
/ZendEngine2 zend_execute_API.c
Log:
Fixed bug #43323 (Wrong count abstract methods). (Felipe, Dmitry)
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.965.2.96&r2=1.2027.2.547.2.965.2.97&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.965.2.96 php-src/NEWS:1.2027.2.547.2.965.2.97
--- php-src/NEWS:1.2027.2.547.2.965.2.96 Tue Jan 29 08:57:26 2008
+++ php-src/NEWS Tue Jan 29 11:12:57 2008
@@ -106,6 +106,7 @@
- Fixed bug #43527 (DateTime created from a timestamp reports environment
timezone). (Derick)
- Fixed bug #43426 (crash on nested call_user_func() calls). (Dmitry)
+- Fixed bug #43323 (Wrong count abstract methods). (Felipe, Dmitry)
- Fixed bug #43075 (Support 2007-11-01T24:00:00+00:00). (Derick)
- Fixed bug #43003 (Invalid timezone reported for DateTime objects constructed
using a timestamp). (Derick)
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute_API.c?r1=1.331.2.20.2.24.2.22&r2=1.331.2.20.2.24.2.23&diff_format=u
Index: ZendEngine2/zend_execute_API.c
diff -u ZendEngine2/zend_execute_API.c:1.331.2.20.2.24.2.22 ZendEngine2/zend_execute_API.c:1.331.2.20.2.24.2.23
--- ZendEngine2/zend_execute_API.c:1.331.2.20.2.24.2.22 Thu Jan 24 09:41:37 2008
+++ ZendEngine2/zend_execute_API.c Tue Jan 29 11:12:57 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute_API.c,v 1.331.2.20.2.24.2.22 2008/01/24 09:41:37 dmitry Exp $ */
+/* $Id: zend_execute_API.c,v 1.331.2.20.2.24.2.23 2008/01/29 11:12:57 dmitry Exp $ */
#include <stdio.h>
#include <signal.h>
@@ -1659,6 +1659,7 @@
typedef struct _zend_abstract_info {
zend_function *afn[MAX_ABSTRACT_INFO_CNT + 1];
int cnt;
+ int ctor;
} zend_abstract_info;
static int zend_verify_abstract_class_function(zend_function *fn, zend_abstract_info *ai TSRMLS_DC) /* {{{ */
@@ -1667,7 +1668,16 @@
if (ai->cnt < MAX_ABSTRACT_INFO_CNT) {
ai->afn[ai->cnt] = fn;
}
- ai->cnt++;
+ if (fn->common.fn_flags & ZEND_ACC_CTOR) {
+ if (!ai->ctor) {
+ ai->cnt++;
+ ai->ctor = 1;
+ } else {
+ ai->afn[ai->cnt] = NULL;
+ }
+ } else {
+ ai->cnt++;
+ }
}
return 0;
}
http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/bug43323.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/bug43323.phpt
+++ ZendEngine2/tests/bug43323.phpt