@@ -384,17 +384,17 @@ static xmlNodePtr master_to_xml_int(encodePtr encode, zval *data, int style, xml
384
384
Z_OBJCE_P (data ) == soap_var_class_entry ) {
385
385
zval * ztype , * zdata , * zns , * zstype , * zname , * znamens ;
386
386
encodePtr enc = NULL ;
387
- HashTable * ht = Z_OBJPROP_P ( data ) ;
387
+ zval rv ;
388
388
389
- if (( ztype = zend_hash_str_find_deref ( ht , "enc_type" , sizeof ("enc_type" )- 1 )) == NULL ||
390
- Z_TYPE_P (ztype ) != IS_LONG ) {
389
+ ztype = zend_read_property ( soap_var_class_entry , Z_OBJ_P ( data ), "enc_type" , sizeof ("enc_type" )- 1 , 1 , & rv );
390
+ if ( ztype == NULL || Z_TYPE_P (ztype ) != IS_LONG ) {
391
391
soap_error0 (E_ERROR , "Encoding: SoapVar has no 'enc_type' property" );
392
392
}
393
393
394
- if (( zstype = zend_hash_str_find_deref ( ht , "enc_stype" , sizeof ("enc_stype" )- 1 )) != NULL &&
395
- Z_TYPE_P (zstype ) == IS_STRING ) {
396
- if (( zns = zend_hash_str_find_deref ( ht , "enc_ns" , sizeof ("enc_ns" )- 1 )) != NULL &&
397
- Z_TYPE_P (zns ) == IS_STRING ) {
394
+ zstype = zend_read_property ( soap_var_class_entry , Z_OBJ_P ( data ), "enc_stype" , sizeof ("enc_stype" )- 1 , 1 , & rv );
395
+ if ( zstype != NULL && Z_TYPE_P (zstype ) == IS_STRING ) {
396
+ zns = zend_read_property ( soap_var_class_entry , Z_OBJ_P ( data ), "enc_ns" , sizeof ("enc_ns" )- 1 , 1 , & rv );
397
+ if ( zns != NULL && Z_TYPE_P (zns ) == IS_STRING ) {
398
398
enc = get_encoder (SOAP_GLOBAL (sdl ), Z_STRVAL_P (zns ), Z_STRVAL_P (zstype ));
399
399
} else {
400
400
zns = NULL ;
@@ -420,27 +420,27 @@ static xmlNodePtr master_to_xml_int(encodePtr encode, zval *data, int style, xml
420
420
enc = encode ;
421
421
}
422
422
423
- zdata = zend_hash_str_find_deref ( ht , "enc_value" , sizeof ("enc_value" )- 1 );
423
+ zdata = zend_read_property ( soap_var_class_entry , Z_OBJ_P ( data ), "enc_value" , sizeof ("enc_value" )- 1 , 1 , & rv );
424
424
node = master_to_xml (enc , zdata , style , parent );
425
425
426
426
if (style == SOAP_ENCODED || (SOAP_GLOBAL (sdl ) && encode != enc )) {
427
- if (( zstype = zend_hash_str_find_deref ( ht , "enc_stype" , sizeof ("enc_stype" )- 1 )) != NULL &&
428
- Z_TYPE_P (zstype ) == IS_STRING ) {
429
- if (( zns = zend_hash_str_find_deref ( ht , "enc_ns" , sizeof ("enc_ns" )- 1 )) != NULL &&
430
- Z_TYPE_P (zns ) == IS_STRING ) {
427
+ zstype = zend_read_property ( soap_var_class_entry , Z_OBJ_P ( data ), "enc_stype" , sizeof ("enc_stype" )- 1 , 1 , & rv );
428
+ if ( zstype != NULL && Z_TYPE_P (zstype ) == IS_STRING ) {
429
+ zns = zend_read_property ( soap_var_class_entry , Z_OBJ_P ( data ), "enc_ns" , sizeof ("enc_ns" )- 1 , 1 , & rv );
430
+ if ( zns != NULL && Z_TYPE_P (zns ) == IS_STRING ) {
431
431
set_ns_and_type_ex (node , Z_STRVAL_P (zns ), Z_STRVAL_P (zstype ));
432
432
} else {
433
433
set_ns_and_type_ex (node , NULL , Z_STRVAL_P (zstype ));
434
434
}
435
435
}
436
436
}
437
437
438
- if (( zname = zend_hash_str_find_deref ( ht , "enc_name" , sizeof ("enc_name" )- 1 )) != NULL &&
439
- Z_TYPE_P (zname ) == IS_STRING ) {
438
+ zname = zend_read_property ( soap_var_class_entry , Z_OBJ_P ( data ), "enc_name" , sizeof ("enc_name" )- 1 , 1 , & rv );
439
+ if ( zname != NULL && Z_TYPE_P (zname ) == IS_STRING ) {
440
440
xmlNodeSetName (node , BAD_CAST (Z_STRVAL_P (zname )));
441
441
}
442
- if (( znamens = zend_hash_str_find_deref ( ht , "enc_namens" , sizeof ("enc_namens" )- 1 )) != NULL &&
443
- Z_TYPE_P (znamens ) == IS_STRING ) {
442
+ znamens = zend_read_property ( soap_var_class_entry , Z_OBJ_P ( data ), "enc_namens" , sizeof ("enc_namens" )- 1 , 1 , & rv );
443
+ if ( znamens != NULL && Z_TYPE_P (znamens ) == IS_STRING ) {
444
444
xmlNsPtr nsp = encode_add_ns (node , Z_STRVAL_P (znamens ));
445
445
xmlSetNs (node , nsp );
446
446
}
@@ -3472,7 +3472,7 @@ static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *type)
3472
3472
{
3473
3473
HashTable * ht ;
3474
3474
int i , cur_type , prev_type , different ;
3475
- zval * tmp ;
3475
+ zval * tmp , rv ;
3476
3476
char * prev_stype = NULL , * cur_stype = NULL , * prev_ns = NULL , * cur_ns = NULL ;
3477
3477
3478
3478
if (!array || Z_TYPE_P (array ) != IS_ARRAY ) {
@@ -3491,21 +3491,21 @@ static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *type)
3491
3491
Z_OBJCE_P (tmp ) == soap_var_class_entry ) {
3492
3492
zval * ztype ;
3493
3493
3494
- if (( ztype = zend_hash_str_find_deref ( Z_OBJPROP_P (tmp ), "enc_type" , sizeof ("enc_type" )- 1 )) == NULL ||
3495
- Z_TYPE_P (ztype ) != IS_LONG ) {
3494
+ ztype = zend_read_property ( soap_var_class_entry , Z_OBJ_P (tmp ), "enc_type" , sizeof ("enc_type" )- 1 , 1 , & rv );
3495
+ if ( ztype == NULL || Z_TYPE_P (ztype ) != IS_LONG ) {
3496
3496
soap_error0 (E_ERROR , "Encoding: SoapVar has no 'enc_type' property" );
3497
3497
}
3498
3498
cur_type = Z_LVAL_P (ztype );
3499
3499
3500
- if (( ztype = zend_hash_str_find_deref ( Z_OBJPROP_P (tmp ), "enc_stype" , sizeof ("enc_stype" )- 1 )) != NULL &&
3501
- Z_TYPE_P (ztype ) == IS_STRING ) {
3500
+ ztype = zend_read_property ( soap_var_class_entry , Z_OBJ_P (tmp ), "enc_stype" , sizeof ("enc_stype" )- 1 , 1 , & rv );
3501
+ if ( ztype != NULL && Z_TYPE_P (ztype ) == IS_STRING ) {
3502
3502
cur_stype = Z_STRVAL_P (ztype );
3503
3503
} else {
3504
3504
cur_stype = NULL ;
3505
3505
}
3506
3506
3507
- if (( ztype = zend_hash_str_find_deref ( Z_OBJPROP_P (tmp ), "enc_ns" , sizeof ("enc_ns" )- 1 )) != NULL &&
3508
- Z_TYPE_P (ztype ) == IS_STRING ) {
3507
+ ztype = zend_read_property ( soap_var_class_entry , Z_OBJ_P (tmp ), "enc_ns" , sizeof ("enc_ns" )- 1 , 1 , & rv );
3508
+ if ( ztype != NULL && Z_TYPE_P (ztype ) == IS_STRING ) {
3509
3509
cur_ns = Z_STRVAL_P (ztype );
3510
3510
} else {
3511
3511
cur_ns = NULL ;
0 commit comments