felipe                                   Mon, 28 Jun 2010 16:37:57 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=300817

Log:
- Reverted fix for bug #51421

Bug: http://bugs.php.net/51421 (Closed) Abstract __construct constructor 
argument list not enforced
      
Changed paths:
    U   php/php-src/branches/PHP_5_2/NEWS
    D   php/php-src/branches/PHP_5_2/Zend/tests/bug51421.phpt
    U   php/php-src/branches/PHP_5_2/Zend/zend_compile.c
    U   php/php-src/branches/PHP_5_3/NEWS
    D   php/php-src/branches/PHP_5_3/Zend/tests/bug51421.phpt
    U   php/php-src/branches/PHP_5_3/Zend/zend_compile.c

Modified: php/php-src/branches/PHP_5_2/NEWS
===================================================================
--- php/php-src/branches/PHP_5_2/NEWS   2010-06-28 16:17:20 UTC (rev 300816)
+++ php/php-src/branches/PHP_5_2/NEWS   2010-06-28 16:37:57 UTC (rev 300817)
@@ -9,8 +9,6 @@
 - Fixed bug #52061 (memory_limit above 2G). (Felipe)
 - Fixed bug #52010 (open_basedir restrictions mismatch on vacuum command).
   (Ilia, Felipe)
-- Fixed bug #51421 (Abstract __construct constructor argument list not
-  enforced). (Felipe)
 - Fixed bug #49730 (Firebird - new PDO() returns NULL). (Felipe)

 17 Jun 2010, PHP 5.2.14RC1

Deleted: php/php-src/branches/PHP_5_2/Zend/tests/bug51421.phpt
===================================================================
--- php/php-src/branches/PHP_5_2/Zend/tests/bug51421.phpt       2010-06-28 
16:17:20 UTC (rev 300816)
+++ php/php-src/branches/PHP_5_2/Zend/tests/bug51421.phpt       2010-06-28 
16:37:57 UTC (rev 300817)
@@ -1,18 +0,0 @@
---TEST--
-Bug #51421 (Abstract __construct constructor argument list not enforced)
---FILE--
-<?php
-
-class ExampleClass {}
-
-abstract class TestInterface {
-       abstract public function __construct(ExampleClass $var);
-}
-
-class Test extends TestInterface {
-       public function __construct() {}
-}
-
-?>
---EXPECTF--
-Fatal error: Declaration of Test::__construct() must be compatible with that 
of TestInterface::__construct() in %s on line %d

Modified: php/php-src/branches/PHP_5_2/Zend/zend_compile.c
===================================================================
--- php/php-src/branches/PHP_5_2/Zend/zend_compile.c    2010-06-28 16:17:20 UTC 
(rev 300816)
+++ php/php-src/branches/PHP_5_2/Zend/zend_compile.c    2010-06-28 16:37:57 UTC 
(rev 300817)
@@ -2017,12 +2017,8 @@
                return 1;
        }

-       /* Checks for constructors only if they are declared in an interface,
-        * or explicitly marked as abstract
-        */
-       if ((fe->common.fn_flags & ZEND_ACC_CTOR)
-               && ((proto->common.scope->ce_flags & ZEND_ACC_INTERFACE) == 0
-                       && (proto->common.fn_flags & ZEND_ACC_ABSTRACT) == 0)) {
+       /* Checks for constructors only if they are declared in an interface */
+       if ((fe->common.fn_flags & ZEND_ACC_CTOR) && 
(proto->common.scope->ce_flags & ZEND_ACC_INTERFACE) == 0) {
                return 1;
        }


Modified: php/php-src/branches/PHP_5_3/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3/NEWS   2010-06-28 16:17:20 UTC (rev 300816)
+++ php/php-src/branches/PHP_5_3/NEWS   2010-06-28 16:37:57 UTC (rev 300817)
@@ -15,8 +15,6 @@
   (Felipe)
 - Fixed bug #52115 (mysqli_result::fetch_all returns null, not an empty array).
   (Andrey)
-- Fixed bug #51421 (Abstract __construct constructor argument list not
-  enforced). (Felipe)
 - Fixed bug #48930 (__COMPILER_HALT_OFFSET__ incorrect in PHP >= 5.3). (Felipe)

 17 Jun 2010, PHP 5.3.3 RC1

Deleted: php/php-src/branches/PHP_5_3/Zend/tests/bug51421.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/Zend/tests/bug51421.phpt       2010-06-28 
16:17:20 UTC (rev 300816)
+++ php/php-src/branches/PHP_5_3/Zend/tests/bug51421.phpt       2010-06-28 
16:37:57 UTC (rev 300817)
@@ -1,18 +0,0 @@
---TEST--
-Bug #51421 (Abstract __construct constructor argument list not enforced)
---FILE--
-<?php
-
-class ExampleClass {}
-
-abstract class TestInterface {
-       abstract public function __construct(ExampleClass $var);
-}
-
-class Test extends TestInterface {
-       public function __construct() {}
-}
-
-?>
---EXPECTF--
-Fatal error: Declaration of Test::__construct() must be compatible with that 
of TestInterface::__construct() in %s on line %d

Modified: php/php-src/branches/PHP_5_3/Zend/zend_compile.c
===================================================================
--- php/php-src/branches/PHP_5_3/Zend/zend_compile.c    2010-06-28 16:17:20 UTC 
(rev 300816)
+++ php/php-src/branches/PHP_5_3/Zend/zend_compile.c    2010-06-28 16:37:57 UTC 
(rev 300817)
@@ -2540,12 +2540,8 @@
                return 1;
        }

-       /* Checks for constructors only if they are declared in an interface,
-        * or explicitly marked as abstract
-        */
-       if ((fe->common.fn_flags & ZEND_ACC_CTOR)
-               && ((proto->common.scope->ce_flags & ZEND_ACC_INTERFACE) == 0
-                       && (proto->common.fn_flags & ZEND_ACC_ABSTRACT) == 0)) {
+       /* Checks for constructors only if they are declared in an interface */
+       if ((fe->common.fn_flags & ZEND_ACC_CTOR) && 
(proto->common.scope->ce_flags & ZEND_ACC_INTERFACE) == 0) {
                return 1;
        }


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to