Changeset 137
- Timestamp:
- 09/06/2006 06:41:04 AM (2 years ago)
- Files:
-
- 1 modified
-
trunk/xcache.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/xcache.c
r136 r137 149 149 } 150 150 /* }}} */ 151 static void xc_entry_free_ dmz(volatile xc_entry_t *xce) /* {{{ */151 static void xc_entry_free_real_dmz(volatile xc_entry_t *xce) /* {{{ */ 152 152 { 153 153 xc_mem_free(xce->cache->mem, (xc_entry_t *)xce); … … 180 180 } 181 181 /* }}} */ 182 static void xc_entry_remove_real_dmz(xc_entry_t *xce, xc_entry_t **pp TSRMLS_DC) /* {{{ */ 183 { 184 *pp = xce->next; 182 static void xc_entry_free_dmz(xc_entry_t *xce TSRMLS_DC) /* {{{ */ 183 { 185 184 xce->cache->entries_count --; 186 185 if (xce->refcount == 0) { 187 xc_entry_free_ dmz(xce);186 xc_entry_free_real_dmz(xce); 188 187 } 189 188 else { … … 202 201 for (p = *pp; p; pp = &(p->next), p = p->next) { 203 202 if (xc_entry_equal_dmz(xce, p)) { 204 xc_entry_remove_real_dmz(xce, pp TSRMLS_CC); 203 /* unlink */ 204 *pp = p->next; 205 xc_entry_free_dmz(xce, pp TSRMLS_CC); 205 206 return; 206 207 } … … 249 250 { 250 251 xc_entry_t *p, **pp; 252 xc_entry_t *next; 251 253 int i, c; 252 254 253 255 for (i = 0, c = cache->hentry->size; i < c; i ++) { 254 256 pp = &(cache->entries[i]); 255 for (p = *pp; p; p = p->next) {257 for (p = *pp; p; p = *pp) { 256 258 if (apply_func(p TSRMLS_CC)) { 257 xc_entry_remove_real_dmz(p, pp TSRMLS_CC); 259 /* unlink */ 260 *pp = p->next; 261 xc_entry_free_dmz(p, pp TSRMLS_CC); 258 262 } 259 263 else { … … 342 346 } 343 347 if (p->refcount == 0) { 348 /* unlink */ 344 349 *pp = p->next; 345 350 cache->deletes_count --; 346 xc_entry_free_ dmz(p);351 xc_entry_free_real_dmz(p); 347 352 } 348 353 else {

