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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.