Lines Matching refs:entry
75 SLEntryPtr entry;
79 entry = drmMalloc(sizeof(*entry)
80 + (max_level + 1) * sizeof(entry->forward[0]));
81 if (!entry) return NULL;
82 entry->magic = SL_ENTRY_MAGIC;
83 entry->key = key;
84 entry->value = value;
85 entry->levels = max_level + 1;
87 return entry;
121 SLEntryPtr entry;
126 for (entry = list->head; entry; entry = next) {
127 if (entry->magic != SL_ENTRY_MAGIC) return -1; /* Bad magic */
128 next = entry->forward[0];
129 entry->magic = SL_FREED_MAGIC;
130 drmFree(entry);
141 SLEntryPtr entry;
146 for (i = list->level, entry = list->head; i >= 0; i--) {
147 while (entry->forward[i] && entry->forward[i]->key < key)
148 entry = entry->forward[i];
149 update[i] = entry;
152 return entry->forward[0];
158 SLEntryPtr entry;
165 entry = SLLocate(list, key, update);
167 if (entry && entry->key == key) return 1; /* Already in list */
176 entry = SLCreateEntry(level, key, value);
180 entry->forward[i] = update[i]->forward[i];
181 update[i]->forward[i] = entry;
192 SLEntryPtr entry;
197 entry = SLLocate(list, key, update);
199 if (!entry || entry->key != key) return 1; /* Not found */
203 if (update[i]->forward[i] == entry)
204 update[i]->forward[i] = entry->forward[i];
207 entry->magic = SL_FREED_MAGIC;
208 drmFree(entry);
219 SLEntryPtr entry;
221 entry = SLLocate(list, key, update);
223 if (entry && entry->key == key) {
224 *value = entry;
260 SLEntryPtr entry;
264 entry = list->p0;
266 if (entry) {
267 list->p0 = entry->forward[0];
268 *key = entry->key;
269 *value = entry->value;
290 SLEntryPtr entry;
300 for (entry = list->head; entry; entry = entry->forward[0]) {
301 if (entry->magic != SL_ENTRY_MAGIC) {
306 entry, entry->key, entry->value, entry->levels);
307 for (i = 0; i < entry->levels; i++) {
308 if (entry->forward[i]) {
311 entry->forward[i],
312 entry->forward[i]->key,
313 entry->forward[i]->value);
315 printf(" %2d: %p\n", i, entry->forward[i]);