diff options
author | Michael Grunder <michael.grunder@gmail.com> | 2021-01-26 11:20:25 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-26 11:20:25 -0800 |
commit | 7d99b56356aa9791a8b3ff0316da871d63afbb7a (patch) | |
tree | 87272ff5ffb296ba1347c331f1b9c914964d09c6 /async.c | |
parent | 4bba72103c93eaaa8a6e07176e60d46ab277cf8a (diff) | |
parent | 920128a260b0056f7b14b479232d96405d9a6e62 (diff) |
Merge pull request #917 from Nordix/stack-alloc-dict-iter
Stack allocate dict iterators
Diffstat (limited to 'async.c')
-rw-r--r-- | async.c | 20 |
1 files changed, 7 insertions, 13 deletions
@@ -306,7 +306,7 @@ static void __redisRunPushCallback(redisAsyncContext *ac, redisReply *reply) { static void __redisAsyncFree(redisAsyncContext *ac) { redisContext *c = &(ac->c); redisCallback cb; - dictIterator *it; + dictIterator it; dictEntry *de; /* Execute pending callbacks with NULL reply. */ @@ -319,23 +319,17 @@ static void __redisAsyncFree(redisAsyncContext *ac) { /* Run subscription callbacks with NULL reply */ if (ac->sub.channels) { - it = dictGetIterator(ac->sub.channels); - if (it != NULL) { - while ((de = dictNext(it)) != NULL) - __redisRunCallback(ac,dictGetEntryVal(de),NULL); - dictReleaseIterator(it); - } + dictInitIterator(&it,ac->sub.channels); + while ((de = dictNext(&it)) != NULL) + __redisRunCallback(ac,dictGetEntryVal(de),NULL); dictRelease(ac->sub.channels); } if (ac->sub.patterns) { - it = dictGetIterator(ac->sub.patterns); - if (it != NULL) { - while ((de = dictNext(it)) != NULL) - __redisRunCallback(ac,dictGetEntryVal(de),NULL); - dictReleaseIterator(it); - } + dictInitIterator(&it,ac->sub.patterns); + while ((de = dictNext(&it)) != NULL) + __redisRunCallback(ac,dictGetEntryVal(de),NULL); dictRelease(ac->sub.patterns); } |