Lines Matching refs:hi
299 hashTypeIterator *hi = zmalloc(sizeof(hashTypeIterator)); in hashTypeInitIterator() local
300 hi->subject = subject; in hashTypeInitIterator()
301 hi->encoding = subject->encoding; in hashTypeInitIterator()
303 if (hi->encoding == OBJ_ENCODING_ZIPLIST) { in hashTypeInitIterator()
304 hi->fptr = NULL; in hashTypeInitIterator()
305 hi->vptr = NULL; in hashTypeInitIterator()
306 } else if (hi->encoding == OBJ_ENCODING_HT) { in hashTypeInitIterator()
307 hi->di = dictGetIterator(subject->ptr); in hashTypeInitIterator()
312 return hi; in hashTypeInitIterator()
315 void hashTypeReleaseIterator(hashTypeIterator *hi) { in hashTypeReleaseIterator() argument
316 if (hi->encoding == OBJ_ENCODING_HT) { in hashTypeReleaseIterator()
317 dictReleaseIterator(hi->di); in hashTypeReleaseIterator()
320 zfree(hi); in hashTypeReleaseIterator()
325 int hashTypeNext(hashTypeIterator *hi) { in hashTypeNext() argument
326 if (hi->encoding == OBJ_ENCODING_ZIPLIST) { in hashTypeNext()
330 zl = hi->subject->ptr; in hashTypeNext()
331 fptr = hi->fptr; in hashTypeNext()
332 vptr = hi->vptr; in hashTypeNext()
350 hi->fptr = fptr; in hashTypeNext()
351 hi->vptr = vptr; in hashTypeNext()
352 } else if (hi->encoding == OBJ_ENCODING_HT) { in hashTypeNext()
353 if ((hi->de = dictNext(hi->di)) == NULL) return C_ERR; in hashTypeNext()
362 void hashTypeCurrentFromZiplist(hashTypeIterator *hi, int what, in hashTypeCurrentFromZiplist() argument
369 serverAssert(hi->encoding == OBJ_ENCODING_ZIPLIST); in hashTypeCurrentFromZiplist()
372 ret = ziplistGet(hi->fptr, vstr, vlen, vll); in hashTypeCurrentFromZiplist()
375 ret = ziplistGet(hi->vptr, vstr, vlen, vll); in hashTypeCurrentFromZiplist()
382 void hashTypeCurrentFromHashTable(hashTypeIterator *hi, int what, robj **dst) { in hashTypeCurrentFromHashTable() argument
383 serverAssert(hi->encoding == OBJ_ENCODING_HT); in hashTypeCurrentFromHashTable()
386 *dst = dictGetKey(hi->de); in hashTypeCurrentFromHashTable()
388 *dst = dictGetVal(hi->de); in hashTypeCurrentFromHashTable()
395 robj *hashTypeCurrentObject(hashTypeIterator *hi, int what) { in hashTypeCurrentObject() argument
398 if (hi->encoding == OBJ_ENCODING_ZIPLIST) { in hashTypeCurrentObject()
403 hashTypeCurrentFromZiplist(hi, what, &vstr, &vlen, &vll); in hashTypeCurrentObject()
409 } else if (hi->encoding == OBJ_ENCODING_HT) { in hashTypeCurrentObject()
410 hashTypeCurrentFromHashTable(hi, what, &dst); in hashTypeCurrentObject()
439 hashTypeIterator *hi; in hashTypeConvertZiplist() local
443 hi = hashTypeInitIterator(o); in hashTypeConvertZiplist()
446 while (hashTypeNext(hi) != C_ERR) { in hashTypeConvertZiplist()
449 field = hashTypeCurrentObject(hi, OBJ_HASH_KEY); in hashTypeConvertZiplist()
451 value = hashTypeCurrentObject(hi, OBJ_HASH_VALUE); in hashTypeConvertZiplist()
461 hashTypeReleaseIterator(hi); in hashTypeConvertZiplist()
719 static void addHashIteratorCursorToReply(client *c, hashTypeIterator *hi, int what) { in addHashIteratorCursorToReply() argument
720 if (hi->encoding == OBJ_ENCODING_ZIPLIST) { in addHashIteratorCursorToReply()
725 hashTypeCurrentFromZiplist(hi, what, &vstr, &vlen, &vll); in addHashIteratorCursorToReply()
732 } else if (hi->encoding == OBJ_ENCODING_HT) { in addHashIteratorCursorToReply()
735 hashTypeCurrentFromHashTable(hi, what, &value); in addHashIteratorCursorToReply()
745 hashTypeIterator *hi; in genericHgetallCommand() local
758 hi = hashTypeInitIterator(o); in genericHgetallCommand()
759 while (hashTypeNext(hi) != C_ERR) { in genericHgetallCommand()
761 addHashIteratorCursorToReply(c, hi, OBJ_HASH_KEY); in genericHgetallCommand()
765 addHashIteratorCursorToReply(c, hi, OBJ_HASH_VALUE); in genericHgetallCommand()
770 hashTypeReleaseIterator(hi); in genericHgetallCommand()