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

Function quicklistPushTail

app/redis-6.2.6/src/quicklist.c:516–534  ·  view source on GitHub ↗

Add new entry to tail node of quicklist. * * Returns 0 if used existing tail. * Returns 1 if new tail created. */

Source from the content-addressed store, hash-verified

514 * Returns 0 if used existing tail.
515 * Returns 1 if new tail created. */
516int quicklistPushTail(quicklist *quicklist, void *value, size_t sz) {
517 quicklistNode *orig_tail = quicklist->tail;
518 assert(sz < UINT32_MAX); /* TODO: add support for quicklist nodes that are sds encoded (not zipped) */
519 if (likely(
520 _quicklistNodeAllowInsert(quicklist->tail, quicklist->fill, sz))) {
521 quicklist->tail->zl =
522 ziplistPush(quicklist->tail->zl, value, sz, ZIPLIST_TAIL);
523 quicklistNodeUpdateSz(quicklist->tail);
524 } else {
525 quicklistNode *node = quicklistCreateNode();
526 node->zl = ziplistPush(ziplistNew(), value, sz, ZIPLIST_TAIL);
527
528 quicklistNodeUpdateSz(node);
529 _quicklistInsertNodeAfter(quicklist, quicklist->tail, node);
530 }
531 quicklist->count++;
532 quicklist->tail->count++;
533 return (orig_tail != quicklist->tail);
534}
535
536/* Create new node consisting of a pre-formed ziplist.
537 * Used for loading RDBs where entire ziplists have been stored

Callers 4

rdbLoadObjectFunction · 0.85
quicklistPushFunction · 0.85
quicklistTestFunction · 0.85

Calls 5

ziplistPushFunction · 0.85
quicklistCreateNodeFunction · 0.85
ziplistNewFunction · 0.85

Tested by

no test coverage detected