MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / moduleParseCallReply_Array

Function moduleParseCallReply_Array

src/module.cpp:3922–3949  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3920}
3921
3922void moduleParseCallReply_Array(RedisModuleCallReply *reply) {
3923 char *proto = reply->proto;
3924 char *p = strchr(proto+1,'\r');
3925 long long arraylen, j;
3926
3927 string2ll(proto+1,p-proto-1,&arraylen);
3928 p += 2;
3929
3930 if (arraylen == -1) {
3931 reply->protolen = p-proto;
3932 reply->type = REDISMODULE_REPLY_NULL;
3933 return;
3934 }
3935
3936 reply->val.array = (RedisModuleCallReply*)zmalloc(sizeof(RedisModuleCallReply)*arraylen, MALLOC_LOCAL);
3937 reply->len = arraylen;
3938 for (j = 0; j < arraylen; j++) {
3939 RedisModuleCallReply *ele = reply->val.array+j;
3940 ele->flags = REDISMODULE_REPLYFLAG_NESTED |
3941 REDISMODULE_REPLYFLAG_TOPARSE;
3942 ele->proto = p;
3943 ele->ctx = reply->ctx;
3944 moduleParseCallReply(ele);
3945 p += ele->protolen;
3946 }
3947 reply->protolen = p-proto;
3948 reply->type = REDISMODULE_REPLY_ARRAY;
3949}
3950
3951/* Recursive free reply function. */
3952void moduleFreeCallReplyRec(RedisModuleCallReply *reply, int freenested){

Callers 1

moduleParseCallReplyFunction · 0.85

Calls 3

zmallocFunction · 0.85
moduleParseCallReplyFunction · 0.85
string2llFunction · 0.70

Tested by

no test coverage detected