On Tue, Aug 14, 2012 at 04:14:11PM +0200, Benoît Canet wrote: > +#define QUORUM_FREE_QIOV_ITEMS(qlist) do { \ > + QLIST_FOREACH_SAFE(item, qlist, next, next_item) { \ > + QLIST_REMOVE(item, next); \ > + g_free(item); \ > + } } while (0)
This is only used once, please open code it and don't use a macro. > + > +static void quorum_free_vote_list(QuorumAIOCB *acb) > +{ > + QuorumIOVectorVersion *version, *next_version; > + QuorumIOVectorItem *item, *next_item; > + > + QLIST_FOREACH_SAFE(version, &acb->vote_list, next, next_version) { > + QLIST_REMOVE(version, next); > + QUORUM_FREE_QIOV_ITEMS(&version->qiov_items); > + g_free(version); > + } > +} > + > +#undef QUORUM_FREE_QIOV_ITEMS