@@ -1178,17 +1178,7 @@ static void zend_do_implement_interfaces(zend_class_entry *ce) /* {{{ */
1178
1178
1179
1179
static void zend_add_magic_methods (zend_class_entry * ce , zend_string * mname , zend_function * fe ) /* {{{ */
1180
1180
{
1181
- if (ZSTR_LEN (ce -> name ) == ZSTR_LEN (mname )) {
1182
- zend_string * lowercase_name = zend_string_tolower (ce -> name );
1183
- lowercase_name = zend_new_interned_string (lowercase_name );
1184
- if (!memcmp (ZSTR_VAL (mname ), ZSTR_VAL (lowercase_name ), ZSTR_LEN (mname ))) {
1185
- if (ce -> constructor && (!ce -> parent || ce -> constructor != ce -> parent -> constructor )) {
1186
- zend_error_noreturn (E_COMPILE_ERROR , "%s has colliding constructor definitions coming from traits" , ZSTR_VAL (ce -> name ));
1187
- }
1188
- ce -> constructor = fe ;
1189
- }
1190
- zend_string_release_ex (lowercase_name , 0 );
1191
- } else if (ZSTR_VAL (mname )[0 ] != '_' || ZSTR_VAL (mname )[1 ] != '_' ) {
1181
+ if (ZSTR_LEN (ce -> name ) != ZSTR_LEN (mname ) && (ZSTR_VAL (mname )[0 ] != '_' || ZSTR_VAL (mname )[1 ] != '_' )) {
1192
1182
/* pass */
1193
1183
} else if (zend_string_equals_literal (mname , ZEND_CLONE_FUNC_NAME )) {
1194
1184
ce -> clone = fe ;
@@ -1219,6 +1209,16 @@ static void zend_add_magic_methods(zend_class_entry* ce, zend_string* mname, zen
1219
1209
ce -> __tostring = fe ;
1220
1210
} else if (zend_string_equals_literal (mname , ZEND_DEBUGINFO_FUNC_NAME )) {
1221
1211
ce -> __debugInfo = fe ;
1212
+ } else if (ZSTR_LEN (ce -> name ) == ZSTR_LEN (mname )) {
1213
+ zend_string * lowercase_name = zend_string_tolower (ce -> name );
1214
+ lowercase_name = zend_new_interned_string (lowercase_name );
1215
+ if (!memcmp (ZSTR_VAL (mname ), ZSTR_VAL (lowercase_name ), ZSTR_LEN (mname ))) {
1216
+ if (ce -> constructor && (!ce -> parent || ce -> constructor != ce -> parent -> constructor )) {
1217
+ zend_error_noreturn (E_COMPILE_ERROR , "%s has colliding constructor definitions coming from traits" , ZSTR_VAL (ce -> name ));
1218
+ }
1219
+ ce -> constructor = fe ;
1220
+ }
1221
+ zend_string_release_ex (lowercase_name , 0 );
1222
1222
}
1223
1223
}
1224
1224
/* }}} */
0 commit comments