@@ -859,24 +859,6 @@ ZEND_FUNCTION(get_mangled_object_vars)
859
859
}
860
860
/* }}} */
861
861
862
- static bool same_name (zend_string * key , zend_string * name ) /* {{{ */
863
- {
864
- zend_string * lcname ;
865
- bool ret ;
866
-
867
- if (key == name ) {
868
- return 1 ;
869
- }
870
- if (ZSTR_LEN (key ) != ZSTR_LEN (name )) {
871
- return 0 ;
872
- }
873
- lcname = zend_string_tolower (name );
874
- ret = memcmp (ZSTR_VAL (lcname ), ZSTR_VAL (key ), ZSTR_LEN (key )) == 0 ;
875
- zend_string_release_ex (lcname , 0 );
876
- return ret ;
877
- }
878
- /* }}} */
879
-
880
862
/* {{{ Returns an array of method names for class or class instance. */
881
863
ZEND_FUNCTION (get_class_methods )
882
864
{
@@ -1271,30 +1253,28 @@ ZEND_FUNCTION(restore_exception_handler)
1271
1253
}
1272
1254
/* }}} */
1273
1255
1274
- static void copy_class_or_interface_name (zval * array , zend_string * key , zend_class_entry * ce ) /* {{{ */
1275
- {
1276
- if ((ce -> refcount == 1 && !(ce -> ce_flags & ZEND_ACC_IMMUTABLE )) ||
1277
- same_name (key , ce -> name )) {
1278
- key = ce -> name ;
1279
- }
1280
- add_next_index_str (array , zend_string_copy (key ));
1281
- }
1282
- /* }}} */
1283
-
1284
1256
static inline void get_declared_class_impl (INTERNAL_FUNCTION_PARAMETERS , int flags , int skip_flags ) /* {{{ */
1285
1257
{
1286
1258
zend_string * key ;
1259
+ zval * zv , tmp ;
1287
1260
zend_class_entry * ce ;
1288
1261
1289
1262
ZEND_PARSE_PARAMETERS_NONE ();
1290
1263
1291
1264
array_init (return_value );
1292
- ZEND_HASH_FOREACH_STR_KEY_PTR (EG (class_table ), key , ce ) {
1265
+ ZEND_HASH_FOREACH_STR_KEY_VAL (EG (class_table ), key , zv ) {
1266
+ ce = Z_PTR_P (zv );
1293
1267
if (key
1294
1268
&& ZSTR_VAL (key )[0 ] != 0
1295
1269
&& (ce -> ce_flags & flags )
1296
1270
&& !(ce -> ce_flags & skip_flags )) {
1297
- copy_class_or_interface_name (return_value , key , ce );
1271
+ if (EXPECTED (Z_TYPE_P (zv ) == IS_PTR )) {
1272
+ ZVAL_STR_COPY (& tmp , ce -> name );
1273
+ } else {
1274
+ ZEND_ASSERT (Z_TYPE_P (zv ) == IS_ALIAS_PTR );
1275
+ ZVAL_STR_COPY (& tmp , key );
1276
+ }
1277
+ zend_hash_next_index_insert (Z_ARRVAL_P (return_value ), & tmp );
1298
1278
}
1299
1279
} ZEND_HASH_FOREACH_END ();
1300
1280
}
0 commit comments