@@ -308,21 +308,22 @@ int ptr_cur_end(struct ptr_cur *cur, struct ptr_list *head)
void ptr_cur_insert(struct ptr_cur *cur, void *new, void *ptr)
{
+ struct ptr_list *curl = cur->l;
void **this, **last;
- if (cur->l->nr == LIST_NODE_NR) {
- split_ptr_list_head(cur->l);
- if (cur->n >= cur->l->nr) {
- cur->n -= cur->l->nr;
- cur->l = cur->l->next;
+ if (curl->nr == LIST_NODE_NR) {
+ split_ptr_list_head(curl);
+ if (cur->n >= curl->nr) {
+ cur->n -= curl->nr;
+ curl = curl->next;
}
}
- this = cur->l->list + cur->n;
- last = cur->l->list + cur->l->nr - 1;
+ this = curl->list + cur->n;
+ last = curl->list + curl->nr - 1;
while (last >= this) {
last[1] = last[0];
last--;
}
*this = new;
- cur->l->nr++;
+ curl->nr++;
}