Changeset 5062 for trunk/module-datastruct-llist.c
- Timestamp:
- 04/20/11 22:48:19 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-datastruct-llist.c
r5056 r5062 46 46 } 47 47 48 void ll_clear(LLIST *l)48 static void ll_clear_int(LLIST *l, int clear_data) 49 49 { 50 50 if (!l) return; 51 51 52 52 LL_ITER *it = ll_iter_create(l); 53 while (ll_iter_next(it)) 54 ll_iter_remove(it); 53 while (ll_iter_next(it)) { 54 if (it->cur && !it->cur->flag++) { 55 add_garbage(it->cur); 56 if (clear_data) 57 add_garbage(it->cur->obj); 58 } 59 } 55 60 ll_iter_release(it); 56 61 l->count = 0; 57 62 } 58 63 64 void ll_clear(LLIST *l) 65 { 66 ll_clear_int(l, 0); 67 } 68 69 59 70 void ll_clear_data(LLIST *l) 60 71 { 61 if (!l) return; 62 63 LL_ITER *it = ll_iter_create(l); 64 while (ll_iter_next(it)) 65 ll_iter_remove_data(it); 66 ll_iter_release(it); 67 l->count = 0; 72 ll_clear_int(l, 1); 68 73 } 69 74
Note:
See TracChangeset
for help on using the changeset viewer.