Changeset 2962 for trunk/src/opengl/mesa/hash.c
- Timestamp:
- Mar 1, 2000, 7:50:02 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/opengl/mesa/hash.c
r2938 r2962 1 /* $Id: hash.c,v 1. 1 2000-02-29 00:50:04 sandervlExp $ */1 /* $Id: hash.c,v 1.2 2000-03-01 18:49:29 jeroen Exp $ */ 2 2 3 3 /* … … 85 85 struct HashEntry *entry = table->Table[i]; 86 86 while (entry) { 87 88 89 87 struct HashEntry *next = entry->Next; 88 FREE(entry); 89 entry = next; 90 90 } 91 91 } … … 106 106 const struct HashEntry *entry; 107 107 108 108 /* assert(table); 109 109 assert(key); 110 110 */ 111 111 pos = key & (TABLE_SIZE-1); 112 112 entry = table->Table[pos]; 113 113 while (entry) { 114 114 if (entry->Key == key) { 115 115 return entry->Data; 116 116 } 117 117 entry = entry->Next; … … 146 146 if (entry->Key == key) { 147 147 /* replace entry's data */ 148 149 148 entry->Data = data; 149 return; 150 150 } 151 151 entry = entry->Next; … … 188 188 } 189 189 FREE(entry); 190 190 return; 191 191 } 192 192 prev = entry; … … 225 225 const struct HashEntry *entry = table->Table[i]; 226 226 while (entry) { 227 228 227 printf("%u %p\n", entry->Key, entry->Data); 228 entry = entry->Next; 229 229 } 230 230 } … … 252 252 GLuint key; 253 253 for (key=0; key!=maxKey; key++) { 254 255 256 257 258 259 260 261 262 263 264 265 254 if (HashLookup(table, key)) { 255 /* darn, this key is already in use */ 256 freeCount = 0; 257 freeStart = key+1; 258 } 259 else { 260 /* this key not in use, check if we've found enough */ 261 freeCount++; 262 if (freeCount == numKeys) { 263 return freeStart; 264 } 265 } 266 266 } 267 267 /* cannot allocate a block of numKeys consecutive keys */
Note:
See TracChangeset
for help on using the changeset viewer.