@@ -220,16 +220,22 @@ extern void split_ptr_list_head(struct ptr_list *);
#define INSERT_CURRENT(new, ptr) \
DO_INSERT_CURRENT(new, ptr, __cur##ptr)
-#define DO_DELETE_CURRENT(ptr, __cur) do { \
- 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--; \
-} while (0)
+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)
#define DELETE_CURRENT_PTR(ptr) \
DO_DELETE_CURRENT(ptr, __cur##ptr)