@@ -941,6 +941,8 @@ PHP_METHOD(SoapFault, __toString)
941
941
zend_string * str ;
942
942
zend_fcall_info fci ;
943
943
zval * this_ptr ;
944
+ zend_string * faultcode_val , * faultstring_val , * file_val ;
945
+ zend_long line_val ;
944
946
945
947
if (zend_parse_parameters_none () == FAILURE ) {
946
948
return ;
@@ -966,16 +968,19 @@ PHP_METHOD(SoapFault, __toString)
966
968
967
969
zval_ptr_dtor (& fci .function_name );
968
970
969
- convert_to_string (faultcode );
970
- convert_to_string (faultstring );
971
- convert_to_string (file );
972
- convert_to_long (line );
971
+ faultcode_val = zval_get_string (faultcode );
972
+ faultstring_val = zval_get_string (faultstring );
973
+ file_val = zval_get_string (file );
974
+ line_val = zval_get_long (line );
973
975
convert_to_string (& trace );
974
976
975
977
str = strpprintf (0 , "SoapFault exception: [%s] %s in %s:%pd\nStack trace:\n%s" ,
976
- Z_STRVAL_P ( faultcode ), Z_STRVAL_P ( faultstring ), Z_STRVAL_P ( file ), Z_LVAL_P ( line ) ,
978
+ ZSTR_VAL ( faultcode_val ), ZSTR_VAL ( faultstring_val ), ZSTR_VAL ( file_val ), line_val ,
977
979
Z_STRLEN (trace ) ? Z_STRVAL (trace ) : "#0 {main}\n" );
978
980
981
+ zend_string_release (file_val );
982
+ zend_string_release (faultstring_val );
983
+ zend_string_release (faultcode_val );
979
984
zval_ptr_dtor (& trace );
980
985
981
986
RETVAL_STR (str );
0 commit comments