@@ -610,6 +610,11 @@ static int format_default_value(smart_str *str, zval *value, zend_class_entry *s
610
610
return SUCCESS ;
611
611
}
612
612
613
+ static inline zend_bool has_internal_arg_info (const zend_function * fptr ) {
614
+ return fptr -> type == ZEND_INTERNAL_FUNCTION
615
+ && !(fptr -> common .fn_flags & ZEND_ACC_USER_ARG_INFO );
616
+ }
617
+
613
618
/* {{{ _parameter_string */
614
619
static void _parameter_string (smart_str * str , zend_function * fptr , struct _zend_arg_info * arg_info , uint32_t offset , zend_bool required , char * indent )
615
620
{
@@ -631,11 +636,8 @@ static void _parameter_string(smart_str *str, zend_function *fptr, struct _zend_
631
636
if (ZEND_ARG_IS_VARIADIC (arg_info )) {
632
637
smart_str_appends (str , "..." );
633
638
}
634
- smart_str_append_printf (str , "$%s" ,
635
- (fptr -> type == ZEND_INTERNAL_FUNCTION &&
636
- !(fptr -> common .fn_flags & ZEND_ACC_USER_ARG_INFO )) ?
637
- ((zend_internal_arg_info * )arg_info )-> name :
638
- ZSTR_VAL (arg_info -> name ));
639
+ smart_str_append_printf (str , "$%s" , has_internal_arg_info (fptr )
640
+ ? ((zend_internal_arg_info * )arg_info )-> name : ZSTR_VAL (arg_info -> name ));
639
641
640
642
if (fptr -> type == ZEND_USER_FUNCTION && !required ) {
641
643
zend_op * precv = _get_recv_op ((zend_op_array * )fptr , offset );
@@ -1139,15 +1141,10 @@ static void reflection_parameter_factory(zend_function *fptr, zval *closure_obje
1139
1141
}
1140
1142
1141
1143
prop_name = reflection_prop_name (object );
1142
- if (arg_info -> name ) {
1143
- if (fptr -> type == ZEND_INTERNAL_FUNCTION &&
1144
- !(fptr -> common .fn_flags & ZEND_ACC_USER_ARG_INFO )) {
1145
- ZVAL_STRING (prop_name , ((zend_internal_arg_info * )arg_info )-> name );
1146
- } else {
1147
- ZVAL_STR_COPY (prop_name , arg_info -> name );
1148
- }
1144
+ if (has_internal_arg_info (fptr )) {
1145
+ ZVAL_STRING (prop_name , ((zend_internal_arg_info * )arg_info )-> name );
1149
1146
} else {
1150
- ZVAL_NULL (prop_name );
1147
+ ZVAL_STR_COPY (prop_name , arg_info -> name );
1151
1148
}
1152
1149
}
1153
1150
/* }}} */
@@ -1443,10 +1440,15 @@ ZEND_METHOD(reflection_function, __toString)
1443
1440
Returns this function's name */
1444
1441
ZEND_METHOD (reflection_function , getName )
1445
1442
{
1443
+ reflection_object * intern ;
1444
+ zend_function * fptr ;
1445
+
1446
1446
if (zend_parse_parameters_none () == FAILURE ) {
1447
1447
RETURN_THROWS ();
1448
1448
}
1449
- _default_get_name (ZEND_THIS , return_value );
1449
+
1450
+ GET_REFLECTION_OBJECT_PTR (fptr );
1451
+ RETURN_STR_COPY (fptr -> common .function_name );
1450
1452
}
1451
1453
/* }}} */
1452
1454
@@ -2254,8 +2256,7 @@ ZEND_METHOD(reflection_parameter, __construct)
2254
2256
goto failure ;
2255
2257
}
2256
2258
2257
- if (fptr -> type == ZEND_INTERNAL_FUNCTION &&
2258
- !(fptr -> common .fn_flags & ZEND_ACC_USER_ARG_INFO )) {
2259
+ if (has_internal_arg_info (fptr )) {
2259
2260
for (i = 0 ; i < num_args ; i ++ ) {
2260
2261
if (arg_info [i ].name ) {
2261
2262
if (strcmp (((zend_internal_arg_info * )arg_info )[i ].name , Z_STRVAL_P (parameter )) == 0 ) {
@@ -2295,15 +2296,10 @@ ZEND_METHOD(reflection_parameter, __construct)
2295
2296
}
2296
2297
2297
2298
prop_name = reflection_prop_name (object );
2298
- if (arg_info [position ].name ) {
2299
- if (fptr -> type == ZEND_INTERNAL_FUNCTION &&
2300
- !(fptr -> common .fn_flags & ZEND_ACC_USER_ARG_INFO )) {
2301
- ZVAL_STRING (prop_name , ((zend_internal_arg_info * )arg_info )[position ].name );
2302
- } else {
2303
- ZVAL_STR_COPY (prop_name , arg_info [position ].name );
2304
- }
2299
+ if (has_internal_arg_info (fptr )) {
2300
+ ZVAL_STRING (prop_name , ((zend_internal_arg_info * )arg_info )[position ].name );
2305
2301
} else {
2306
- ZVAL_NULL (prop_name );
2302
+ ZVAL_STR_COPY (prop_name , arg_info [ position ]. name );
2307
2303
}
2308
2304
return ;
2309
2305
@@ -2340,10 +2336,19 @@ ZEND_METHOD(reflection_parameter, __toString)
2340
2336
Returns this parameters's name */
2341
2337
ZEND_METHOD (reflection_parameter , getName )
2342
2338
{
2339
+ reflection_object * intern ;
2340
+ parameter_reference * param ;
2341
+
2343
2342
if (zend_parse_parameters_none () == FAILURE ) {
2344
2343
RETURN_THROWS ();
2345
2344
}
2346
- _default_get_name (ZEND_THIS , return_value );
2345
+
2346
+ GET_REFLECTION_OBJECT_PTR (param );
2347
+ if (has_internal_arg_info (param -> fptr )) {
2348
+ RETURN_STRING (((zend_internal_arg_info * ) param -> arg_info )-> name );
2349
+ } else {
2350
+ RETURN_STR_COPY (param -> arg_info -> name );
2351
+ }
2347
2352
}
2348
2353
/* }}} */
2349
2354
@@ -3862,10 +3867,15 @@ ZEND_METHOD(reflection_class, __toString)
3862
3867
Returns the class' name */
3863
3868
ZEND_METHOD (reflection_class , getName )
3864
3869
{
3870
+ reflection_object * intern ;
3871
+ zend_class_entry * ce ;
3872
+
3865
3873
if (zend_parse_parameters_none () == FAILURE ) {
3866
3874
RETURN_THROWS ();
3867
3875
}
3868
- _default_get_name (ZEND_THIS , return_value );
3876
+
3877
+ GET_REFLECTION_OBJECT_PTR (ce );
3878
+ RETURN_STR_COPY (ce -> name );
3869
3879
}
3870
3880
/* }}} */
3871
3881
@@ -5217,10 +5227,15 @@ ZEND_METHOD(reflection_property, __toString)
5217
5227
Returns the class' name */
5218
5228
ZEND_METHOD (reflection_property , getName )
5219
5229
{
5230
+ reflection_object * intern ;
5231
+ property_reference * ref ;
5232
+
5220
5233
if (zend_parse_parameters_none () == FAILURE ) {
5221
5234
RETURN_THROWS ();
5222
5235
}
5223
- _default_get_name (ZEND_THIS , return_value );
5236
+
5237
+ GET_REFLECTION_OBJECT_PTR (ref );
5238
+ RETURN_STR_COPY (ref -> unmangled_name );
5224
5239
}
5225
5240
/* }}} */
5226
5241
@@ -5657,10 +5672,15 @@ ZEND_METHOD(reflection_extension, __toString)
5657
5672
Returns this extension's name */
5658
5673
ZEND_METHOD (reflection_extension , getName )
5659
5674
{
5675
+ reflection_object * intern ;
5676
+ zend_module_entry * module ;
5677
+
5660
5678
if (zend_parse_parameters_none () == FAILURE ) {
5661
5679
RETURN_THROWS ();
5662
5680
}
5663
- _default_get_name (ZEND_THIS , return_value );
5681
+
5682
+ GET_REFLECTION_OBJECT_PTR (module );
5683
+ RETURN_STRING (module -> name );
5664
5684
}
5665
5685
/* }}} */
5666
5686
0 commit comments