
On Fri, Feb 15, 2019 at 01:42:10PM +0100, Peter Krempa wrote:
To allow tracking a single virStorageSource in multiple structures without extra hassle allow refcounting by turining it into an object.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/util/virstoragefile.c | 40 +++++++++++++++++++++++++++++---------- src/util/virstoragefile.h | 2 ++ 2 files changed, 32 insertions(+), 10 deletions(-)
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index 7f52a5fdc7..56c6510c5e 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -47,6 +47,8 @@
VIR_LOG_INIT("util.storagefile");
+static virClassPtr virStorageSourceClass; + VIR_ENUM_IMPL(virStorage, VIR_STORAGE_TYPE_LAST, "none", "file", @@ -2558,30 +2560,48 @@ virStorageSourceClear(virStorageSourcePtr def)
virStorageSourceInitiatorClear(&def->initiator);
- memset(def, 0, sizeof(*def)); + /* clear everything except the class header */ + memset((char *) def + sizeof(def->parent), 0, + sizeof(*def) - sizeof(def->parent));
I've seen the reason behind this change, but I think a more thorough explanation would be appreciated - in this case enhancing the commentary is more useful than the commit message. Reviewed-by: Erik Skultety <eskultet@redhat.com>