@@ -1089,7 +1089,7 @@ redis_cmd_append_sstr_dbl(smart_string *str, double value)
1089
1089
* the value may be serialized, if we're configured to do that. */
1090
1090
int redis_cmd_append_sstr_zval (smart_string * str , zval * z , RedisSock * redis_sock ) {
1091
1091
int valfree , retval ;
1092
- zend_string * zstr ;
1092
+ zend_string * zstr , * tmp ;
1093
1093
size_t vallen ;
1094
1094
char * val ;
1095
1095
@@ -1098,9 +1098,9 @@ int redis_cmd_append_sstr_zval(smart_string *str, zval *z, RedisSock *redis_sock
1098
1098
retval = redis_cmd_append_sstr (str , val , vallen );
1099
1099
if (valfree ) efree (val );
1100
1100
} else {
1101
- zstr = zval_get_string ( z );
1102
- retval = redis_cmd_append_sstr_zstr (str , zstr );
1103
- zend_string_release ( zstr );
1101
+ zstr = zval_get_tmp_string ( z , & tmp );
1102
+ retval = redis_cmd_append_sstr (str , ZSTR_VAL ( zstr ), ZSTR_LEN ( zstr ) );
1103
+ zend_tmp_string_release ( tmp );
1104
1104
}
1105
1105
1106
1106
return retval ;
@@ -1128,12 +1128,12 @@ int redis_cmd_append_sstr_key_zstr(smart_string *dst, zend_string *key, RedisSoc
1128
1128
}
1129
1129
1130
1130
int redis_cmd_append_sstr_key_zval (smart_string * dst , zval * zv , RedisSock * redis_sock , short * slot ) {
1131
- zend_string * key ;
1131
+ zend_string * key , * tmp ;
1132
1132
int res ;
1133
1133
1134
- key = zval_get_string (zv );
1135
- res = redis_cmd_append_sstr_key_zstr (dst , key , redis_sock , slot );
1136
- zend_string_release ( key );
1134
+ key = zval_get_tmp_string (zv , & tmp );
1135
+ res = redis_cmd_append_sstr_key (dst , ZSTR_VAL ( key ), ZSTR_LEN ( key ) , redis_sock , slot );
1136
+ zend_tmp_string_release ( tmp );
1137
1137
1138
1138
return res ;
1139
1139
}
0 commit comments