Lines Matching refs:head
64 gdCache_head_t *head; in gdCacheCreate() local
66 head = (gdCache_head_t *)pemalloc(sizeof(gdCache_head_t), 1); in gdCacheCreate()
67 head->mru = NULL; in gdCacheCreate()
68 head->size = size; in gdCacheCreate()
69 head->gdCacheTest = gdCacheTest; in gdCacheCreate()
70 head->gdCacheFetch = gdCacheFetch; in gdCacheCreate()
71 head->gdCacheRelease = gdCacheRelease; in gdCacheCreate()
72 return head; in gdCacheCreate()
76 gdCacheDelete( gdCache_head_t *head ) in gdCacheDelete() argument
80 elem = head->mru; in gdCacheDelete()
82 (*(head->gdCacheRelease))(elem->userdata); in gdCacheDelete()
87 pefree((char *)head, 1); in gdCacheDelete()
91 gdCacheGet( gdCache_head_t *head, void *keydata ) in gdCacheGet() argument
97 elem = head->mru; in gdCacheGet()
104 if ((*(head->gdCacheTest))(elem->userdata, keydata)) { in gdCacheGet()
108 elem->next = head->mru; in gdCacheGet()
109 head->mru = elem; in gdCacheGet()
118 userdata = (*(head->gdCacheFetch))(&(head->error), keydata); in gdCacheGet()
123 if (i < head->size) { /* cache still growing - add new elem */ in gdCacheGet()
130 (*(head->gdCacheRelease))(elem->userdata); in gdCacheGet()
133 elem->next = head->mru; in gdCacheGet()
134 head->mru = elem; in gdCacheGet()