Copy diagram from scrap paper into code for clarity.

This commit is contained in:
Jordan Bancino 2022-12-15 22:14:16 +00:00
parent 1273d87df9
commit 7ee31ad36b

View file

@ -40,6 +40,25 @@ struct Db
size_t maxCache; size_t maxCache;
HashMap *cache; HashMap *cache;
/*
* The cache uses a double linked list (see DbRef
* below) to know which objects are most and least
* recently used. The following diagram helps me
* know what way all the pointers go, because it
* can get very confusing sometimes. For example,
* there's nothing stopping "next" from pointing to
* least recent, and "prev" from pointing to most
* recent, so hopefully this clarifies the pointer
* terminology used when dealing with the linked
* list:
*
* mostRecent leastRecent
* | prev prev | prev
* +---+ ---> +---+ ---> +---+ ---> NULL
* |ref| |ref| |ref|
* NULL <--- +---+ <--- +---+ <--- +---+
* next next next
*/
DbRef *mostRecent; DbRef *mostRecent;
DbRef *leastRecent; DbRef *leastRecent;
}; };