- resource_wim = list_entry(wim->resource_wims.next,
- WIMStruct, resource_wim_node);
- if (resource_wim->is_owned_by_master) {
- list_del(&resource_wim->resource_wim_node);
- wimlib_free(resource_wim);
- } else {
- wimlib_unreference_resources(wim, &resource_wim, 1);
- }
+ while (!list_empty(&wim->subwims)) {
+ WIMStruct *subwim;
+
+ subwim = list_entry(wim->subwims.next, WIMStruct, subwim_node);
+ list_del(&subwim->subwim_node);
+ DEBUG("Freeing subwim.");
+ wimlib_free(subwim);