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

Function quicklistPushHead

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

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

Source from the content-addressed store, hash-verified

490 * Returns 0 if used existing head.
491 * Returns 1 if new head created. */
492int quicklistPushHead(quicklist *quicklist, void *value, size_t sz) {
493 quicklistNode *orig_head = quicklist->head;
494 assert(sz < UINT32_MAX); /* TODO: add support for quicklist nodes that are sds encoded (not zipped) */
495 if (likely(
496 _quicklistNodeAllowInsert(quicklist->head, quicklist->fill, sz))) {
497 quicklist->head->zl =
498 ziplistPush(quicklist->head->zl, value, sz, ZIPLIST_HEAD);
499 quicklistNodeUpdateSz(quicklist->head);
500 } else {
501 quicklistNode *node = quicklistCreateNode();
502 node->zl = ziplistPush(ziplistNew(), value, sz, ZIPLIST_HEAD);
503
504 quicklistNodeUpdateSz(node);
505 _quicklistInsertNodeBefore(quicklist, quicklist->head, node);
506 }
507 quicklist->count++;
508 quicklist->head->count++;
509 return (orig_head != quicklist->head);
510}
511
512/* Add new entry to tail node of quicklist.
513 *

Callers 3

quicklistRotateFunction · 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