MCPcopy Create free account
hub / github.com/F-Stack/f-stack / moduleParseCallReply_Array

Function moduleParseCallReply_Array

app/redis-6.2.6/src/module.c:3834–3861  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3832}
3833
3834void moduleParseCallReply_Array(RedisModuleCallReply *reply) {
3835 char *proto = reply->proto;
3836 char *p = strchr(proto+1,'\r');
3837 long long arraylen, j;
3838
3839 string2ll(proto+1,p-proto-1,&arraylen);
3840 p += 2;
3841
3842 if (arraylen == -1) {
3843 reply->protolen = p-proto;
3844 reply->type = REDISMODULE_REPLY_NULL;
3845 return;
3846 }
3847
3848 reply->val.array = zmalloc(sizeof(RedisModuleCallReply)*arraylen);
3849 reply->len = arraylen;
3850 for (j = 0; j < arraylen; j++) {
3851 RedisModuleCallReply *ele = reply->val.array+j;
3852 ele->flags = REDISMODULE_REPLYFLAG_NESTED |
3853 REDISMODULE_REPLYFLAG_TOPARSE;
3854 ele->proto = p;
3855 ele->ctx = reply->ctx;
3856 moduleParseCallReply(ele);
3857 p += ele->protolen;
3858 }
3859 reply->protolen = p-proto;
3860 reply->type = REDISMODULE_REPLY_ARRAY;
3861}
3862
3863/* Recursive free reply function. */
3864void moduleFreeCallReplyRec(RedisModuleCallReply *reply, int freenested){

Callers 1

moduleParseCallReplyFunction · 0.85

Calls 4

strchrFunction · 0.85
zmallocFunction · 0.85
moduleParseCallReplyFunction · 0.85
string2llFunction · 0.70

Tested by

no test coverage detected