@@ -386,15 +386,15 @@ static xmlNodePtr master_to_xml_int(encodePtr encode, zval *data, int style, xml
386
386
encodePtr enc = NULL ;
387
387
zval rv ;
388
388
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 ) {
389
+ ztype = zend_read_property_deref (soap_var_class_entry , Z_OBJ_P (data ), "enc_type" , sizeof ("enc_type" )- 1 , 1 , & rv );
390
+ if (Z_TYPE_P (ztype ) != IS_LONG ) {
391
391
soap_error0 (E_ERROR , "Encoding: SoapVar has no 'enc_type' property" );
392
392
}
393
393
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 ) {
394
+ zstype = zend_read_property_deref (soap_var_class_entry , Z_OBJ_P (data ), "enc_stype" , sizeof ("enc_stype" )- 1 , 1 , & rv );
395
+ if (Z_TYPE_P (zstype ) == IS_STRING ) {
396
+ zns = zend_read_property_deref (soap_var_class_entry , Z_OBJ_P (data ), "enc_ns" , sizeof ("enc_ns" )- 1 , 1 , & rv );
397
+ if (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_read_property (soap_var_class_entry , Z_OBJ_P (data ), "enc_value" , sizeof ("enc_value" )- 1 , 1 , & rv );
423
+ zdata = zend_read_property_deref (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
- 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 ) {
427
+ zstype = zend_read_property_deref (soap_var_class_entry , Z_OBJ_P (data ), "enc_stype" , sizeof ("enc_stype" )- 1 , 1 , & rv );
428
+ if (Z_TYPE_P (zstype ) == IS_STRING ) {
429
+ zns = zend_read_property_deref (soap_var_class_entry , Z_OBJ_P (data ), "enc_ns" , sizeof ("enc_ns" )- 1 , 1 , & rv );
430
+ if (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
- 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 ) {
438
+ zname = zend_read_property_deref (soap_var_class_entry , Z_OBJ_P (data ), "enc_name" , sizeof ("enc_name" )- 1 , 1 , & rv );
439
+ if (Z_TYPE_P (zname ) == IS_STRING ) {
440
440
xmlNodeSetName (node , BAD_CAST (Z_STRVAL_P (zname )));
441
441
}
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 ) {
442
+ znamens = zend_read_property_deref (soap_var_class_entry , Z_OBJ_P (data ), "enc_namens" , sizeof ("enc_namens" )- 1 , 1 , & rv );
443
+ if (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
}
@@ -1170,11 +1170,10 @@ static void set_zval_property(zval* object, char* name, zval* val)
1170
1170
static zval * get_zval_property (zval * object , char * name , zval * rv )
1171
1171
{
1172
1172
if (Z_TYPE_P (object ) == IS_OBJECT ) {
1173
- zval * data = zend_read_property (Z_OBJCE_P (object ), Z_OBJ_P (object ), name , strlen (name ), 1 , rv );
1173
+ zval * data = zend_read_property_deref (Z_OBJCE_P (object ), Z_OBJ_P (object ), name , strlen (name ), 1 , rv );
1174
1174
if (data == & EG (uninitialized_zval )) {
1175
1175
return NULL ;
1176
1176
}
1177
- ZVAL_DEREF (data );
1178
1177
return data ;
1179
1178
} else if (Z_TYPE_P (object ) == IS_ARRAY ) {
1180
1179
return zend_hash_str_find_deref (Z_ARRVAL_P (object ), name , strlen (name ));
@@ -3496,21 +3495,21 @@ static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *type)
3496
3495
Z_OBJCE_P (tmp ) == soap_var_class_entry ) {
3497
3496
zval * ztype ;
3498
3497
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 ) {
3498
+ ztype = zend_read_property_deref (soap_var_class_entry , Z_OBJ_P (tmp ), "enc_type" , sizeof ("enc_type" )- 1 , 1 , & rv );
3499
+ if (Z_TYPE_P (ztype ) != IS_LONG ) {
3501
3500
soap_error0 (E_ERROR , "Encoding: SoapVar has no 'enc_type' property" );
3502
3501
}
3503
3502
cur_type = Z_LVAL_P (ztype );
3504
3503
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 ) {
3504
+ ztype = zend_read_property_deref (soap_var_class_entry , Z_OBJ_P (tmp ), "enc_stype" , sizeof ("enc_stype" )- 1 , 1 , & rv );
3505
+ if (Z_TYPE_P (ztype ) == IS_STRING ) {
3507
3506
cur_stype = Z_STRVAL_P (ztype );
3508
3507
} else {
3509
3508
cur_stype = NULL ;
3510
3509
}
3511
3510
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 ) {
3511
+ ztype = zend_read_property_deref (soap_var_class_entry , Z_OBJ_P (tmp ), "enc_ns" , sizeof ("enc_ns" )- 1 , 1 , & rv );
3512
+ if (Z_TYPE_P (ztype ) == IS_STRING ) {
3514
3513
cur_ns = Z_STRVAL_P (ztype );
3515
3514
} else {
3516
3515
cur_ns = NULL ;
0 commit comments