Remove r_list_unlink and r_list_unref functions

This commit is contained in:
fr33tux 2014-05-02 18:29:00 +02:00 committed by jvoisin
parent 3d801f90ff
commit a68171d3e9
5 changed files with 26 additions and 25 deletions

View File

@ -592,7 +592,7 @@ R_API int r_anal_fcn_overlap_bb(RAnalFunction *fcn, RAnalBlock *bb) {
}
}
#endif
//r_list_unlink (bb->ops, opi);
//r_list_delete_data (bb->ops, opi);
r_list_append (fcn->bbs, bb);
return R_ANAL_RET_END;
}

View File

@ -407,7 +407,7 @@ R_API int r_core_anal_bb(RCore *core, RAnalFunction *fcn, ut64 at, int head) {
free (buf);
return R_TRUE;
error:
r_list_unlink (fcn->bbs, bb);
r_list_delete_data (fcn->bbs, bb);
r_anal_bb_free (bb);
free (buf);
return R_FALSE;
@ -667,7 +667,7 @@ error:
r_anal_fcn_insert (core->anal, fcn);
#if 0
// unlink from list to avoid double free later when we call r_anal_free()
r_list_unlink (core->anal->fcns, fcn);
r_list_delete_data (core->anal->fcns, fcn);
if (core->anal->fcns->free == NULL)
r_anal_fcn_free (fcn);
#endif

View File

@ -123,7 +123,7 @@ R_API RDebugMap *r_debug_map_get(RDebug *dbg, ut64 addr) {
}
R_API void r_debug_map_free(RDebugMap *map) {
//r_list_unlink (dbg->maps_user, map);
//r_list_delete_data (dbg->maps_user, map);
free (map->name);
free (map);
}

View File

@ -49,13 +49,11 @@ typedef struct r_oflist_t {
#define r_list_empty(x) (x==NULL || (x->head==NULL && x->tail==NULL))
#define r_list_head(x) x->head
#define r_list_tail(x) x->tail
#define r_list_unref(x) x
#define r_list_iter_get(x) x->data; x=x->n
#define r_list_iter_next(x) (x?1:0)
#define r_list_iter_cur(x) x->p
#define r_list_iter_unref(x) x
#define r_list_iter_free(x) x
#endif
R_API RList *r_list_new();
@ -77,7 +75,6 @@ R_API void r_list_iter_init (RListIter *iter, RList *list);
R_API void r_list_purge (RList *list);
R_API void r_list_free (RList *list);
R_API RListIter *r_list_item_new (void *data);
R_API void r_list_unlink (RList *list, void *ptr);
R_API void r_list_split (RList *list, void *ptr);
R_API void r_list_split_iter (RList *list, RListIter *iter);
R_API void r_list_join (RList *list1, RList *list2);

View File

@ -23,8 +23,6 @@ void *r_list_iter_get_data(RListIter *list) {
return list->data;
}
//RListIter *r_list_append(RList *list, void *data);
RListIter *r_list_iterator (RList *list) {
return list? list->head: NULL;
}
@ -33,6 +31,7 @@ RListIter *r_list_push (RList *list, void *item) {
return r_list_append (list, item);
}
//TODO: remove this function
void *r_list_get (RList *list) {
printf ("XXX: dynamic r_list_get is broken, use _get_next\n");
return NULL;
@ -59,7 +58,6 @@ R_API int r_list_length(RList *list) {
}
/* remove all elements of a list */
R_API void r_list_purge (RList *list) {
RListIter *it;
@ -69,14 +67,13 @@ R_API void r_list_purge (RList *list) {
RListIter *next = it->n;
r_list_delete (list, it);
it = next;
// free (it);
}
list->head = list->tail = NULL;
}
//free (list);
}
/* free the list */
R_API void r_list_free (RList *list) {
if (list) {
r_list_purge (list);
@ -85,7 +82,6 @@ R_API void r_list_free (RList *list) {
}
// XXX r_list_delete_data == r_list_unlink !!!! this is conceptually wrong
R_API boolt r_list_delete_data (RList *list, void *ptr) {
void *p;
RListIter *iter;
@ -98,6 +94,7 @@ R_API boolt r_list_delete_data (RList *list, void *ptr) {
return R_FALSE;
}
R_API void r_list_delete (RList *list, RListIter *iter) {
r_list_split_iter (list, iter);
if (list->free && iter->data)
@ -105,18 +102,6 @@ R_API void r_list_delete (RList *list, RListIter *iter) {
iter->data = NULL;
free (iter);
}
R_API void r_list_unlink (RList *list, void *ptr) {
RListIter *iter = r_list_iterator (list);
while (iter) {
void *item = iter->data;
if (ptr == item) {
r_list_delete (list, iter);
break;
}
iter = iter->n;
}
}
R_API void r_list_split (RList *list, void *ptr) {
@ -132,6 +117,7 @@ R_API void r_list_split (RList *list, void *ptr) {
}
}
R_API void r_list_split_iter (RList *list, RListIter *iter) {
if (list->head == iter) list->head = iter->n;
if (list->tail == iter) list->tail = iter->p;
@ -139,6 +125,7 @@ R_API void r_list_split_iter (RList *list, RListIter *iter) {
if (iter->n) iter->n->p = iter->p;
}
//Warning: free functions must be compatible
R_API void r_list_join (RList *list1, RList *list2) {
if (list1->tail == NULL) {
@ -156,6 +143,7 @@ R_API RList *r_list_new() {
return list;
}
R_API RList *r_list_newf(RListFree f) {
RList *l = r_list_new ();
if (l) l->free = f;
@ -169,6 +157,7 @@ R_API RListIter *r_list_item_new (void *data) {
return new;
}
R_API RListIter *r_list_append(RList *list, void *data) {
RListIter *new = NULL;
if (list && data) {
@ -185,6 +174,7 @@ R_API RListIter *r_list_append(RList *list, void *data) {
return new;
}
R_API RListIter *r_list_prepend(RList *list, void *data) {
RListIter *new = R_NEW (RListIter);
if (list->head)
@ -198,6 +188,7 @@ R_API RListIter *r_list_prepend(RList *list, void *data) {
return new;
}
R_API void *r_list_pop(RList *list) {
void *data = NULL;
RListIter *iter;
@ -215,6 +206,7 @@ R_API void *r_list_pop(RList *list) {
return data;
}
R_API int r_list_del_n(RList *list, int n) {
RListIter *it;
int i;
@ -241,12 +233,14 @@ R_API int r_list_del_n(RList *list, int n) {
return R_FALSE;
}
R_API void *r_list_get_top(RList *list) {
if (list && list->tail)
return list->tail->data;
return NULL;
}
R_API void r_list_reverse(RList *list) {
RListIter *it, *tmp;
if (list) {
@ -261,6 +255,7 @@ R_API void r_list_reverse(RList *list) {
}
}
R_API RList *r_list_clone (RList *list) {
RList *l = NULL;
RListIter *iter;
@ -275,6 +270,7 @@ R_API RList *r_list_clone (RList *list) {
return l;
}
R_API void r_list_sort(RList *list, RListComparator cmp) {
RListIter *it;
RListIter *it2;
@ -289,11 +285,13 @@ R_API void r_list_sort(RList *list, RListComparator cmp) {
}
}
R_API void r_list_add_sorted(RList *list, void *data, RListComparator cmp) {
if (r_list_append (list, data))
r_list_sort (list, cmp); // TODO: inefficient
}
R_API int r_list_set_n(RList *list, int n, void *p) {
RListIter *it;
int i;
@ -307,6 +305,7 @@ R_API int r_list_set_n(RList *list, int n, void *p) {
return R_FALSE;
}
R_API void *r_list_get_n(RList *list, int n) {
RListIter *it;
int i;
@ -317,6 +316,7 @@ R_API void *r_list_get_n(RList *list, int n) {
return NULL;
}
R_API void *r_list_get_by_int(RList *list, int off, int n) {
ut8 *p;
RListIter *iter;
@ -327,6 +327,7 @@ R_API void *r_list_get_by_int(RList *list, int off, int n) {
return NULL;
}
R_API void *r_list_get_by_int64(RList *list, int off, ut64 n) {
ut8 *p;
RListIter *iter;
@ -337,6 +338,7 @@ R_API void *r_list_get_by_int64(RList *list, int off, ut64 n) {
return NULL;
}
R_API void *r_list_get_by_string(RList *list, int off, const char *str) {
char *p;
RListIter *iter;
@ -348,6 +350,7 @@ R_API void *r_list_get_by_string(RList *list, int off, const char *str) {
return NULL;
}
R_API RListIter *r_list_contains (RList *list, void *p) {
void *q;
RListIter *iter;
@ -358,6 +361,7 @@ R_API RListIter *r_list_contains (RList *list, void *p) {
return NULL;
}
R_API RListIter *r_list_find (RList *list, void *p, RListComparator cmp) {
void *q;
RListIter *iter;