@@ -327,3 +327,18 @@ void ptr_cur_insert(struct ptr_cur *cur, void *new, void *ptr)
*this = new;
curl->nr++;
}
+
+void ptr_cur_delete(struct ptr_cur *cur, void *ptr)
+{
+ struct ptr_list *curl = cur->l;
+ void **this = curl->list + cur->n;
+ void **last = curl->list + curl->nr - 1;
+
+ while (this < last) {
+ this[0] = this[1];
+ this++;
+ }
+ *this = (void *)0xf0f0f0f0;
+ curl->nr--;
+ cur->n--;
+}
@@ -56,6 +56,7 @@ int ptr_cur_next(struct ptr_cur *cur);
int ptr_cur_end(struct ptr_cur *cur, struct ptr_list *head);
int ptr_cur_prev(struct ptr_cur *cur);
void ptr_cur_insert(struct ptr_cur *cur, void *new, void *ptr);
+void ptr_cur_delete(struct ptr_cur *cur, void *ptr);
/*
* Hey, who said that you can't do overloading in C?
@@ -220,20 +221,6 @@ extern void split_ptr_list_head(struct ptr_list *);
#define INSERT_CURRENT(new, ptr) \
DO_INSERT_CURRENT(new, ptr, __cur##ptr)
-static inline void ptr_cur_delete(struct ptr_cur *cur, void *ptr)
-{
- void **this = cur->l->list + cur->n;
- void **last = cur->l->list + cur->l->nr - 1;
-
- while (this < last) {
- this[0] = this[1];
- this++;
- }
- *this = (void *)0xf0f0f0f0;
- cur->l->nr--;
- cur->n--;
-}
-
#define DO_DELETE_CURRENT(ptr, __cur) \
ptr_cur_delete(&__cur, ptr)