}
void
-virStoragePoolSourceFree(virStoragePoolSourcePtr source) {
+virStoragePoolSourceClear(virStoragePoolSourcePtr source)
+{
int i;
if (!source)
}
}
+void
+virStoragePoolSourceFree(virStoragePoolSourcePtr source)
+{
+ virStoragePoolSourceClear(source);
+ VIR_FREE(source);
+}
+
void
virStoragePoolDefFree(virStoragePoolDefPtr def) {
if (!def)
VIR_FREE(def->name);
- virStoragePoolSourceFree(&def->source);
+ virStoragePoolSourceClear(&def->source);
VIR_FREE(def->target.path);
VIR_FREE(def->target.perms.label);
def = NULL;
cleanup:
virStoragePoolSourceFree(def);
- VIR_FREE(def);
xmlFreeDoc(doc);
xmlXPathFreeContext(xpath_ctxt);
/*
* storage_conf.h: config handling for storage driver
*
- * Copyright (C) 2006-2008, 2010 Red Hat, Inc.
+ * Copyright (C) 2006-2008, 2010-2011 Red Hat, Inc.
* Copyright (C) 2006-2008 Daniel P. Berrange
*
* This library is free software; you can redistribute it and/or
int virStoragePoolObjDeleteDef(virStoragePoolObjPtr pool);
void virStorageVolDefFree(virStorageVolDefPtr def);
+void virStoragePoolSourceClear(virStoragePoolSourcePtr source);
void virStoragePoolSourceFree(virStoragePoolSourcePtr source);
void virStoragePoolDefFree(virStoragePoolDefPtr def);
void virStoragePoolObjFree(virStoragePoolObjPtr pool);
virStoragePoolObjDeleteDef;
virStoragePoolObjFindByName;
virStoragePoolObjFindByUUID;
-virStoragePoolSourceFindDuplicateDevices;
virStoragePoolObjIsDuplicate;
-virStoragePoolSourceFindDuplicate;
virStoragePoolObjListFree;
virStoragePoolObjLock;
virStoragePoolObjRemove;
virStoragePoolObjSaveDef;
virStoragePoolObjUnlock;
+virStoragePoolSourceClear;
+virStoragePoolSourceFindDuplicate;
+virStoragePoolSourceFindDuplicateDevices;
virStoragePoolSourceFree;
virStoragePoolSourceListFormat;
virStoragePoolSourceListNewSource;
ret = 0;
cleanup:
virStoragePoolSourceFree(src);
- VIR_FREE(src);
return ret;
}
cleanup:
for (i = 0; i < state.list.nsources; i++)
- virStoragePoolSourceFree(&state.list.sources[i]);
+ virStoragePoolSourceClear(&state.list.sources[i]);
+ VIR_FREE(state.list.sources);
virStoragePoolSourceFree(source);
- VIR_FREE(source);
-
- VIR_FREE(state.list.sources);
return retval;
}
VIR_FREE(targets);
VIR_FREE(portal);
virStoragePoolSourceFree(source);
- VIR_FREE(source);
return ret;
}
cleanup:
for (i = 0; i < sourceList.nsources; i++)
- virStoragePoolSourceFree(&sourceList.sources[i]);
-
+ virStoragePoolSourceClear(&sourceList.sources[i]);
VIR_FREE(sourceList.sources);
return retval;
cleanup:
virStoragePoolSourceFree(source);
- VIR_FREE(source);
return ret;
}