Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpredis/phpredis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavlo Yatsukhnenko <yatsukhnenko@gmail.com>2016-10-11 23:32:19 +0300
committerPavlo Yatsukhnenko <yatsukhnenko@gmail.com>2016-10-11 23:32:19 +0300
commitc2ae622ed8b4bb0d91fd26155faba413516ab6b7 (patch)
treea16707972dd8751670a738ce181c529178eee226 /cluster_library.c
parent75183064b541ddbc948843ca48b46614a500a43b (diff)
WIP: php7 compatibility
Redefine add_next_index_stringl
Diffstat (limited to 'cluster_library.c')
-rw-r--r--cluster_library.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/cluster_library.c b/cluster_library.c
index aaae63af..4c321900 100644
--- a/cluster_library.c
+++ b/cluster_library.c
@@ -1488,6 +1488,7 @@ PHP_REDIS_API void cluster_bulk_raw_resp(INTERNAL_FUNCTION_PARAMETERS,
// Return our response raw
CLUSTER_RETURN_STRING(c, resp, c->reply_len);
+ efree(resp);
}
/* BULK response handler */
@@ -1508,18 +1509,16 @@ PHP_REDIS_API void cluster_bulk_resp(INTERNAL_FUNCTION_PARAMETERS, redisCluster
TSRMLS_CC) == 0)
{
CLUSTER_RETURN_STRING(c, resp, c->reply_len);
- } else {
- efree(resp);
}
} else {
zval *z = NULL;
if (redis_unserialize(c->flags, resp, c->reply_len, &z TSRMLS_CC)) {
- efree(resp);
add_next_index_zval(c->multi_resp, z);
} else {
- add_next_index_stringl(c->multi_resp, resp, c->reply_len, 0);
+ add_next_index_stringl(c->multi_resp, resp, c->reply_len);
}
}
+ efree(resp);
}
/* Bulk response where we expect a double */
@@ -1820,10 +1819,12 @@ static void cluster_mbulk_variant_resp(clusterReply *r, zval *z_ret)
add_next_index_bool(z_ret, 1);
break;
case TYPE_BULK:
- if (r->len > -1)
- add_next_index_stringl(z_ret, r->str, r->len, 0);
- else
+ if (r->len > -1) {
+ add_next_index_stringl(z_ret, r->str, r->len);
+ efree(r->str);
+ } else {
add_next_index_null(z_ret);
+ }
break;
case TYPE_MULTIBULK:
MAKE_STD_ZVAL(z_sub_ele);
@@ -1895,7 +1896,8 @@ PHP_REDIS_API void cluster_variant_resp(INTERNAL_FUNCTION_PARAMETERS, redisClust
add_next_index_bool(c->multi_resp, 1);
break;
case TYPE_BULK:
- add_next_index_stringl(c->multi_resp, r->str, r->len, 0);
+ add_next_index_stringl(c->multi_resp, r->str, r->len);
+ efree(r->str);
break;
case TYPE_MULTIBULK:
cluster_mbulk_variant_resp(r, c->multi_resp);
@@ -2315,7 +2317,8 @@ int mbulk_resp_loop_raw(RedisSock *redis_sock, zval *z_result,
if(line == NULL) return FAILURE;
// Add to our result array
- add_next_index_stringl(z_result, line, line_len, 0);
+ add_next_index_stringl(z_result, line, line_len);
+ efree(line);
}
// Success!
@@ -2338,10 +2341,10 @@ int mbulk_resp_loop(RedisSock *redis_sock, zval *z_result,
zval *z = NULL;
if(redis_unserialize(redis_sock, line, line_len, &z TSRMLS_CC)==1) {
add_next_index_zval(z_result, z);
- efree(line);
} else {
- add_next_index_stringl(z_result, line, line_len, 0);
+ add_next_index_stringl(z_result, line, line_len);
}
+ efree(line);
} else {
if (line) efree(line);
add_next_index_bool(z_result, 0);