*/
void xbt_fifo_reset(xbt_fifo_t l)
{
- xbt_fifo_item_t b, tmp;
+ xbt_fifo_item_t b = xbt_fifo_get_first_item(l);
- for (b = xbt_fifo_get_first_item(l); b;
- tmp = b, b = b->next, xbt_fifo_free_item(tmp));
- l->head = l->tail = NULL;
+ while (b) {
+ xbt_fifo_item_t tmp = b;
+ b = b->next;
+ xbt_fifo_free_item(tmp);
+ }
+ l->head = NULL;
+ l->tail = NULL;
}
/** Push
*/
void *xbt_fifo_pop(xbt_fifo_t l)
{
- xbt_fifo_item_t item;
void *content;
if (l == NULL)
return NULL;
- if (!(item = xbt_fifo_pop_item(l)))
+ xbt_fifo_item_t item = xbt_fifo_pop_item(l);
+ if (!item)
return NULL;
content = item->content;
*/
void *xbt_fifo_shift(xbt_fifo_t l)
{
- xbt_fifo_item_t item;
void *content;
if (l == NULL)
return NULL;
- if (!(item = xbt_fifo_shift_item(l)))
+ xbt_fifo_item_t item = xbt_fifo_shift_item(l);
+ if (!item)
return NULL;
content = item->content;
* \param l
* \param t an objet
*
- * removes the first occurence of \a t from \a l.
+ * removes the first occurrence of \a t from \a l.
* \warning it will not remove duplicates
* \return 1 if an item was removed and 0 otherwise.
*/
for (current = l->head; current; current = current_next) {
current_next = current->next;
- if (current->content != t)
- continue;
- /* remove the item */
- xbt_fifo_remove_item(l, current);
- xbt_fifo_free_item(current);
- /* WILL NOT REMOVE DUPLICATES */
- return 1;
+ if (current->content == t) {
+ /* remove the item */
+ xbt_fifo_remove_item(l, current);
+ xbt_fifo_free_item(current);
+ /* WILL NOT REMOVE DUPLICATES */
+ return 1;
+ }
}
return 0;
}
* \param l
* \param t an objet
*
- * removes all occurences of \a t from \a l.
+ * removes all occurrences of \a t from \a l.
* \return 1 if an item was removed and 0 otherwise.
*/
int xbt_fifo_remove_all(xbt_fifo_t l, void *t)
for (current = l->head; current; current = current_next) {
current_next = current->next;
- if (current->content != t)
- continue;
- /* remove the item */
- xbt_fifo_remove_item(l, current);
- xbt_fifo_free_item(current);
- res = 1;
+ if (current->content == t){
+ /* remove the item */
+ xbt_fifo_remove_item(l, current);
+ xbt_fifo_free_item(current);
+ res = 1;
+ }
}
return res;
}
* \param l a list
* \param current a bucket
*
- * removes a bucket \a current from the list \a l. This function implicitely
+ * removes a bucket \a current from the list \a l. This function implicitly
* assumes (and doesn't check!) that this item belongs to this list...
*/
void xbt_fifo_remove_item(xbt_fifo_t l, xbt_fifo_item_t current)
l->head = NULL;
l->tail = NULL;
(l->count)--;
- current->prev = current->next = NULL;
+ current->prev = NULL;
+ current->next = NULL;
return;
}
current->next->prev = current->prev;
}
(l->count)--;
- current->prev = current->next = NULL;
+ current->prev = NULL;
+ current->next = NULL;
}
/**
* These are internal XBT functions called by xbt_preinit/postexit().
* It can be used several times to recreate the mallocator, for example when you switch to MC mode
*/
-void xbt_fifo_preinit(void)
+void xbt_fifo_preinit()
{
item_mallocator = xbt_mallocator_new(65536, fifo_item_mallocator_new_f,
fifo_item_mallocator_free_f, fifo_item_mallocator_reset_f);
}
-void xbt_fifo_postexit(void)
+void xbt_fifo_postexit()
{
if (item_mallocator != NULL) {
xbt_mallocator_free(item_mallocator);