@@ -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
}
@@ -3477,7 +3477,7 @@ static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *type)
3477
3477
{
3478
3478
HashTable * ht ;
3479
3479
int i , cur_type , prev_type , different ;
3480
- zval * tmp ;
3480
+ zval * tmp , rv ;
3481
3481
char * prev_stype = NULL , * cur_stype = NULL , * prev_ns = NULL , * cur_ns = NULL ;
3482
3482
3483
3483
if (!array || Z_TYPE_P (array ) != IS_ARRAY ) {
@@ -3496,21 +3496,21 @@ static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *type)
3496
3496
Z_OBJCE_P (tmp ) == soap_var_class_entry ) {
3497
3497
zval * ztype ;
3498
3498
3499
- if (( ztype = zend_hash_str_find_deref ( Z_OBJPROP_P (tmp ), "enc_type" , sizeof ("enc_type" )- 1 )) == NULL ||
3500
- Z_TYPE_P (ztype ) != IS_LONG ) {
3499
+ ztype = zend_read_property ( soap_var_class_entry , Z_OBJ_P (tmp ), "enc_type" , sizeof ("enc_type" )- 1 , 1 , & rv );
3500
+ if ( ztype == NULL || Z_TYPE_P (ztype ) != IS_LONG ) {
3501
3501
soap_error0 (E_ERROR , "Encoding: SoapVar has no 'enc_type' property" );
3502
3502
}
3503
3503
cur_type = Z_LVAL_P (ztype );
3504
3504
3505
- if (( ztype = zend_hash_str_find_deref ( Z_OBJPROP_P (tmp ), "enc_stype" , sizeof ("enc_stype" )- 1 )) != NULL &&
3506
- Z_TYPE_P (ztype ) == IS_STRING ) {
3505
+ ztype = zend_read_property ( soap_var_class_entry , Z_OBJ_P (tmp ), "enc_stype" , sizeof ("enc_stype" )- 1 , 1 , & rv );
3506
+ if ( ztype != NULL && Z_TYPE_P (ztype ) == IS_STRING ) {
3507
3507
cur_stype = Z_STRVAL_P (ztype );
3508
3508
} else {
3509
3509
cur_stype = NULL ;
3510
3510
}
3511
3511
3512
- if (( ztype = zend_hash_str_find_deref ( Z_OBJPROP_P (tmp ), "enc_ns" , sizeof ("enc_ns" )- 1 )) != NULL &&
3513
- Z_TYPE_P (ztype ) == IS_STRING ) {
3512
+ ztype = zend_read_property ( soap_var_class_entry , Z_OBJ_P (tmp ), "enc_ns" , sizeof ("enc_ns" )- 1 , 1 , & rv );
3513
+ if ( ztype != NULL && Z_TYPE_P (ztype ) == IS_STRING ) {
3514
3514
cur_ns = Z_STRVAL_P (ztype );
3515
3515
} else {
3516
3516
cur_ns = NULL ;
0 commit comments