@@ -1630,18 +1630,15 @@ ZEND_API void zend_do_inheritance_ex(zend_class_entry *ce, zend_class_entry *par
1630
1630
/* }}} */
1631
1631
1632
1632
static bool do_inherit_constant_check (
1633
- zend_class_entry * ce , HashTable * child_constants_table , zend_class_constant * parent_constant ,
1633
+ zend_class_entry * ce , zend_class_constant * parent_constant ,
1634
1634
zend_string * name , const zend_class_entry * iface
1635
1635
) {
1636
- zval * zv = zend_hash_find_ex (child_constants_table , name , 1 );
1637
- zend_class_constant * old_constant ;
1638
-
1636
+ zval * zv = zend_hash_find_ex (& ce -> constants_table , name , 1 );
1639
1637
if (zv == NULL ) {
1640
1638
return true;
1641
1639
}
1642
1640
1643
- old_constant = (zend_class_constant * )Z_PTR_P (zv );
1644
-
1641
+ zend_class_constant * old_constant = Z_PTR_P (zv );
1645
1642
if ((ZEND_CLASS_CONST_FLAGS (parent_constant ) & ZEND_ACC_FINAL )) {
1646
1643
zend_error_noreturn (E_COMPILE_ERROR , "%s::%s cannot override final constant %s::%s" ,
1647
1644
ZSTR_VAL (old_constant -> ce -> name ), ZSTR_VAL (name ), ZSTR_VAL (iface -> name ), ZSTR_VAL (name )
@@ -1658,7 +1655,7 @@ static bool do_inherit_constant_check(
1658
1655
1659
1656
static void do_inherit_iface_constant (zend_string * name , zend_class_constant * c , zend_class_entry * ce , zend_class_entry * iface ) /* {{{ */
1660
1657
{
1661
- if (do_inherit_constant_check (ce , & ce -> constants_table , c , name , iface )) {
1658
+ if (do_inherit_constant_check (ce , c , name , iface )) {
1662
1659
zend_class_constant * ct ;
1663
1660
if (Z_TYPE (c -> value ) == IS_CONSTANT_AST ) {
1664
1661
ce -> ce_flags &= ~ZEND_ACC_CONSTANTS_UPDATED ;
@@ -1724,8 +1721,8 @@ ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry
1724
1721
}
1725
1722
if (ignore ) {
1726
1723
/* Check for attempt to redeclare interface constants */
1727
- ZEND_HASH_FOREACH_STR_KEY_PTR (& ce -> constants_table , key , c ) {
1728
- do_inherit_constant_check (ce , & iface -> constants_table , c , key , iface );
1724
+ ZEND_HASH_FOREACH_STR_KEY_PTR (& iface -> constants_table , key , c ) {
1725
+ do_inherit_constant_check (ce , c , key , iface );
1729
1726
} ZEND_HASH_FOREACH_END ();
1730
1727
} else {
1731
1728
if (ce -> num_interfaces >= current_iface_num ) {
@@ -1769,8 +1766,8 @@ static void zend_do_implement_interfaces(zend_class_entry *ce, zend_class_entry
1769
1766
return ;
1770
1767
}
1771
1768
/* skip duplications */
1772
- ZEND_HASH_FOREACH_STR_KEY_PTR (& ce -> constants_table , key , c ) {
1773
- do_inherit_constant_check (ce , & iface -> constants_table , c , key , iface );
1769
+ ZEND_HASH_FOREACH_STR_KEY_PTR (& iface -> constants_table , key , c ) {
1770
+ do_inherit_constant_check (ce , c , key , iface );
1774
1771
} ZEND_HASH_FOREACH_END ();
1775
1772
1776
1773
iface = NULL ;
0 commit comments