@@ -83,7 +83,6 @@ static xmlNodePtr to_xml_any(encodeTypePtr type, zval *data, int style, xmlNodeP
83
83
static zval * guess_zval_convert (zval * ret , encodeTypePtr type , xmlNodePtr data );
84
84
static xmlNodePtr guess_xml_convert (encodeTypePtr type , zval * data , int style , xmlNodePtr parent );
85
85
86
- static int is_map (zval * array );
87
86
static encodePtr get_array_type (xmlNodePtr node , zval * array , smart_str * out_type );
88
87
89
88
static xmlNodePtr check_and_resolve_href (xmlNodePtr data );
@@ -1664,7 +1663,7 @@ static int model_to_xml_object(xmlNodePtr node, sdlContentModelPtr model, zval *
1664
1663
enc = model -> u .element -> encode ;
1665
1664
if ((model -> max_occurs == -1 || model -> max_occurs > 1 ) &&
1666
1665
Z_TYPE_P (data ) == IS_ARRAY &&
1667
- ! is_map ( data )) {
1666
+ zend_array_is_list ( Z_ARRVAL_P ( data ) )) {
1668
1667
HashTable * ht = Z_ARRVAL_P (data );
1669
1668
zval * val ;
1670
1669
@@ -1743,7 +1742,7 @@ static int model_to_xml_object(xmlNodePtr node, sdlContentModelPtr model, zval *
1743
1742
enc = get_conversion (XSD_ANYXML );
1744
1743
if ((model -> max_occurs == -1 || model -> max_occurs > 1 ) &&
1745
1744
Z_TYPE_P (data ) == IS_ARRAY &&
1746
- ! is_map ( data )) {
1745
+ zend_array_is_list ( Z_ARRVAL_P ( data ) )) {
1747
1746
HashTable * ht = Z_ARRVAL_P (data );
1748
1747
zval * val ;
1749
1748
@@ -1918,7 +1917,7 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo
1918
1917
sdlTypePtr array_el ;
1919
1918
1920
1919
if (Z_TYPE_P (data ) == IS_ARRAY &&
1921
- ! is_map ( data ) &&
1920
+ zend_array_is_list ( Z_ARRVAL_P ( data ) ) &&
1922
1921
sdlType -> attributes == NULL &&
1923
1922
sdlType -> model != NULL &&
1924
1923
(array_el = model_array_element (sdlType -> model )) != NULL ) {
@@ -2028,7 +2027,7 @@ static xmlNodePtr guess_array_map(encodeTypePtr type, zval *data, int style, xml
2028
2027
encodePtr enc = NULL ;
2029
2028
2030
2029
if (data && Z_TYPE_P (data ) == IS_ARRAY ) {
2031
- if (is_map ( data )) {
2030
+ if (! zend_array_is_list ( Z_ARRVAL_P ( data ) )) {
2032
2031
enc = get_conversion (APACHE_MAP );
2033
2032
} else {
2034
2033
enc = get_conversion (SOAP_ENC_ARRAY );
@@ -3551,25 +3550,6 @@ encodePtr get_conversion(int encode)
3551
3550
}
3552
3551
}
3553
3552
3554
- static int is_map (zval * array )
3555
- {
3556
- zend_ulong index ;
3557
- zend_string * key ;
3558
- zend_ulong i = 0 ;
3559
-
3560
- if (HT_IS_PACKED (Z_ARRVAL_P (array )) && HT_IS_WITHOUT_HOLES (Z_ARRVAL_P (array ))) {
3561
- return FALSE;
3562
- }
3563
-
3564
- ZEND_HASH_FOREACH_KEY (Z_ARRVAL_P (array ), index , key ) {
3565
- if (key || index != i ) {
3566
- return TRUE;
3567
- }
3568
- i ++ ;
3569
- } ZEND_HASH_FOREACH_END ();
3570
- return FALSE;
3571
- }
3572
-
3573
3553
static encodePtr get_array_type (xmlNodePtr node , zval * array , smart_str * type )
3574
3554
{
3575
3555
HashTable * ht ;
@@ -3611,7 +3591,7 @@ static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *type)
3611
3591
cur_ns = NULL ;
3612
3592
}
3613
3593
3614
- } else if (Z_TYPE_P (tmp ) == IS_ARRAY && is_map ( tmp )) {
3594
+ } else if (Z_TYPE_P (tmp ) == IS_ARRAY && ! zend_array_is_list ( Z_ARRVAL_P ( tmp ) )) {
3615
3595
cur_type = APACHE_MAP ;
3616
3596
cur_stype = NULL ;
3617
3597
cur_ns = NULL ;
0 commit comments