diff --git a/library.c b/library.c index 91c2f2f..7dade9d 100644 --- a/library.c +++ b/library.c @@ -1072,8 +1072,15 @@ int redis_cmd_append_sstr_int(smart_string *str, int append) { * Append a long to a smart string command */ int redis_cmd_append_sstr_long(smart_string *str, long append) { + return redis_cmd_append_sstr_zend_long(str, (zend_long) append); +} + +/* + * Append a zend_long to a smart string command + */ +int redis_cmd_append_sstr_zend_long(smart_string *str, zend_long lval) { char long_buf[32]; - char *result = zend_print_long_to_buf(long_buf + sizeof(long_buf) - 1, append); + char *result = zend_print_long_to_buf(long_buf + sizeof(long_buf) - 1, lval); int int_len = long_buf + sizeof(long_buf) - 1 - result; return redis_cmd_append_sstr(str, result, int_len); } diff --git a/library.h b/library.h index 6fa7512..b39fcb6 100644 --- a/library.h +++ b/library.h @@ -50,6 +50,7 @@ int redis_cmd_init_sstr(smart_string *str, int num_args, char *keyword, int keyw int redis_cmd_append_sstr(smart_string *str, char *append, int append_len); int redis_cmd_append_sstr_int(smart_string *str, int append); int redis_cmd_append_sstr_long(smart_string *str, long append); +int redis_cmd_append_sstr_zend_long(smart_string *str, zend_long append); int redis_cmd_append_sstr_i64(smart_string *str, int64_t append); int redis_cmd_append_sstr_u64(smart_string *str, uint64_t append); int redis_cmd_append_sstr_dbl(smart_string *str, double value); diff --git a/redis_commands.c b/redis_commands.c index d51371b..2ca0bb5 100644 --- a/redis_commands.c +++ b/redis_commands.c @@ -1208,7 +1208,7 @@ static int redis_cmd_append_sstr_score(smart_string *dst, zval *score) { cmdlen = dst->len; if (Z_TYPE_P(score) == IS_LONG) { - redis_cmd_append_sstr_long(dst, Z_LVAL_P(score)); + redis_cmd_append_sstr_zend_long(dst, Z_LVAL_P(score)); } else if (Z_TYPE_P(score) == IS_DOUBLE) { redis_cmd_append_sstr_dbl(dst, Z_DVAL_P(score)); } else if (Z_TYPE_P(score) == IS_STRING) {