@@ -941,7 +941,7 @@ static void _property_string(string *str, zend_property_info *prop, char *prop_n
941
941
string_printf (str , "static " );
942
942
}
943
943
944
- zend_unmangle_property_name (prop -> name -> val , prop -> name -> len , & class_name , (const char * * )& prop_name );
944
+ zend_unmangle_property_name (prop -> name , & class_name , (const char * * )& prop_name );
945
945
string_printf (str , "$%s" , prop_name );
946
946
}
947
947
@@ -1298,9 +1298,9 @@ static void reflection_property_factory(zend_class_entry *ce, zend_property_info
1298
1298
zval classname ;
1299
1299
property_reference * reference ;
1300
1300
const char * class_name , * prop_name ;
1301
- int prop_name_len ;
1301
+ size_t prop_name_len ;
1302
1302
1303
- zend_unmangle_property_name_ex (prop -> name -> val , prop -> name -> len , & class_name , & prop_name , & prop_name_len );
1303
+ zend_unmangle_property_name_ex (prop -> name , & class_name , & prop_name , & prop_name_len );
1304
1304
1305
1305
if (!(prop -> flags & ZEND_ACC_PRIVATE )) {
1306
1306
/* we have to search the class hierarchy for this (implicit) public or protected property */
@@ -4733,7 +4733,6 @@ ZEND_METHOD(reflection_property, __construct)
4733
4733
{
4734
4734
zval propname , cname , * classname ;
4735
4735
char * name_str ;
4736
- const char * class_name , * prop_name ;
4737
4736
size_t name_len ;
4738
4737
int dynam_prop = 0 ;
4739
4738
zval * object ;
@@ -4797,9 +4796,11 @@ ZEND_METHOD(reflection_property, __construct)
4797
4796
}
4798
4797
4799
4798
if (dynam_prop == 0 ) {
4800
- zend_unmangle_property_name (property_info -> name -> val , property_info -> name -> len , & class_name , & prop_name );
4799
+ const char * class_name , * prop_name ;
4800
+ size_t prop_name_len ;
4801
+ zend_unmangle_property_name_ex (property_info -> name , & class_name , & prop_name , & prop_name_len );
4801
4802
ZVAL_STR (& cname , zend_string_copy (property_info -> ce -> name ));
4802
- ZVAL_STRING (& propname , prop_name );
4803
+ ZVAL_STRINGL (& propname , prop_name , prop_name_len );
4803
4804
} else {
4804
4805
ZVAL_STR (& cname , zend_string_copy (ce -> name ));
4805
4806
ZVAL_STRINGL (& propname , name_str , name_len );
@@ -4950,12 +4951,14 @@ ZEND_METHOD(reflection_property, getValue)
4950
4951
ZVAL_DUP (return_value , & CE_STATIC_MEMBERS (intern -> ce )[ref -> prop .offset ]);
4951
4952
} else {
4952
4953
const char * class_name , * prop_name ;
4954
+ size_t prop_name_len ;
4953
4955
4954
4956
if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "o" , & object ) == FAILURE ) {
4955
4957
return ;
4956
4958
}
4957
- zend_unmangle_property_name (ref -> prop .name -> val , ref -> prop .name -> len , & class_name , & prop_name );
4958
- member_p = zend_read_property (ref -> ce , object , prop_name , strlen (prop_name ), 1 TSRMLS_CC );
4959
+
4960
+ zend_unmangle_property_name_ex (ref -> prop .name , & class_name , & prop_name , & prop_name_len );
4961
+ member_p = zend_read_property (ref -> ce , object , prop_name , prop_name_len , 1 TSRMLS_CC );
4959
4962
ZVAL_DUP (return_value , member_p );
4960
4963
}
4961
4964
}
@@ -5024,12 +5027,14 @@ ZEND_METHOD(reflection_property, setValue)
5024
5027
}
5025
5028
} else {
5026
5029
const char * class_name , * prop_name ;
5030
+ size_t prop_name_len ;
5027
5031
5028
5032
if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "oz" , & object , & value ) == FAILURE ) {
5029
5033
return ;
5030
5034
}
5031
- zend_unmangle_property_name (ref -> prop .name -> val , ref -> prop .name -> len , & class_name , & prop_name );
5032
- zend_update_property (ref -> ce , object , prop_name , strlen (prop_name ), value TSRMLS_CC );
5035
+
5036
+ zend_unmangle_property_name_ex (ref -> prop .name , & class_name , & prop_name , & prop_name_len );
5037
+ zend_update_property (ref -> ce , object , prop_name , prop_name_len , value TSRMLS_CC );
5033
5038
}
5034
5039
}
5035
5040
/* }}} */
@@ -5043,18 +5048,17 @@ ZEND_METHOD(reflection_property, getDeclaringClass)
5043
5048
zend_class_entry * tmp_ce , * ce ;
5044
5049
zend_property_info * tmp_info ;
5045
5050
const char * prop_name , * class_name ;
5046
- int prop_name_len ;
5051
+ size_t prop_name_len ;
5047
5052
5048
5053
if (zend_parse_parameters_none () == FAILURE ) {
5049
5054
return ;
5050
5055
}
5051
5056
GET_REFLECTION_OBJECT_PTR (ref );
5052
5057
5053
- if (zend_unmangle_property_name (ref -> prop .name -> val , ref -> prop . name -> len , & class_name , & prop_name ) != SUCCESS ) {
5058
+ if (zend_unmangle_property_name_ex (ref -> prop .name , & class_name , & prop_name , & prop_name_len ) != SUCCESS ) {
5054
5059
RETURN_FALSE ;
5055
5060
}
5056
5061
5057
- prop_name_len = strlen (prop_name );
5058
5062
ce = tmp_ce = ref -> ce ;
5059
5063
while (tmp_ce && (tmp_info = zend_hash_str_find_ptr (& tmp_ce -> properties_info , prop_name , prop_name_len )) != NULL ) {
5060
5064
if (tmp_info -> flags & ZEND_ACC_PRIVATE || tmp_info -> flags & ZEND_ACC_SHADOW ) {
0 commit comments