/* Delete item */ void g_itemFree(g_item item) { g_dependency dep; /* Free onDeclared list */ if (item->onDeclared) { while((dep = corto_llTakeFirst(item->onDeclared))) { corto_dealloc(dep); } corto_llFree(item->onDeclared); } /* Free onDefined list */ if (item->onDefined) { while((dep = corto_llTakeFirst(item->onDefined))) { corto_dealloc(dep); } corto_llFree(item->onDefined); } corto_dealloc(item); }
/* Print items (forward them to declare & define callbacks) */ int g_itemPrintItems(struct corto_depresolver_s* data) { g_item item; /* Collect initial items */ if (!corto_llWalk(data->items, g_itemCollectinitial, data)) { goto error; } /* Print items */ while((item = corto_llTakeFirst(data->toPrint))) { if (!g_itemPrint(item, data)) { goto error; } } return 0; error: return -1; }
/* Clear list */ void corto_llClear(corto_ll list) { while(list->size) { corto_llTakeFirst(list); } }