[libvirt] [PATCH v3 0/5] virClassNew rework

*** Some BLURB HERE. Too tired to write something useful. *** Michal Privoznik (5): datatypes: Rename @parent to @parentName in virNodeDevice src: Unify virObject member name virobject: Introduce VIR_CLASS_NEW() macro virobject: Check if @parent is the first member in class cfg.mk: Introduce syntax-check rule to prefer VIR_CLASS_NEW cfg.mk | 8 ++ src/access/viraccessmanager.c | 5 +- src/bhyve/bhyve_conf.c | 5 +- src/conf/capabilities.c | 5 +- src/conf/domain_capabilities.c | 11 +-- src/conf/domain_conf.c | 20 +--- src/conf/domain_event.c | 166 ++++++++------------------------ src/conf/network_event.c | 14 +-- src/conf/node_device_event.c | 21 ++-- src/conf/object_event.c | 12 +-- src/conf/secret_event.c | 21 ++-- src/conf/storage_event.c | 21 ++-- src/conf/virdomainobjlist.c | 5 +- src/conf/virinterfaceobj.c | 10 +- src/conf/virnetworkobj.c | 11 +-- src/conf/virnodedeviceobj.c | 12 +-- src/conf/virsecretobj.c | 10 +- src/conf/virstorageobj.c | 20 +--- src/datatypes.c | 7 +- src/datatypes.h | 30 +++--- src/interface/interface_backend_netcf.c | 6 +- src/libvirt-admin.c | 7 +- src/libvirt-domain-snapshot.c | 2 +- src/libvirt-domain.c | 2 +- src/libvirt-host.c | 2 +- src/libvirt-interface.c | 2 +- src/libvirt-network.c | 2 +- src/libvirt-nodedev.c | 8 +- src/libvirt-nwfilter.c | 2 +- src/libvirt-secret.c | 2 +- src/libvirt-storage.c | 4 +- src/libvirt-stream.c | 2 +- src/libxl/libxl_conf.c | 5 +- src/libxl/libxl_domain.c | 5 +- src/libxl/libxl_migration.c | 5 +- src/logging/log_handler.c | 5 +- src/lxc/lxc_conf.c | 5 +- src/lxc/lxc_monitor.c | 5 +- src/node_device/node_device_driver.c | 4 +- src/node_device/node_device_udev.c | 5 +- src/qemu/qemu_agent.c | 5 +- src/qemu/qemu_capabilities.c | 7 +- src/qemu/qemu_conf.c | 11 +-- src/qemu/qemu_domain.c | 51 +++------- src/qemu/qemu_monitor.c | 5 +- src/remote/remote_daemon_dispatch.c | 4 +- src/remote/remote_protocol.x | 2 +- src/remote_protocol-structs | 2 +- src/rpc/virkeepalive.c | 5 +- src/rpc/virnetclient.c | 5 +- src/rpc/virnetclientprogram.c | 7 +- src/rpc/virnetclientstream.c | 5 +- src/rpc/virnetdaemon.c | 5 +- src/rpc/virnetlibsshsession.c | 5 +- src/rpc/virnetsaslcontext.c | 10 +- src/rpc/virnetserver.c | 5 +- src/rpc/virnetserverclient.c | 5 +- src/rpc/virnetserverprogram.c | 7 +- src/rpc/virnetserverservice.c | 7 +- src/rpc/virnetsocket.c | 5 +- src/rpc/virnetsshsession.c | 5 +- src/rpc/virnettlscontext.c | 10 +- src/security/security_manager.c | 5 +- src/test/test_driver.c | 6 +- src/util/virclosecallbacks.c | 11 +-- src/util/virdnsmasq.c | 8 +- src/util/virfdstream.c | 5 +- src/util/virfilecache.c | 7 +- src/util/virhash.c | 11 +-- src/util/virhostdev.c | 5 +- src/util/viridentity.c | 5 +- src/util/virmacmap.c | 5 +- src/util/virmdev.c | 5 +- src/util/virobject.c | 10 +- src/util/virobject.h | 5 + src/util/virpci.c | 5 +- src/util/virportallocator.c | 5 +- src/util/virresctrl.c | 10 +- src/util/virscsi.c | 5 +- src/util/virscsivhost.c | 5 +- src/util/virusb.c | 5 +- src/vbox/vbox_common.c | 5 +- src/vz/vz_driver.c | 5 +- tests/virfilecachetest.c | 7 +- 84 files changed, 224 insertions(+), 583 deletions(-) -- 2.16.1

In next patches this name will be needed for a different memeber. Also, it makes sense to rename the variable because it does not contain reference to parent device, just its name. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/conf/virnodedeviceobj.c | 2 +- src/datatypes.c | 2 +- src/datatypes.h | 2 +- src/libvirt-nodedev.c | 6 +++--- src/node_device/node_device_driver.c | 4 ++-- src/remote/remote_daemon_dispatch.c | 4 ++-- src/remote/remote_protocol.x | 2 +- src/remote_protocol-structs | 2 +- src/test/test_driver.c | 6 +++--- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/conf/virnodedeviceobj.c b/src/conf/virnodedeviceobj.c index ad0f27ee47..9d2996046f 100644 --- a/src/conf/virnodedeviceobj.c +++ b/src/conf/virnodedeviceobj.c @@ -870,7 +870,7 @@ virNodeDeviceObjListExportCallback(void *payload, virNodeDeviceMatch(obj, data->flags)) { if (data->devices) { if (!(device = virGetNodeDevice(data->conn, def->name)) || - VIR_STRDUP(device->parent, def->parent) < 0) { + VIR_STRDUP(device->parentName, def->parent) < 0) { virObjectUnref(device); data->error = true; goto cleanup; diff --git a/src/datatypes.c b/src/datatypes.c index f7eef24ba8..0c3c66a9ce 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -653,7 +653,7 @@ virNodeDeviceDispose(void *obj) VIR_DEBUG("release dev %p %s", dev, dev->name); VIR_FREE(dev->name); - VIR_FREE(dev->parent); + VIR_FREE(dev->parentName); virObjectUnref(dev->conn); } diff --git a/src/datatypes.h b/src/datatypes.h index 1a8ea01ba3..66733b075c 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -618,7 +618,7 @@ struct _virNodeDevice { virObject object; virConnectPtr conn; /* pointer back to the connection */ char *name; /* device name (unique on node) */ - char *parent; /* parent device name */ + char *parentName; /* parent device name */ }; /** diff --git a/src/libvirt-nodedev.c b/src/libvirt-nodedev.c index 563ce889b9..8ced3cea0e 100644 --- a/src/libvirt-nodedev.c +++ b/src/libvirt-nodedev.c @@ -346,16 +346,16 @@ virNodeDeviceGetParent(virNodeDevicePtr dev) virCheckNodeDeviceReturn(dev, NULL); - if (!dev->parent) { + if (!dev->parentName) { if (dev->conn->nodeDeviceDriver && dev->conn->nodeDeviceDriver->nodeDeviceGetParent) { - dev->parent = dev->conn->nodeDeviceDriver->nodeDeviceGetParent(dev); + dev->parentName = dev->conn->nodeDeviceDriver->nodeDeviceGetParent(dev); } else { virReportUnsupportedError(); virDispatchError(dev->conn); return NULL; } } - return dev->parent; + return dev->parentName; } diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c index 61afa1f8eb..d04a31747a 100644 --- a/src/node_device/node_device_driver.c +++ b/src/node_device/node_device_driver.c @@ -256,7 +256,7 @@ nodeDeviceLookupByName(virConnectPtr conn, goto cleanup; if ((device = virGetNodeDevice(conn, name))) { - if (VIR_STRDUP(device->parent, def->parent) < 0) { + if (VIR_STRDUP(device->parentName, def->parent) < 0) { virObjectUnref(device); device = NULL; } @@ -290,7 +290,7 @@ nodeDeviceLookupSCSIHostByWWN(virConnectPtr conn, goto cleanup; if ((device = virGetNodeDevice(conn, def->name))) { - if (VIR_STRDUP(device->parent, def->parent) < 0) { + if (VIR_STRDUP(device->parentName, def->parent) < 0) { virObjectUnref(device); device = NULL; } diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c index 5b764bab48..a8a5932d71 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -3805,7 +3805,7 @@ remoteDispatchNodeDeviceGetParent(virNetServerPtr server ATTRIBUTE_UNUSED, parent = virNodeDeviceGetParent(dev); if (parent == NULL) { - ret->parent = NULL; + ret->parentName = NULL; } else { /* remoteDispatchClientRequest will free this. */ char **parent_p; @@ -3815,7 +3815,7 @@ remoteDispatchNodeDeviceGetParent(virNetServerPtr server ATTRIBUTE_UNUSED, VIR_FREE(parent_p); goto cleanup; } - ret->parent = parent_p; + ret->parentName = parent_p; } rv = 0; diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x index 9dbd497b2f..296a087181 100644 --- a/src/remote/remote_protocol.x +++ b/src/remote/remote_protocol.x @@ -2028,7 +2028,7 @@ struct remote_node_device_get_parent_args { }; struct remote_node_device_get_parent_ret { - remote_string parent; + remote_string parentName; }; struct remote_node_device_num_of_caps_args { diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs index f45aba27a2..fe163db73f 100644 --- a/src/remote_protocol-structs +++ b/src/remote_protocol-structs @@ -1541,7 +1541,7 @@ struct remote_node_device_get_parent_args { remote_nonnull_string name; }; struct remote_node_device_get_parent_ret { - remote_string parent; + remote_string parentName; }; struct remote_node_device_num_of_caps_args { remote_nonnull_string name; diff --git a/src/test/test_driver.c b/src/test/test_driver.c index eec7a82924..f5b5e3ee8d 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -5416,7 +5416,7 @@ testNodeDeviceLookupByName(virConnectPtr conn, const char *name) def = virNodeDeviceObjGetDef(obj); if ((ret = virGetNodeDevice(conn, name))) { - if (VIR_STRDUP(ret->parent, def->parent) < 0) { + if (VIR_STRDUP(ret->parentName, def->parent) < 0) { virObjectUnref(ret); ret = NULL; } @@ -5641,8 +5641,8 @@ testNodeDeviceCreateXML(virConnectPtr conn, if (!(dev = virGetNodeDevice(conn, objdef->name))) goto cleanup; - VIR_FREE(dev->parent); - if (VIR_STRDUP(dev->parent, def->parent) < 0) + VIR_FREE(dev->parentName); + if (VIR_STRDUP(dev->parentName, def->parent) < 0) goto cleanup; ret = dev; -- 2.16.1

On Tue, Apr 17, 2018 at 06:01:02PM +0200, Michal Privoznik wrote:
In next patches this name will be needed for a different memeber. Also, it makes sense to rename the variable because it does not contain reference to parent device, just its name.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/conf/virnodedeviceobj.c | 2 +- src/datatypes.c | 2 +- src/datatypes.h | 2 +- src/libvirt-nodedev.c | 6 +++--- src/node_device/node_device_driver.c | 4 ++-- src/remote/remote_daemon_dispatch.c | 4 ++-- src/remote/remote_protocol.x | 2 +- src/remote_protocol-structs | 2 +- src/test/test_driver.c | 6 +++--- 9 files changed, 15 insertions(+), 15 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Whenever we declare a new object the first member of the struct has to be virObject (or any other member of that family). Now, up until now we did not care about the name of the struct member. But lets unify it so that we can do some checks at compile time later. The unified name is 'parent'. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> --- src/datatypes.h | 28 ++++++++++++++-------------- src/libvirt-admin.c | 2 +- src/libvirt-domain-snapshot.c | 2 +- src/libvirt-domain.c | 2 +- src/libvirt-host.c | 2 +- src/libvirt-interface.c | 2 +- src/libvirt-network.c | 2 +- src/libvirt-nodedev.c | 2 +- src/libvirt-nwfilter.c | 2 +- src/libvirt-secret.c | 2 +- src/libvirt-storage.c | 4 ++-- src/libvirt-stream.c | 2 +- src/qemu/qemu_capabilities.c | 2 +- src/rpc/virnetclientprogram.c | 2 +- src/rpc/virnetserverprogram.c | 2 +- src/rpc/virnetserverservice.c | 2 +- src/util/virdnsmasq.c | 2 +- src/util/virfilecache.c | 2 +- tests/virfilecachetest.c | 2 +- 19 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/datatypes.h b/src/datatypes.h index 66733b075c..192c86be80 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -453,7 +453,7 @@ struct _virAdmConnectCloseCallbackData { * Internal structure associated to a connection */ struct _virConnect { - virObjectLockable object; + virObjectLockable parent; /* All the variables from here, until declared otherwise in one of * the following comments, are setup at time of connection open @@ -496,7 +496,7 @@ struct _virConnect { * Internal structure associated to an admin connection */ struct _virAdmConnect { - virObjectLockable object; + virObjectLockable parent; virURIPtr uri; void *privateData; @@ -512,7 +512,7 @@ struct _virAdmConnect { * Internal structure associated to a daemon server */ struct _virAdmServer { - virObject object; + virObject parent; virAdmConnectPtr conn; /* pointer back to the admin connection */ char *name; /* the server external name */ }; @@ -523,7 +523,7 @@ struct _virAdmServer { * Internal structure associated to a client connected to daemon */ struct _virAdmClient { - virObject object; + virObject parent; virAdmServerPtr srv; /* pointer to the server client is * connected to, which also holds a * reference back to the admin connection @@ -539,7 +539,7 @@ struct _virAdmClient { * Internal structure associated to a domain */ struct _virDomain { - virObject object; + virObject parent; virConnectPtr conn; /* pointer back to the connection */ char *name; /* the domain external name */ int id; /* the domain ID */ @@ -552,7 +552,7 @@ struct _virDomain { * Internal structure associated to a domain */ struct _virNetwork { - virObject object; + virObject parent; virConnectPtr conn; /* pointer back to the connection */ char *name; /* the network external name */ unsigned char uuid[VIR_UUID_BUFLEN]; /* the network unique identifier */ @@ -564,7 +564,7 @@ struct _virNetwork { * Internal structure associated to a physical host interface */ struct _virInterface { - virObject object; + virObject parent; virConnectPtr conn; /* pointer back to the connection */ char *name; /* the network external name */ char *mac; /* the interface MAC address */ @@ -576,7 +576,7 @@ struct _virInterface { * Internal structure associated to a storage pool */ struct _virStoragePool { - virObject object; + virObject parent; virConnectPtr conn; /* pointer back to the connection */ char *name; /* the storage pool external name */ unsigned char uuid[VIR_UUID_BUFLEN]; /* the storage pool unique identifier */ @@ -595,7 +595,7 @@ struct _virStoragePool { * Internal structure associated to a storage volume */ struct _virStorageVol { - virObject object; + virObject parent; virConnectPtr conn; /* pointer back to the connection */ char *pool; /* Pool name of owner */ char *name; /* the storage vol external name */ @@ -615,7 +615,7 @@ struct _virStorageVol { * Internal structure associated with a node device */ struct _virNodeDevice { - virObject object; + virObject parent; virConnectPtr conn; /* pointer back to the connection */ char *name; /* device name (unique on node) */ char *parentName; /* parent device name */ @@ -627,7 +627,7 @@ struct _virNodeDevice { * Internal structure associated with a secret */ struct _virSecret { - virObject object; + virObject parent; virConnectPtr conn; /* pointer back to the connection */ unsigned char uuid[VIR_UUID_BUFLEN]; /* the secret unique identifier */ int usageType; /* the type of usage */ @@ -644,7 +644,7 @@ typedef int (*virStreamFinishFunc)(virStreamPtr, void *opaque); * Internal structure associated with an input stream */ struct _virStream { - virObject object; + virObject parent; virConnectPtr conn; unsigned int flags; @@ -658,7 +658,7 @@ struct _virStream { * Internal structure associated with a domain snapshot */ struct _virDomainSnapshot { - virObject object; + virObject parent; char *name; virDomainPtr domain; }; @@ -669,7 +669,7 @@ struct _virDomainSnapshot { * Internal structure associated to a network filter */ struct _virNWFilter { - virObject object; + virObject parent; virConnectPtr conn; /* pointer back to the connection */ char *name; /* the network filter external name */ unsigned char uuid[VIR_UUID_BUFLEN]; /* the network filter unique identifier */ diff --git a/src/libvirt-admin.c b/src/libvirt-admin.c index de595a9f7f..7f695311b4 100644 --- a/src/libvirt-admin.c +++ b/src/libvirt-admin.c @@ -340,7 +340,7 @@ int virAdmConnectRef(virAdmConnectPtr conn) { VIR_DEBUG("conn=%p refs=%d", conn, - conn ? conn->object.parent.u.s.refs : 0); + conn ? conn->parent.parent.u.s.refs : 0); virResetLastError(); virCheckAdmConnectReturn(conn, -1); diff --git a/src/libvirt-domain-snapshot.c b/src/libvirt-domain-snapshot.c index e44a1d1f38..100326a5e7 100644 --- a/src/libvirt-domain-snapshot.c +++ b/src/libvirt-domain-snapshot.c @@ -1159,7 +1159,7 @@ int virDomainSnapshotRef(virDomainSnapshotPtr snapshot) { VIR_DEBUG("snapshot=%p, refs=%d", snapshot, - snapshot ? snapshot->object.u.s.refs : 0); + snapshot ? snapshot->parent.u.s.refs : 0); virResetLastError(); diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index 63d2ae23d7..2d86e48979 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -589,7 +589,7 @@ virDomainFree(virDomainPtr domain) int virDomainRef(virDomainPtr domain) { - VIR_DOMAIN_DEBUG(domain, "refs=%d", domain ? domain->object.u.s.refs : 0); + VIR_DOMAIN_DEBUG(domain, "refs=%d", domain ? domain->parent.u.s.refs : 0); virResetLastError(); diff --git a/src/libvirt-host.c b/src/libvirt-host.c index 7ff7407a08..76087badd8 100644 --- a/src/libvirt-host.c +++ b/src/libvirt-host.c @@ -51,7 +51,7 @@ VIR_LOG_INIT("libvirt.host"); int virConnectRef(virConnectPtr conn) { - VIR_DEBUG("conn=%p refs=%d", conn, conn ? conn->object.parent.u.s.refs : 0); + VIR_DEBUG("conn=%p refs=%d", conn, conn ? conn->parent.parent.u.s.refs : 0); virResetLastError(); diff --git a/src/libvirt-interface.c b/src/libvirt-interface.c index bb79101abe..69415293ed 100644 --- a/src/libvirt-interface.c +++ b/src/libvirt-interface.c @@ -642,7 +642,7 @@ virInterfaceDestroy(virInterfacePtr iface, unsigned int flags) int virInterfaceRef(virInterfacePtr iface) { - VIR_DEBUG("iface=%p refs=%d", iface, iface ? iface->object.u.s.refs : 0); + VIR_DEBUG("iface=%p refs=%d", iface, iface ? iface->parent.u.s.refs : 0); virResetLastError(); diff --git a/src/libvirt-network.c b/src/libvirt-network.c index da33543001..9f9e0ddaf8 100644 --- a/src/libvirt-network.c +++ b/src/libvirt-network.c @@ -679,7 +679,7 @@ int virNetworkRef(virNetworkPtr network) { VIR_DEBUG("network=%p refs=%d", network, - network ? network->object.u.s.refs : 0); + network ? network->parent.u.s.refs : 0); virResetLastError(); diff --git a/src/libvirt-nodedev.c b/src/libvirt-nodedev.c index 8ced3cea0e..10050b193b 100644 --- a/src/libvirt-nodedev.c +++ b/src/libvirt-nodedev.c @@ -477,7 +477,7 @@ virNodeDeviceFree(virNodeDevicePtr dev) int virNodeDeviceRef(virNodeDevicePtr dev) { - VIR_DEBUG("dev=%p refs=%d", dev, dev ? dev->object.u.s.refs : 0); + VIR_DEBUG("dev=%p refs=%d", dev, dev ? dev->parent.u.s.refs : 0); virResetLastError(); diff --git a/src/libvirt-nwfilter.c b/src/libvirt-nwfilter.c index 43e2b164e8..948c30deef 100644 --- a/src/libvirt-nwfilter.c +++ b/src/libvirt-nwfilter.c @@ -504,7 +504,7 @@ int virNWFilterRef(virNWFilterPtr nwfilter) { VIR_DEBUG("nwfilter=%p refs=%d", nwfilter, - nwfilter ? nwfilter->object.u.s.refs : 0); + nwfilter ? nwfilter->parent.u.s.refs : 0); virResetLastError(); diff --git a/src/libvirt-secret.c b/src/libvirt-secret.c index 1e1cd4e65b..711c4fc580 100644 --- a/src/libvirt-secret.c +++ b/src/libvirt-secret.c @@ -659,7 +659,7 @@ int virSecretRef(virSecretPtr secret) { VIR_DEBUG("secret=%p refs=%d", secret, - secret ? secret->object.u.s.refs : 0); + secret ? secret->parent.u.s.refs : 0); virResetLastError(); diff --git a/src/libvirt-storage.c b/src/libvirt-storage.c index 3845a5d55e..1879c6bd60 100644 --- a/src/libvirt-storage.c +++ b/src/libvirt-storage.c @@ -868,7 +868,7 @@ virStoragePoolFree(virStoragePoolPtr pool) int virStoragePoolRef(virStoragePoolPtr pool) { - VIR_DEBUG("pool=%p refs=%d", pool, pool ? pool->object.u.s.refs : 0); + VIR_DEBUG("pool=%p refs=%d", pool, pool ? pool->parent.u.s.refs : 0); virResetLastError(); @@ -1904,7 +1904,7 @@ virStorageVolFree(virStorageVolPtr vol) int virStorageVolRef(virStorageVolPtr vol) { - VIR_DEBUG("vol=%p refs=%d", vol, vol ? vol->object.u.s.refs : 0); + VIR_DEBUG("vol=%p refs=%d", vol, vol ? vol->parent.u.s.refs : 0); virResetLastError(); diff --git a/src/libvirt-stream.c b/src/libvirt-stream.c index 3204b7b177..ef83696bcd 100644 --- a/src/libvirt-stream.c +++ b/src/libvirt-stream.c @@ -86,7 +86,7 @@ int virStreamRef(virStreamPtr stream) { VIR_DEBUG("stream=%p refs=%d", stream, - stream ? stream->object.u.s.refs : 0); + stream ? stream->parent.u.s.refs : 0); virResetLastError(); diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 1dae540962..c6defb773f 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -506,7 +506,7 @@ struct _virQEMUCapsHostCPUData { * And don't forget to update virQEMUCapsNewCopy. */ struct _virQEMUCaps { - virObject object; + virObject parent; bool usedQMP; diff --git a/src/rpc/virnetclientprogram.c b/src/rpc/virnetclientprogram.c index 505b40fc4b..d1e54a0892 100644 --- a/src/rpc/virnetclientprogram.c +++ b/src/rpc/virnetclientprogram.c @@ -40,7 +40,7 @@ VIR_LOG_INIT("rpc.netclientprogram"); struct _virNetClientProgram { - virObject object; + virObject parent; unsigned program; unsigned version; diff --git a/src/rpc/virnetserverprogram.c b/src/rpc/virnetserverprogram.c index 75b0052cdb..f28274fc22 100644 --- a/src/rpc/virnetserverprogram.c +++ b/src/rpc/virnetserverprogram.c @@ -37,7 +37,7 @@ VIR_LOG_INIT("rpc.netserverprogram"); struct _virNetServerProgram { - virObject object; + virObject parent; unsigned program; unsigned version; diff --git a/src/rpc/virnetserverservice.c b/src/rpc/virnetserverservice.c index 4e5426ffea..d2350b2b91 100644 --- a/src/rpc/virnetserverservice.c +++ b/src/rpc/virnetserverservice.c @@ -34,7 +34,7 @@ #define VIR_FROM_THIS VIR_FROM_RPC struct _virNetServerService { - virObject object; + virObject parent; size_t nsocks; virNetSocketPtr *socks; diff --git a/src/util/virdnsmasq.c b/src/util/virdnsmasq.c index 1b78c1fadc..db5c51b6a2 100644 --- a/src/util/virdnsmasq.c +++ b/src/util/virdnsmasq.c @@ -620,7 +620,7 @@ dnsmasqReload(pid_t pid ATTRIBUTE_UNUSED) * */ struct _dnsmasqCaps { - virObject object; + virObject parent; char *binaryPath; bool noRefresh; time_t mtime; diff --git a/src/util/virfilecache.c b/src/util/virfilecache.c index 2577d711bc..e24eb5a68c 100644 --- a/src/util/virfilecache.c +++ b/src/util/virfilecache.c @@ -45,7 +45,7 @@ VIR_LOG_INIT("util.filecache") struct _virFileCache { - virObjectLockable object; + virObjectLockable parent; virHashTablePtr table; diff --git a/tests/virfilecachetest.c b/tests/virfilecachetest.c index ae7d08d257..d4a9d598ef 100644 --- a/tests/virfilecachetest.c +++ b/tests/virfilecachetest.c @@ -28,7 +28,7 @@ struct _testFileCacheObj { - virObject object; + virObject parent; char *data; }; typedef struct _testFileCacheObj testFileCacheObj; -- 2.16.1

On Tue, Apr 17, 2018 at 06:01:03PM +0200, Michal Privoznik wrote:
Whenever we declare a new object the first member of the struct has to be virObject (or any other member of that family). Now, up until now we did not care about the name of the struct member. But lets unify it so that we can do some checks at compile time later.
The unified name is 'parent'.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> --- src/datatypes.h | 28 ++++++++++++++-------------- src/libvirt-admin.c | 2 +- src/libvirt-domain-snapshot.c | 2 +- src/libvirt-domain.c | 2 +- src/libvirt-host.c | 2 +- src/libvirt-interface.c | 2 +- src/libvirt-network.c | 2 +- src/libvirt-nodedev.c | 2 +- src/libvirt-nwfilter.c | 2 +- src/libvirt-secret.c | 2 +- src/libvirt-storage.c | 4 ++-- src/libvirt-stream.c | 2 +- src/qemu/qemu_capabilities.c | 2 +- src/rpc/virnetclientprogram.c | 2 +- src/rpc/virnetserverprogram.c | 2 +- src/rpc/virnetserverservice.c | 2 +- src/util/virdnsmasq.c | 2 +- src/util/virfilecache.c | 2 +- tests/virfilecachetest.c | 2 +- 19 files changed, 33 insertions(+), 33 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

So far we are repeating the following lines over and over: if (!(virSomeObjectClass = virClassNew(virClassForObject(), "virSomeObject", sizeof(virSomeObject), virSomeObjectDispose))) return -1; While this works, it is impossible to do some checking. Firstly, the class name (the 2nd argument) doesn't match the name in the code in all cases (the 3rd argument). Secondly, the current style is needlessly verbose. This commit turns example into following: if (!(VIR_CLASS_NEW(virSomeObject, virClassForObject))) return -1; Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/access/viraccessmanager.c | 5 +- src/bhyve/bhyve_conf.c | 5 +- src/conf/capabilities.c | 5 +- src/conf/domain_capabilities.c | 11 +-- src/conf/domain_conf.c | 20 +--- src/conf/domain_event.c | 166 ++++++++------------------------ src/conf/network_event.c | 14 +-- src/conf/node_device_event.c | 21 ++-- src/conf/object_event.c | 12 +-- src/conf/secret_event.c | 21 ++-- src/conf/storage_event.c | 21 ++-- src/conf/virdomainobjlist.c | 5 +- src/conf/virinterfaceobj.c | 10 +- src/conf/virnetworkobj.c | 11 +-- src/conf/virnodedeviceobj.c | 10 +- src/conf/virsecretobj.c | 10 +- src/conf/virstorageobj.c | 20 +--- src/datatypes.c | 5 +- src/interface/interface_backend_netcf.c | 6 +- src/libvirt-admin.c | 5 +- src/libxl/libxl_conf.c | 5 +- src/libxl/libxl_domain.c | 5 +- src/libxl/libxl_migration.c | 5 +- src/logging/log_handler.c | 5 +- src/lxc/lxc_conf.c | 5 +- src/lxc/lxc_monitor.c | 5 +- src/node_device/node_device_udev.c | 5 +- src/qemu/qemu_agent.c | 5 +- src/qemu/qemu_capabilities.c | 5 +- src/qemu/qemu_conf.c | 11 +-- src/qemu/qemu_domain.c | 51 +++------- src/qemu/qemu_monitor.c | 5 +- src/rpc/virkeepalive.c | 5 +- src/rpc/virnetclient.c | 5 +- src/rpc/virnetclientprogram.c | 5 +- src/rpc/virnetclientstream.c | 5 +- src/rpc/virnetdaemon.c | 5 +- src/rpc/virnetlibsshsession.c | 5 +- src/rpc/virnetsaslcontext.c | 10 +- src/rpc/virnetserver.c | 5 +- src/rpc/virnetserverclient.c | 5 +- src/rpc/virnetserverprogram.c | 5 +- src/rpc/virnetserverservice.c | 5 +- src/rpc/virnetsocket.c | 5 +- src/rpc/virnetsshsession.c | 5 +- src/rpc/virnettlscontext.c | 10 +- src/security/security_manager.c | 5 +- src/util/virclosecallbacks.c | 11 +-- src/util/virdnsmasq.c | 6 +- src/util/virfdstream.c | 5 +- src/util/virfilecache.c | 5 +- src/util/virhash.c | 11 +-- src/util/virhostdev.c | 5 +- src/util/viridentity.c | 5 +- src/util/virmacmap.c | 5 +- src/util/virmdev.c | 5 +- src/util/virobject.c | 10 +- src/util/virobject.h | 4 + src/util/virpci.c | 5 +- src/util/virportallocator.c | 5 +- src/util/virresctrl.c | 10 +- src/util/virscsi.c | 5 +- src/util/virscsivhost.c | 5 +- src/util/virusb.c | 5 +- src/vbox/vbox_common.c | 5 +- src/vz/vz_driver.c | 5 +- tests/virfilecachetest.c | 5 +- 67 files changed, 167 insertions(+), 535 deletions(-) diff --git a/src/access/viraccessmanager.c b/src/access/viraccessmanager.c index c268ec57f7..b048a367e3 100644 --- a/src/access/viraccessmanager.c +++ b/src/access/viraccessmanager.c @@ -54,10 +54,7 @@ static void virAccessManagerDispose(void *obj); static int virAccessManagerOnceInit(void) { - if (!(virAccessManagerClass = virClassNew(virClassForObjectLockable(), - "virAccessManagerClass", - sizeof(virAccessManager), - virAccessManagerDispose))) + if (!VIR_CLASS_NEW(virAccessManager, virClassForObjectLockable())) return -1; return 0; diff --git a/src/bhyve/bhyve_conf.c b/src/bhyve/bhyve_conf.c index b0b40c5754..153de7b391 100644 --- a/src/bhyve/bhyve_conf.c +++ b/src/bhyve/bhyve_conf.c @@ -36,10 +36,7 @@ static void virBhyveDriverConfigDispose(void *obj); static int virBhyveConfigOnceInit(void) { - if (!(virBhyveDriverConfigClass = virClassNew(virClassForObject(), - "virBhyveDriverConfig", - sizeof(virBhyveDriverConfig), - virBhyveDriverConfigDispose))) + if (!VIR_CLASS_NEW(virBhyveDriverConfig, virClassForObject())) return -1; return 0; diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 33b9194041..c4ee7efb5f 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -62,10 +62,7 @@ static void virCapsDispose(void *obj); static int virCapabilitiesOnceInit(void) { - if (!(virCapsClass = virClassNew(virClassForObject(), - "virCaps", - sizeof(virCaps), - virCapsDispose))) + if (!VIR_CLASS_NEW(virCaps, virClassForObject())) return -1; return 0; diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index f7d9be50f8..bebbaf44d0 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -40,17 +40,10 @@ static void virDomainCapsCPUModelsDispose(void *obj); static int virDomainCapsOnceInit(void) { - if (!(virDomainCapsClass = virClassNew(virClassForObjectLockable(), - "virDomainCapsClass", - sizeof(virDomainCaps), - virDomainCapsDispose))) + if (!VIR_CLASS_NEW(virDomainCaps, virClassForObjectLockable())) return -1; - virDomainCapsCPUModelsClass = virClassNew(virClassForObject(), - "virDomainCapsCPUModelsClass", - sizeof(virDomainCapsCPUModels), - virDomainCapsCPUModelsDispose); - if (!virDomainCapsCPUModelsClass) + if (!VIR_CLASS_NEW(virDomainCapsCPUModels, virClassForObject())) return -1; return 0; diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 4dad8e3b20..e2345bba17 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -938,16 +938,10 @@ static void virDomainXMLOptionDispose(void *obj); static int virDomainObjOnceInit(void) { - if (!(virDomainObjClass = virClassNew(virClassForObjectLockable(), - "virDomainObj", - sizeof(virDomainObj), - virDomainObjDispose))) + if (!VIR_CLASS_NEW(virDomainObj, virClassForObjectLockable())) return -1; - if (!(virDomainXMLOptionClass = virClassNew(virClassForObject(), - "virDomainXMLOption", - sizeof(virDomainXMLOption), - virDomainXMLOptionDispose))) + if (!VIR_CLASS_NEW(virDomainXMLOption, virClassForObject())) return -1; return 0; @@ -12223,14 +12217,10 @@ static virClassPtr virDomainChrSourceDefClass; static int virDomainChrSourceDefOnceInit(void) { - virDomainChrSourceDefClass = virClassNew(virClassForObject(), - "virDomainChrSourceDef", - sizeof(virDomainChrSourceDef), - virDomainChrSourceDefDispose); - if (!virDomainChrSourceDefClass) + if (!VIR_CLASS_NEW(virDomainChrSourceDef, virClassForObject())) return -1; - else - return 0; + + return 0; } VIR_ONCE_GLOBAL_INIT(virDomainChrSourceDef); diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c index fdb48a1eaa..97520706c9 100644 --- a/src/conf/domain_event.c +++ b/src/conf/domain_event.c @@ -295,131 +295,47 @@ typedef virDomainEventBlockThreshold *virDomainEventBlockThresholdPtr; static int virDomainEventsOnceInit(void) { - if (!(virDomainEventClass = - virClassNew(virClassForObjectEvent(), - "virDomainEvent", - sizeof(virDomainEvent), - virDomainEventDispose))) - return -1; - if (!(virDomainEventLifecycleClass = - virClassNew(virDomainEventClass, - "virDomainEventLifecycle", - sizeof(virDomainEventLifecycle), - virDomainEventLifecycleDispose))) - return -1; - if (!(virDomainEventRTCChangeClass = - virClassNew(virDomainEventClass, - "virDomainEventRTCChange", - sizeof(virDomainEventRTCChange), - virDomainEventRTCChangeDispose))) - return -1; - if (!(virDomainEventWatchdogClass = - virClassNew(virDomainEventClass, - "virDomainEventWatchdog", - sizeof(virDomainEventWatchdog), - virDomainEventWatchdogDispose))) - return -1; - if (!(virDomainEventIOErrorClass = - virClassNew(virDomainEventClass, - "virDomainEventIOError", - sizeof(virDomainEventIOError), - virDomainEventIOErrorDispose))) - return -1; - if (!(virDomainEventGraphicsClass = - virClassNew(virDomainEventClass, - "virDomainEventGraphics", - sizeof(virDomainEventGraphics), - virDomainEventGraphicsDispose))) - return -1; - if (!(virDomainEventBlockJobClass = - virClassNew(virDomainEventClass, - "virDomainEventBlockJob", - sizeof(virDomainEventBlockJob), - virDomainEventBlockJobDispose))) - return -1; - if (!(virDomainEventDiskChangeClass = - virClassNew(virDomainEventClass, - "virDomainEventDiskChange", - sizeof(virDomainEventDiskChange), - virDomainEventDiskChangeDispose))) - return -1; - if (!(virDomainEventTrayChangeClass = - virClassNew(virDomainEventClass, - "virDomainEventTrayChange", - sizeof(virDomainEventTrayChange), - virDomainEventTrayChangeDispose))) - return -1; - if (!(virDomainEventBalloonChangeClass = - virClassNew(virDomainEventClass, - "virDomainEventBalloonChange", - sizeof(virDomainEventBalloonChange), - virDomainEventBalloonChangeDispose))) - return -1; - if (!(virDomainEventDeviceRemovedClass = - virClassNew(virDomainEventClass, - "virDomainEventDeviceRemoved", - sizeof(virDomainEventDeviceRemoved), - virDomainEventDeviceRemovedDispose))) - return -1; - if (!(virDomainEventDeviceAddedClass = - virClassNew(virDomainEventClass, - "virDomainEventDeviceAdded", - sizeof(virDomainEventDeviceAdded), - virDomainEventDeviceAddedDispose))) - return -1; - if (!(virDomainEventPMClass = - virClassNew(virDomainEventClass, - "virDomainEventPM", - sizeof(virDomainEventPM), - virDomainEventPMDispose))) - return -1; - if (!(virDomainQemuMonitorEventClass = - virClassNew(virClassForObjectEvent(), - "virDomainQemuMonitorEvent", - sizeof(virDomainQemuMonitorEvent), - virDomainQemuMonitorEventDispose))) - return -1; - if (!(virDomainEventTunableClass = - virClassNew(virDomainEventClass, - "virDomainEventTunable", - sizeof(virDomainEventTunable), - virDomainEventTunableDispose))) - return -1; - if (!(virDomainEventAgentLifecycleClass = - virClassNew(virDomainEventClass, - "virDomainEventAgentLifecycle", - sizeof(virDomainEventAgentLifecycle), - virDomainEventAgentLifecycleDispose))) - return -1; - if (!(virDomainEventMigrationIterationClass = - virClassNew(virDomainEventClass, - "virDomainEventMigrationIteration", - sizeof(virDomainEventMigrationIteration), - virDomainEventMigrationIterationDispose))) - return -1; - if (!(virDomainEventJobCompletedClass = - virClassNew(virDomainEventClass, - "virDomainEventJobCompleted", - sizeof(virDomainEventJobCompleted), - virDomainEventJobCompletedDispose))) - return -1; - if (!(virDomainEventDeviceRemovalFailedClass = - virClassNew(virDomainEventClass, - "virDomainEventDeviceRemovalFailed", - sizeof(virDomainEventDeviceRemovalFailed), - virDomainEventDeviceRemovalFailedDispose))) - return -1; - if (!(virDomainEventMetadataChangeClass = - virClassNew(virDomainEventClass, - "virDomainEventMetadataChange", - sizeof(virDomainEventMetadataChange), - virDomainEventMetadataChangeDispose))) - return -1; - if (!(virDomainEventBlockThresholdClass = - virClassNew(virDomainEventClass, - "virDomainEventBlockThreshold", - sizeof(virDomainEventBlockThreshold), - virDomainEventBlockThresholdDispose))) + if (!VIR_CLASS_NEW(virDomainEvent, virClassForObjectEvent())) + return -1; + if (!VIR_CLASS_NEW(virDomainEventLifecycle, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventRTCChange, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventWatchdog, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventIOError, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventGraphics, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventBlockJob, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventDiskChange, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventTrayChange, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventBalloonChange, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventDeviceRemoved, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventDeviceAdded, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventPM, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainQemuMonitorEvent, virClassForObjectEvent())) + return -1; + if (!VIR_CLASS_NEW(virDomainEventTunable, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventAgentLifecycle, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventMigrationIteration, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventJobCompleted, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventDeviceRemovalFailed, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventMetadataChange, virDomainEventClass)) + return -1; + if (!VIR_CLASS_NEW(virDomainEventBlockThreshold, virDomainEventClass)) return -1; return 0; } diff --git a/src/conf/network_event.c b/src/conf/network_event.c index e0d1a3d5ca..5f8ad30d26 100644 --- a/src/conf/network_event.c +++ b/src/conf/network_event.c @@ -57,18 +57,12 @@ static void virNetworkEventLifecycleDispose(void *obj); static int virNetworkEventsOnceInit(void) { - if (!(virNetworkEventClass = - virClassNew(virClassForObjectEvent(), - "virNetworkEvent", - sizeof(virNetworkEvent), - virNetworkEventDispose))) + if (!VIR_CLASS_NEW(virNetworkEvent, virClassForObjectEvent())) return -1; - if (!(virNetworkEventLifecycleClass = - virClassNew(virNetworkEventClass, - "virNetworkEventLifecycle", - sizeof(virNetworkEventLifecycle), - virNetworkEventLifecycleDispose))) + + if (!VIR_CLASS_NEW(virNetworkEventLifecycle, virNetworkEventClass)) return -1; + return 0; } diff --git a/src/conf/node_device_event.c b/src/conf/node_device_event.c index 312ef512d1..e85bcbba0d 100644 --- a/src/conf/node_device_event.c +++ b/src/conf/node_device_event.c @@ -66,24 +66,15 @@ static void virNodeDeviceEventUpdateDispose(void *obj); static int virNodeDeviceEventsOnceInit(void) { - if (!(virNodeDeviceEventClass = - virClassNew(virClassForObjectEvent(), - "virNodeDeviceEvent", - sizeof(virNodeDeviceEvent), - virNodeDeviceEventDispose))) + if (!VIR_CLASS_NEW(virNodeDeviceEvent, virClassForObjectEvent())) return -1; - if (!(virNodeDeviceEventLifecycleClass = - virClassNew(virNodeDeviceEventClass, - "virNodeDeviceEventLifecycle", - sizeof(virNodeDeviceEventLifecycle), - virNodeDeviceEventLifecycleDispose))) + + if (!VIR_CLASS_NEW(virNodeDeviceEventLifecycle, virNodeDeviceEventClass)) return -1; - if (!(virNodeDeviceEventUpdateClass = - virClassNew(virNodeDeviceEventClass, - "virNodeDeviceEventUpdate", - sizeof(virNodeDeviceEventUpdate), - virNodeDeviceEventUpdateDispose))) + + if (!VIR_CLASS_NEW(virNodeDeviceEventUpdate, virNodeDeviceEventClass)) return -1; + return 0; } diff --git a/src/conf/object_event.c b/src/conf/object_event.c index e8116b880c..9a7e7e50c1 100644 --- a/src/conf/object_event.c +++ b/src/conf/object_event.c @@ -92,18 +92,10 @@ static void virObjectEventStateDispose(void *obj); static int virObjectEventOnceInit(void) { - if (!(virObjectEventStateClass = - virClassNew(virClassForObjectLockable(), - "virObjectEventState", - sizeof(virObjectEventState), - virObjectEventStateDispose))) + if (!VIR_CLASS_NEW(virObjectEventState, virClassForObjectLockable())) return -1; - if (!(virObjectEventClass = - virClassNew(virClassForObject(), - "virObjectEvent", - sizeof(virObjectEvent), - virObjectEventDispose))) + if (!VIR_CLASS_NEW(virObjectEvent, virClassForObject())) return -1; return 0; diff --git a/src/conf/secret_event.c b/src/conf/secret_event.c index c130909282..3395aa128d 100644 --- a/src/conf/secret_event.c +++ b/src/conf/secret_event.c @@ -65,24 +65,15 @@ static void virSecretEventValueChangedDispose(void *obj); static int virSecretEventsOnceInit(void) { - if (!(virSecretEventClass = - virClassNew(virClassForObjectEvent(), - "virSecretEvent", - sizeof(virSecretEvent), - virSecretEventDispose))) + if (!VIR_CLASS_NEW(virSecretEvent, virClassForObjectEvent())) return -1; - if (!(virSecretEventLifecycleClass = - virClassNew(virSecretEventClass, - "virSecretEventLifecycle", - sizeof(virSecretEventLifecycle), - virSecretEventLifecycleDispose))) + + if (!VIR_CLASS_NEW(virSecretEventLifecycle, virSecretEventClass)) return -1; - if (!(virSecretEventValueChangedClass = - virClassNew(virSecretEventClass, - "virSecretEventValueChanged", - sizeof(virSecretEventValueChanged), - virSecretEventValueChangedDispose))) + + if (!VIR_CLASS_NEW(virSecretEventValueChanged, virSecretEventClass)) return -1; + return 0; } diff --git a/src/conf/storage_event.c b/src/conf/storage_event.c index f9b796878a..32a12eb63f 100644 --- a/src/conf/storage_event.c +++ b/src/conf/storage_event.c @@ -66,24 +66,15 @@ static void virStoragePoolEventRefreshDispose(void *obj); static int virStoragePoolEventsOnceInit(void) { - if (!(virStoragePoolEventClass = - virClassNew(virClassForObjectEvent(), - "virStoragePoolEvent", - sizeof(virStoragePoolEvent), - virStoragePoolEventDispose))) + if (!VIR_CLASS_NEW(virStoragePoolEvent, virClassForObjectEvent())) return -1; - if (!(virStoragePoolEventLifecycleClass = - virClassNew(virStoragePoolEventClass, - "virStoragePoolEventLifecycle", - sizeof(virStoragePoolEventLifecycle), - virStoragePoolEventLifecycleDispose))) + + if (!VIR_CLASS_NEW(virStoragePoolEventLifecycle, virStoragePoolEventClass)) return -1; - if (!(virStoragePoolEventRefreshClass = - virClassNew(virStoragePoolEventClass, - "virStoragePoolEventRefresh", - sizeof(virStoragePoolEventRefresh), - virStoragePoolEventRefreshDispose))) + + if (!VIR_CLASS_NEW(virStoragePoolEventRefresh, virStoragePoolEventClass)) return -1; + return 0; } diff --git a/src/conf/virdomainobjlist.c b/src/conf/virdomainobjlist.c index 7022abe094..c09e5e5d2f 100644 --- a/src/conf/virdomainobjlist.c +++ b/src/conf/virdomainobjlist.c @@ -56,10 +56,7 @@ struct _virDomainObjList { static int virDomainObjListOnceInit(void) { - if (!(virDomainObjListClass = virClassNew(virClassForObjectRWLockable(), - "virDomainObjList", - sizeof(virDomainObjList), - virDomainObjListDispose))) + if (!VIR_CLASS_NEW(virDomainObjList, virClassForObjectRWLockable())) return -1; return 0; diff --git a/src/conf/virinterfaceobj.c b/src/conf/virinterfaceobj.c index f90c0bd9c4..a1d7346eb2 100644 --- a/src/conf/virinterfaceobj.c +++ b/src/conf/virinterfaceobj.c @@ -58,16 +58,10 @@ static void virInterfaceObjListDispose(void *obj); static int virInterfaceObjOnceInit(void) { - if (!(virInterfaceObjClass = virClassNew(virClassForObjectLockable(), - "virInterfaceObj", - sizeof(virInterfaceObj), - virInterfaceObjDispose))) + if (!VIR_CLASS_NEW(virInterfaceObj, virClassForObjectLockable())) return -1; - if (!(virInterfaceObjListClass = virClassNew(virClassForObjectRWLockable(), - "virInterfaceObjList", - sizeof(virInterfaceObjList), - virInterfaceObjListDispose))) + if (!VIR_CLASS_NEW(virInterfaceObjList, virClassForObjectRWLockable())) return -1; return 0; diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 8cd1b62c1c..e00c8a7f6c 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -74,17 +74,12 @@ static void virNetworkObjListDispose(void *obj); static int virNetworkObjOnceInit(void) { - if (!(virNetworkObjClass = virClassNew(virClassForObjectLockable(), - "virNetworkObj", - sizeof(virNetworkObj), - virNetworkObjDispose))) + if (!VIR_CLASS_NEW(virNetworkObj, virClassForObjectLockable())) return -1; - if (!(virNetworkObjListClass = virClassNew(virClassForObjectRWLockable(), - "virNetworkObjList", - sizeof(virNetworkObjList), - virNetworkObjListDispose))) + if (!VIR_CLASS_NEW(virNetworkObjList, virClassForObjectRWLockable())) return -1; + return 0; } diff --git a/src/conf/virnodedeviceobj.c b/src/conf/virnodedeviceobj.c index 9d2996046f..13e9a17518 100644 --- a/src/conf/virnodedeviceobj.c +++ b/src/conf/virnodedeviceobj.c @@ -58,16 +58,10 @@ static bool virNodeDeviceObjHasCap(const virNodeDeviceObj *obj, int type); static int virNodeDeviceObjOnceInit(void) { - if (!(virNodeDeviceObjClass = virClassNew(virClassForObjectLockable(), - "virNodeDeviceObj", - sizeof(virNodeDeviceObj), - virNodeDeviceObjDispose))) + if (!VIR_CLASS_NEW(virNodeDeviceObj, virClassForObjectLockable())) return -1; - if (!(virNodeDeviceObjListClass = virClassNew(virClassForObjectRWLockable(), - "virNodeDeviceObjList", - sizeof(virNodeDeviceObjList), - virNodeDeviceObjListDispose))) + if (!VIR_CLASS_NEW(virNodeDeviceObjList, virClassForObjectRWLockable())) return -1; return 0; diff --git a/src/conf/virsecretobj.c b/src/conf/virsecretobj.c index 47e0b28968..48ce3c8141 100644 --- a/src/conf/virsecretobj.c +++ b/src/conf/virsecretobj.c @@ -68,16 +68,10 @@ struct virSecretSearchData { static int virSecretObjOnceInit(void) { - if (!(virSecretObjClass = virClassNew(virClassForObjectLockable(), - "virSecretObj", - sizeof(virSecretObj), - virSecretObjDispose))) + if (!VIR_CLASS_NEW(virSecretObj, virClassForObjectLockable())) return -1; - if (!(virSecretObjListClass = virClassNew(virClassForObjectRWLockable(), - "virSecretObjList", - sizeof(virSecretObjList), - virSecretObjListDispose))) + if (!VIR_CLASS_NEW(virSecretObjList, virClassForObjectRWLockable())) return -1; return 0; diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index 799b8c9fa3..6c937f105c 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -110,16 +110,10 @@ struct _virStoragePoolObjList { static int virStorageVolObjOnceInit(void) { - if (!(virStorageVolObjClass = virClassNew(virClassForObjectLockable(), - "virStorageVolObj", - sizeof(virStorageVolObj), - virStorageVolObjDispose))) + if (!VIR_CLASS_NEW(virStorageVolObj, virClassForObjectLockable())) return -1; - if (!(virStorageVolObjListClass = virClassNew(virClassForObjectRWLockable(), - "virStorageVolObjList", - sizeof(virStorageVolObjList), - virStorageVolObjListDispose))) + if (!VIR_CLASS_NEW(virStorageVolObjList, virClassForObjectRWLockable())) return -1; return 0; @@ -207,16 +201,10 @@ virStorageVolObjListDispose(void *opaque) static int virStoragePoolObjOnceInit(void) { - if (!(virStoragePoolObjClass = virClassNew(virClassForObjectLockable(), - "virStoragePoolObj", - sizeof(virStoragePoolObj), - virStoragePoolObjDispose))) + if (!VIR_CLASS_NEW(virStoragePoolObj, virClassForObjectLockable())) return -1; - if (!(virStoragePoolObjListClass = virClassNew(virClassForObjectRWLockable(), - "virStoragePoolObjList", - sizeof(virStoragePoolObjList), - virStoragePoolObjListDispose))) + if (!VIR_CLASS_NEW(virStoragePoolObjList, virClassForObjectRWLockable())) return -1; return 0; diff --git a/src/datatypes.c b/src/datatypes.c index 0c3c66a9ce..09b8eea5a2 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -74,10 +74,7 @@ static int virDataTypesOnceInit(void) { #define DECLARE_CLASS_COMMON(basename, parent) \ - if (!(basename ## Class = virClassNew(parent, \ - #basename, \ - sizeof(basename), \ - basename ## Dispose))) \ + if (!(VIR_CLASS_NEW(basename, parent))) \ return -1; #define DECLARE_CLASS(basename) \ DECLARE_CLASS_COMMON(basename, virClassForObject()) diff --git a/src/interface/interface_backend_netcf.c b/src/interface/interface_backend_netcf.c index cc2402febb..8ca7f9012e 100644 --- a/src/interface/interface_backend_netcf.c +++ b/src/interface/interface_backend_netcf.c @@ -55,11 +55,9 @@ static void virNetcfDriverStateDispose(void *obj); static int virNetcfDriverStateOnceInit(void) { - if (!(virNetcfDriverStateClass = virClassNew(virClassForObjectLockable(), - "virNetcfDriverState", - sizeof(virNetcfDriverState), - virNetcfDriverStateDispose))) + if (!VIR_CLASS_NEW(virNetcfDriverState, virClassForObjectLockable())) return -1; + return 0; } diff --git a/src/libvirt-admin.c b/src/libvirt-admin.c index 7f695311b4..a1a0d567a6 100644 --- a/src/libvirt-admin.c +++ b/src/libvirt-admin.c @@ -67,10 +67,7 @@ virAdmGlobalInit(void) if (!bindtextdomain(PACKAGE, LOCALEDIR)) goto error; - if (!(remoteAdminPrivClass = virClassNew(virClassForObjectLockable(), - "remoteAdminPriv", - sizeof(remoteAdminPriv), - remoteAdminPrivDispose))) + if (!VIR_CLASS_NEW(remoteAdminPriv, virClassForObjectLockable())) goto error; return; diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index df1cece82f..9229057f25 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -62,10 +62,7 @@ static void libxlDriverConfigDispose(void *obj); static int libxlConfigOnceInit(void) { - if (!(libxlDriverConfigClass = virClassNew(virClassForObject(), - "libxlDriverConfig", - sizeof(libxlDriverConfig), - libxlDriverConfigDispose))) + if (!VIR_CLASS_NEW(libxlDriverConfig, virClassForObject())) return -1; return 0; diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index ef9a902671..ee57938112 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -58,10 +58,7 @@ libxlDomainObjPrivateDispose(void *obj); static int libxlDomainObjPrivateOnceInit(void) { - if (!(libxlDomainObjPrivateClass = virClassNew(virClassForObjectLockable(), - "libxlDomainObjPrivate", - sizeof(libxlDomainObjPrivate), - libxlDomainObjPrivateDispose))) + if (!VIR_CLASS_NEW(libxlDomainObjPrivate, virClassForObjectLockable())) return -1; return 0; diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index 5c0fd4b052..d7b494b392 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -244,10 +244,7 @@ libxlMigrationDstArgsDispose(void *obj) static int libxlMigrationDstArgsOnceInit(void) { - if (!(libxlMigrationDstArgsClass = virClassNew(virClassForObject(), - "libxlMigrationDstArgs", - sizeof(libxlMigrationDstArgs), - libxlMigrationDstArgsDispose))) + if (!VIR_CLASS_NEW(libxlMigrationDstArgs, virClassForObject())) return -1; return 0; diff --git a/src/logging/log_handler.c b/src/logging/log_handler.c index cd0ba6ec24..40dfa8ecae 100644 --- a/src/logging/log_handler.c +++ b/src/logging/log_handler.c @@ -76,10 +76,7 @@ static void virLogHandlerDispose(void *obj); static int virLogHandlerOnceInit(void) { - if (!(virLogHandlerClass = virClassNew(virClassForObjectLockable(), - "virLogHandler", - sizeof(virLogHandler), - virLogHandlerDispose))) + if (!VIR_CLASS_NEW(virLogHandler, virClassForObjectLockable())) return -1; return 0; diff --git a/src/lxc/lxc_conf.c b/src/lxc/lxc_conf.c index 92a82a4768..5cd6f231dd 100644 --- a/src/lxc/lxc_conf.c +++ b/src/lxc/lxc_conf.c @@ -48,10 +48,7 @@ static void virLXCDriverConfigDispose(void *obj); static int virLXCConfigOnceInit(void) { - if (!(virLXCDriverConfigClass = virClassNew(virClassForObject(), - "virLXCDriverConfig", - sizeof(virLXCDriverConfig), - virLXCDriverConfigDispose))) + if (!VIR_CLASS_NEW(virLXCDriverConfig, virClassForObject())) return -1; return 0; diff --git a/src/lxc/lxc_monitor.c b/src/lxc/lxc_monitor.c index 9cab6c2035..a569e41849 100644 --- a/src/lxc/lxc_monitor.c +++ b/src/lxc/lxc_monitor.c @@ -51,10 +51,7 @@ static void virLXCMonitorDispose(void *obj); static int virLXCMonitorOnceInit(void) { - if (!(virLXCMonitorClass = virClassNew(virClassForObjectLockable(), - "virLXCMonitor", - sizeof(virLXCMonitor), - virLXCMonitorDispose))) + if (!VIR_CLASS_NEW(virLXCMonitor, virClassForObjectLockable())) return -1; return 0; diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index de01816402..d34ec30379 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -93,10 +93,7 @@ udevEventDataDispose(void *obj) static int udevEventDataOnceInit(void) { - if (!(udevEventDataClass = virClassNew(virClassForObjectLockable(), - "udevEventData", - sizeof(udevEventData), - udevEventDataDispose))) + if (!VIR_CLASS_NEW(udevEventData, virClassForObjectLockable())) return -1; return 0; diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c index 85af53d194..488a19d4a6 100644 --- a/src/qemu/qemu_agent.c +++ b/src/qemu/qemu_agent.c @@ -138,10 +138,7 @@ static void qemuAgentDispose(void *obj); static int qemuAgentOnceInit(void) { - if (!(qemuAgentClass = virClassNew(virClassForObjectLockable(), - "qemuAgent", - sizeof(qemuAgent), - qemuAgentDispose))) + if (!VIR_CLASS_NEW(qemuAgent, virClassForObjectLockable())) return -1; return 0; diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index c6defb773f..2de3d6207f 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -548,10 +548,7 @@ static void virQEMUCapsDispose(void *obj); static int virQEMUCapsOnceInit(void) { - if (!(virQEMUCapsClass = virClassNew(virClassForObject(), - "virQEMUCaps", - sizeof(virQEMUCaps), - virQEMUCapsDispose))) + if (!VIR_CLASS_NEW(virQEMUCaps, virClassForObject())) return -1; return 0; diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 36cf3a281c..bfbb572f01 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -80,15 +80,10 @@ static void virQEMUDriverConfigDispose(void *obj); static int virQEMUConfigOnceInit(void) { - virQEMUDriverConfigClass = virClassNew(virClassForObject(), - "virQEMUDriverConfig", - sizeof(virQEMUDriverConfig), - virQEMUDriverConfigDispose); - - if (!virQEMUDriverConfigClass) + if (!VIR_CLASS_NEW(virQEMUDriverConfig, virClassForObject())) return -1; - else - return 0; + + return 0; } VIR_ONCE_GLOBAL_INIT(virQEMUConfig) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 4c4a9a428d..e999351cd9 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -131,16 +131,10 @@ static void qemuDomainSaveCookieDispose(void *obj); static int qemuDomainOnceInit(void) { - if (!(qemuDomainLogContextClass = virClassNew(virClassForObject(), - "qemuDomainLogContext", - sizeof(qemuDomainLogContext), - qemuDomainLogContextDispose))) + if (!VIR_CLASS_NEW(qemuDomainLogContext, virClassForObject())) return -1; - if (!(qemuDomainSaveCookieClass = virClassNew(virClassForObject(), - "qemuDomainSaveCookie", - sizeof(qemuDomainSaveCookie), - qemuDomainSaveCookieDispose))) + if (!VIR_CLASS_NEW(qemuDomainSaveCookie, virClassForObject())) return -1; return 0; @@ -992,14 +986,10 @@ static void qemuDomainDiskPrivateDispose(void *obj); static int qemuDomainDiskPrivateOnceInit(void) { - qemuDomainDiskPrivateClass = virClassNew(virClassForObject(), - "qemuDomainDiskPrivate", - sizeof(qemuDomainDiskPrivate), - qemuDomainDiskPrivateDispose); - if (!qemuDomainDiskPrivateClass) + if (!VIR_CLASS_NEW(qemuDomainDiskPrivate, virClassForObject())) return -1; - else - return 0; + + return 0; } VIR_ONCE_GLOBAL_INIT(qemuDomainDiskPrivate) @@ -1032,14 +1022,10 @@ static void qemuDomainStorageSourcePrivateDispose(void *obj); static int qemuDomainStorageSourcePrivateOnceInit(void) { - qemuDomainStorageSourcePrivateClass = virClassNew(virClassForObject(), - "qemuDomainStorageSourcePrivate", - sizeof(qemuDomainStorageSourcePrivate), - qemuDomainStorageSourcePrivateDispose); - if (!qemuDomainStorageSourcePrivateClass) + if (!VIR_CLASS_NEW(qemuDomainStorageSourcePrivate, virClassForObject())) return -1; - else - return 0; + + return 0; } VIR_ONCE_GLOBAL_INIT(qemuDomainStorageSourcePrivate) @@ -1075,14 +1061,10 @@ static void qemuDomainVcpuPrivateDispose(void *obj); static int qemuDomainVcpuPrivateOnceInit(void) { - qemuDomainVcpuPrivateClass = virClassNew(virClassForObject(), - "qemuDomainVcpuPrivate", - sizeof(qemuDomainVcpuPrivate), - qemuDomainVcpuPrivateDispose); - if (!qemuDomainVcpuPrivateClass) + if (!VIR_CLASS_NEW(qemuDomainVcpuPrivate, virClassForObject())) return -1; - else - return 0; + + return 0; } VIR_ONCE_GLOBAL_INIT(qemuDomainVcpuPrivate) @@ -1119,15 +1101,10 @@ static void qemuDomainChrSourcePrivateDispose(void *obj); static int qemuDomainChrSourcePrivateOnceInit(void) { - qemuDomainChrSourcePrivateClass = - virClassNew(virClassForObject(), - "qemuDomainChrSourcePrivate", - sizeof(qemuDomainChrSourcePrivate), - qemuDomainChrSourcePrivateDispose); - if (!qemuDomainChrSourcePrivateClass) + if (!VIR_CLASS_NEW(qemuDomainChrSourcePrivate, virClassForObject())) return -1; - else - return 0; + + return 0; } VIR_ONCE_GLOBAL_INIT(qemuDomainChrSourcePrivate) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index eb5c8d70bb..143eb0fb68 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -165,10 +165,7 @@ static void qemuMonitorDispose(void *obj); static int qemuMonitorOnceInit(void) { - if (!(qemuMonitorClass = virClassNew(virClassForObjectLockable(), - "qemuMonitor", - sizeof(qemuMonitor), - qemuMonitorDispose))) + if (!VIR_CLASS_NEW(qemuMonitor, virClassForObjectLockable())) return -1; return 0; diff --git a/src/rpc/virkeepalive.c b/src/rpc/virkeepalive.c index 4f666fd09b..04bba82112 100644 --- a/src/rpc/virkeepalive.c +++ b/src/rpc/virkeepalive.c @@ -58,10 +58,7 @@ static void virKeepAliveDispose(void *obj); static int virKeepAliveOnceInit(void) { - if (!(virKeepAliveClass = virClassNew(virClassForObjectLockable(), - "virKeepAlive", - sizeof(virKeepAlive), - virKeepAliveDispose))) + if (!VIR_CLASS_NEW(virKeepAlive, virClassForObjectLockable())) return -1; return 0; diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c index 0c8d58c32c..6bbc984e48 100644 --- a/src/rpc/virnetclient.c +++ b/src/rpc/virnetclient.c @@ -120,10 +120,7 @@ static void virNetClientDispose(void *obj); static int virNetClientOnceInit(void) { - if (!(virNetClientClass = virClassNew(virClassForObjectLockable(), - "virNetClient", - sizeof(virNetClient), - virNetClientDispose))) + if (!VIR_CLASS_NEW(virNetClient, virClassForObjectLockable())) return -1; return 0; diff --git a/src/rpc/virnetclientprogram.c b/src/rpc/virnetclientprogram.c index d1e54a0892..0c7bcef39c 100644 --- a/src/rpc/virnetclientprogram.c +++ b/src/rpc/virnetclientprogram.c @@ -54,10 +54,7 @@ static void virNetClientProgramDispose(void *obj); static int virNetClientProgramOnceInit(void) { - if (!(virNetClientProgramClass = virClassNew(virClassForObject(), - "virNetClientProgram", - sizeof(virNetClientProgram), - virNetClientProgramDispose))) + if (!VIR_CLASS_NEW(virNetClientProgram, virClassForObject())) return -1; return 0; diff --git a/src/rpc/virnetclientstream.c b/src/rpc/virnetclientstream.c index 2f037db0dc..7b8b4e5c89 100644 --- a/src/rpc/virnetclientstream.c +++ b/src/rpc/virnetclientstream.c @@ -71,10 +71,7 @@ static void virNetClientStreamDispose(void *obj); static int virNetClientStreamOnceInit(void) { - if (!(virNetClientStreamClass = virClassNew(virClassForObjectLockable(), - "virNetClientStream", - sizeof(virNetClientStream), - virNetClientStreamDispose))) + if (!VIR_CLASS_NEW(virNetClientStream, virClassForObjectLockable())) return -1; return 0; diff --git a/src/rpc/virnetdaemon.c b/src/rpc/virnetdaemon.c index 6f00bfd9d1..eb0b822545 100644 --- a/src/rpc/virnetdaemon.c +++ b/src/rpc/virnetdaemon.c @@ -110,10 +110,7 @@ virNetDaemonDispose(void *obj) static int virNetDaemonOnceInit(void) { - if (!(virNetDaemonClass = virClassNew(virClassForObjectLockable(), - "virNetDaemon", - sizeof(virNetDaemon), - virNetDaemonDispose))) + if (!VIR_CLASS_NEW(virNetDaemon, virClassForObjectLockable())) return -1; return 0; diff --git a/src/rpc/virnetlibsshsession.c b/src/rpc/virnetlibsshsession.c index 25f93cec97..309e8a9340 100644 --- a/src/rpc/virnetlibsshsession.c +++ b/src/rpc/virnetlibsshsession.c @@ -161,10 +161,7 @@ virNetLibsshSessionOnceInit(void) { const char *dbgLevelStr; - if (!(virNetLibsshSessionClass = virClassNew(virClassForObjectLockable(), - "virNetLibsshSession", - sizeof(virNetLibsshSession), - virNetLibsshSessionDispose))) + if (!VIR_CLASS_NEW(virNetLibsshSession, virClassForObjectLockable())) return -1; if (ssh_init() < 0) { diff --git a/src/rpc/virnetsaslcontext.c b/src/rpc/virnetsaslcontext.c index 2b564d1736..b4db5c40c6 100644 --- a/src/rpc/virnetsaslcontext.c +++ b/src/rpc/virnetsaslcontext.c @@ -57,16 +57,10 @@ static void virNetSASLSessionDispose(void *obj); static int virNetSASLContextOnceInit(void) { - if (!(virNetSASLContextClass = virClassNew(virClassForObjectLockable(), - "virNetSASLContext", - sizeof(virNetSASLContext), - virNetSASLContextDispose))) + if (!VIR_CLASS_NEW(virNetSASLContext, virClassForObjectLockable())) return -1; - if (!(virNetSASLSessionClass = virClassNew(virClassForObjectLockable(), - "virNetSASLSession", - sizeof(virNetSASLSession), - virNetSASLSessionDispose))) + if (!VIR_CLASS_NEW(virNetSASLSession, virClassForObjectLockable())) return -1; return 0; diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c index 3ce21a8f53..f4105b1394 100644 --- a/src/rpc/virnetserver.c +++ b/src/rpc/virnetserver.c @@ -93,10 +93,7 @@ static inline size_t virNetServerTrackCompletedAuthLocked(virNetServerPtr srv); static int virNetServerOnceInit(void) { - if (!(virNetServerClass = virClassNew(virClassForObjectLockable(), - "virNetServer", - sizeof(virNetServer), - virNetServerDispose))) + if (!VIR_CLASS_NEW(virNetServer, virClassForObjectLockable())) return -1; return 0; diff --git a/src/rpc/virnetserverclient.c b/src/rpc/virnetserverclient.c index d5f0cf448f..b373ca1a8b 100644 --- a/src/rpc/virnetserverclient.c +++ b/src/rpc/virnetserverclient.c @@ -129,10 +129,7 @@ static void virNetServerClientDispose(void *obj); static int virNetServerClientOnceInit(void) { - if (!(virNetServerClientClass = virClassNew(virClassForObjectLockable(), - "virNetServerClient", - sizeof(virNetServerClient), - virNetServerClientDispose))) + if (!VIR_CLASS_NEW(virNetServerClient, virClassForObjectLockable())) return -1; return 0; diff --git a/src/rpc/virnetserverprogram.c b/src/rpc/virnetserverprogram.c index f28274fc22..b04c36d3aa 100644 --- a/src/rpc/virnetserverprogram.c +++ b/src/rpc/virnetserverprogram.c @@ -51,10 +51,7 @@ static void virNetServerProgramDispose(void *obj); static int virNetServerProgramOnceInit(void) { - if (!(virNetServerProgramClass = virClassNew(virClassForObject(), - "virNetServerProgram", - sizeof(virNetServerProgram), - virNetServerProgramDispose))) + if (!VIR_CLASS_NEW(virNetServerProgram, virClassForObject())) return -1; return 0; diff --git a/src/rpc/virnetserverservice.c b/src/rpc/virnetserverservice.c index d2350b2b91..fb19d09dda 100644 --- a/src/rpc/virnetserverservice.c +++ b/src/rpc/virnetserverservice.c @@ -57,10 +57,7 @@ static void virNetServerServiceDispose(void *obj); static int virNetServerServiceOnceInit(void) { - if (!(virNetServerServiceClass = virClassNew(virClassForObject(), - "virNetServerService", - sizeof(virNetServerService), - virNetServerServiceDispose))) + if (!VIR_CLASS_NEW(virNetServerService, virClassForObject())) return -1; return 0; diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c index f362a09555..f253eb2605 100644 --- a/src/rpc/virnetsocket.c +++ b/src/rpc/virnetsocket.c @@ -124,10 +124,7 @@ static void virNetSocketDispose(void *obj); static int virNetSocketOnceInit(void) { - if (!(virNetSocketClass = virClassNew(virClassForObjectLockable(), - "virNetSocket", - sizeof(virNetSocket), - virNetSocketDispose))) + if (!VIR_CLASS_NEW(virNetSocket, virClassForObjectLockable())) return -1; return 0; diff --git a/src/rpc/virnetsshsession.c b/src/rpc/virnetsshsession.c index e742175654..6566f36ce0 100644 --- a/src/rpc/virnetsshsession.c +++ b/src/rpc/virnetsshsession.c @@ -167,10 +167,7 @@ static virClassPtr virNetSSHSessionClass; static int virNetSSHSessionOnceInit(void) { - if (!(virNetSSHSessionClass = virClassNew(virClassForObjectLockable(), - "virNetSSHSession", - sizeof(virNetSSHSession), - virNetSSHSessionDispose))) + if (!VIR_CLASS_NEW(virNetSSHSession, virClassForObjectLockable())) return -1; return 0; diff --git a/src/rpc/virnettlscontext.c b/src/rpc/virnettlscontext.c index 5699eb8f24..2c46aebf31 100644 --- a/src/rpc/virnettlscontext.c +++ b/src/rpc/virnettlscontext.c @@ -90,16 +90,10 @@ static void virNetTLSSessionDispose(void *obj); static int virNetTLSContextOnceInit(void) { - if (!(virNetTLSContextClass = virClassNew(virClassForObjectLockable(), - "virNetTLSContext", - sizeof(virNetTLSContext), - virNetTLSContextDispose))) + if (!VIR_CLASS_NEW(virNetTLSContext, virClassForObjectLockable())) return -1; - if (!(virNetTLSSessionClass = virClassNew(virClassForObjectLockable(), - "virNetTLSSession", - sizeof(virNetTLSSession), - virNetTLSSessionDispose))) + if (!VIR_CLASS_NEW(virNetTLSSession, virClassForObjectLockable())) return -1; return 0; diff --git a/src/security/security_manager.c b/src/security/security_manager.c index fdeea4d533..71f7f59b9c 100644 --- a/src/security/security_manager.c +++ b/src/security/security_manager.c @@ -59,10 +59,7 @@ void virSecurityManagerDispose(void *obj) static int virSecurityManagerOnceInit(void) { - if (!(virSecurityManagerClass = virClassNew(virClassForObjectLockable(), - "virSecurityManagerClass", - sizeof(virSecurityManager), - virSecurityManagerDispose))) + if (!VIR_CLASS_NEW(virSecurityManager, virClassForObjectLockable())) return -1; return 0; diff --git a/src/util/virclosecallbacks.c b/src/util/virclosecallbacks.c index 49dac65892..0a395eb167 100644 --- a/src/util/virclosecallbacks.c +++ b/src/util/virclosecallbacks.c @@ -53,15 +53,10 @@ static void virCloseCallbacksDispose(void *obj); static int virCloseCallbacksOnceInit(void) { - virCloseCallbacksClass = virClassNew(virClassForObjectLockable(), - "virCloseCallbacks", - sizeof(virCloseCallbacks), - virCloseCallbacksDispose); - - if (!virCloseCallbacksClass) + if (!VIR_CLASS_NEW(virCloseCallbacks, virClassForObjectLockable())) return -1; - else - return 0; + + return 0; } VIR_ONCE_GLOBAL_INIT(virCloseCallbacks) diff --git a/src/util/virdnsmasq.c b/src/util/virdnsmasq.c index db5c51b6a2..492dcadc96 100644 --- a/src/util/virdnsmasq.c +++ b/src/util/virdnsmasq.c @@ -641,12 +641,8 @@ dnsmasqCapsDispose(void *obj) static int dnsmasqCapsOnceInit(void) { - if (!(dnsmasqCapsClass = virClassNew(virClassForObject(), - "dnsmasqCaps", - sizeof(dnsmasqCaps), - dnsmasqCapsDispose))) { + if (!VIR_CLASS_NEW(dnsmasqCaps, virClassForObject())) return -1; - } return 0; } diff --git a/src/util/virfdstream.c b/src/util/virfdstream.c index be40379a92..e4973a2bd0 100644 --- a/src/util/virfdstream.c +++ b/src/util/virfdstream.c @@ -129,10 +129,7 @@ virFDStreamDataDispose(void *obj) static int virFDStreamDataOnceInit(void) { - if (!(virFDStreamDataClass = virClassNew(virClassForObjectLockable(), - "virFDStreamData", - sizeof(virFDStreamData), - virFDStreamDataDispose))) + if (!VIR_CLASS_NEW(virFDStreamData, virClassForObjectLockable())) return -1; return 0; diff --git a/src/util/virfilecache.c b/src/util/virfilecache.c index e24eb5a68c..dab72163dd 100644 --- a/src/util/virfilecache.c +++ b/src/util/virfilecache.c @@ -86,10 +86,7 @@ virFileCacheDispose(void *obj) static int virFileCacheOnceInit(void) { - if (!(virFileCacheClass = virClassNew(virClassForObjectLockable(), - "virFileCache", - sizeof(virFileCache), - virFileCacheDispose))) + if (!VIR_CLASS_NEW(virFileCache, virClassForObjectLockable())) return -1; return 0; diff --git a/src/util/virhash.c b/src/util/virhash.c index 475c2b0281..ecda55dba5 100644 --- a/src/util/virhash.c +++ b/src/util/virhash.c @@ -77,15 +77,12 @@ static void virHashAtomicDispose(void *obj); static int virHashAtomicOnceInit(void) { - virHashAtomicClass = virClassNew(virClassForObjectLockable(), - "virHashAtomic", - sizeof(virHashAtomic), - virHashAtomicDispose); - if (!virHashAtomicClass) + if (!VIR_CLASS_NEW(virHashAtomic, virClassForObjectLockable())) return -1; - else - return 0; + + return 0; } + VIR_ONCE_GLOBAL_INIT(virHashAtomic) diff --git a/src/util/virhostdev.c b/src/util/virhostdev.c index a12224c58f..db10b7a204 100644 --- a/src/util/virhostdev.c +++ b/src/util/virhostdev.c @@ -120,10 +120,7 @@ static int virHostdevIsPCINodeDeviceUsed(virPCIDeviceAddressPtr devAddr, void *o static int virHostdevManagerOnceInit(void) { - if (!(virHostdevManagerClass = virClassNew(virClassForObject(), - "virHostdevManager", - sizeof(virHostdevManager), - virHostdevManagerDispose))) + if (!VIR_CLASS_NEW(virHostdevManager, virClassForObject())) return -1; if (!(manager = virHostdevManagerNew())) diff --git a/src/util/viridentity.c b/src/util/viridentity.c index 52a0a30a45..2f4307bc82 100644 --- a/src/util/viridentity.c +++ b/src/util/viridentity.c @@ -54,10 +54,7 @@ static void virIdentityDispose(void *obj); static int virIdentityOnceInit(void) { - if (!(virIdentityClass = virClassNew(virClassForObject(), - "virIdentity", - sizeof(virIdentity), - virIdentityDispose))) + if (!VIR_CLASS_NEW(virIdentity, virClassForObject())) return -1; if (virThreadLocalInit(&virIdentityCurrent, diff --git a/src/util/virmacmap.c b/src/util/virmacmap.c index 42890ba2ff..88ca9b3f36 100644 --- a/src/util/virmacmap.c +++ b/src/util/virmacmap.c @@ -74,10 +74,7 @@ virMacMapDispose(void *obj) static int virMacMapOnceInit(void) { - if (!(virMacMapClass = virClassNew(virClassForObjectLockable(), - "virMacMapClass", - sizeof(virMacMap), - virMacMapDispose))) + if (!VIR_CLASS_NEW(virMacMap, virClassForObjectLockable())) return -1; return 0; diff --git a/src/util/virmdev.c b/src/util/virmdev.c index 27541cf34f..536ddbeed2 100644 --- a/src/util/virmdev.c +++ b/src/util/virmdev.c @@ -58,10 +58,7 @@ virMediatedDeviceListDispose(void *obj); static int virMediatedOnceInit(void) { - if (!(virMediatedDeviceListClass = virClassNew(virClassForObjectLockable(), - "virMediatedDeviceList", - sizeof(virMediatedDeviceList), - virMediatedDeviceListDispose))) + if (!VIR_CLASS_NEW(virMediatedDeviceList, virClassForObjectLockable())) return -1; return 0; diff --git a/src/util/virobject.c b/src/util/virobject.c index 1723df6b2f..9fb0328d58 100644 --- a/src/util/virobject.c +++ b/src/util/virobject.c @@ -81,16 +81,10 @@ virObjectOnceInit(void) NULL))) return -1; - if (!(virObjectLockableClass = virClassNew(virObjectClass, - "virObjectLockable", - sizeof(virObjectLockable), - virObjectLockableDispose))) + if (!VIR_CLASS_NEW(virObjectLockable, virObjectClass)) return -1; - if (!(virObjectRWLockableClass = virClassNew(virObjectClass, - "virObjectRWLockable", - sizeof(virObjectRWLockable), - virObjectRWLockableDispose))) + if (!VIR_CLASS_NEW(virObjectRWLockable, virObjectClass)) return -1; return 0; diff --git a/src/util/virobject.h b/src/util/virobject.h index ac6cf22f9e..ed1a117b09 100644 --- a/src/util/virobject.h +++ b/src/util/virobject.h @@ -74,6 +74,10 @@ virClassPtr virClassForObjectRWLockable(void); # ifndef VIR_PARENT_REQUIRED # define VIR_PARENT_REQUIRED ATTRIBUTE_NONNULL(1) # endif + +# define VIR_CLASS_NEW(name, prnt) \ + (name##Class = virClassNew(prnt, #name, sizeof(name), name##Dispose)) + virClassPtr virClassNew(virClassPtr parent, const char *name, diff --git a/src/util/virpci.c b/src/util/virpci.c index 55e4c3e492..23932558e9 100644 --- a/src/util/virpci.c +++ b/src/util/virpci.c @@ -204,10 +204,7 @@ static void virPCIDeviceListDispose(void *obj); static int virPCIOnceInit(void) { - if (!(virPCIDeviceListClass = virClassNew(virClassForObjectLockable(), - "virPCIDeviceList", - sizeof(virPCIDeviceList), - virPCIDeviceListDispose))) + if (!VIR_CLASS_NEW(virPCIDeviceList, virClassForObjectLockable())) return -1; return 0; diff --git a/src/util/virportallocator.c b/src/util/virportallocator.c index 25200fbbb2..004a2dab81 100644 --- a/src/util/virportallocator.c +++ b/src/util/virportallocator.c @@ -80,10 +80,7 @@ virPortAllocatorNew(void) static int virPortAllocatorOnceInit(void) { - if (!(virPortAllocatorClass = virClassNew(virClassForObjectLockable(), - "virPortAllocator", - sizeof(virPortAllocator), - virPortAllocatorDispose))) + if (!VIR_CLASS_NEW(virPortAllocator, virClassForObjectLockable())) return -1; if (!(virPortAllocatorInstance = virPortAllocatorNew())) diff --git a/src/util/virresctrl.c b/src/util/virresctrl.c index 9639e00468..fc1163508a 100644 --- a/src/util/virresctrl.c +++ b/src/util/virresctrl.c @@ -133,10 +133,7 @@ virResctrlInfoDispose(void *obj) static int virResctrlInfoOnceInit(void) { - if (!(virResctrlInfoClass = virClassNew(virClassForObject(), - "virResctrlInfo", - sizeof(virResctrlInfo), - virResctrlInfoDispose))) + if (!VIR_CLASS_NEW(virResctrlInfo, virClassForObject())) return -1; return 0; @@ -271,10 +268,7 @@ virResctrlAllocDispose(void *obj) static int virResctrlAllocOnceInit(void) { - if (!(virResctrlAllocClass = virClassNew(virClassForObject(), - "virResctrlAlloc", - sizeof(virResctrlAlloc), - virResctrlAllocDispose))) + if (!VIR_CLASS_NEW(virResctrlAlloc, virClassForObject())) return -1; return 0; diff --git a/src/util/virscsi.c b/src/util/virscsi.c index 22f2677a3f..b51103a86d 100644 --- a/src/util/virscsi.c +++ b/src/util/virscsi.c @@ -85,10 +85,7 @@ static void virSCSIDeviceListDispose(void *obj); static int virSCSIOnceInit(void) { - if (!(virSCSIDeviceListClass = virClassNew(virClassForObjectLockable(), - "virSCSIDeviceList", - sizeof(virSCSIDeviceList), - virSCSIDeviceListDispose))) + if (!VIR_CLASS_NEW(virSCSIDeviceList, virClassForObjectLockable())) return -1; return 0; diff --git a/src/util/virscsivhost.c b/src/util/virscsivhost.c index 5f176e177f..84c09e8458 100644 --- a/src/util/virscsivhost.c +++ b/src/util/virscsivhost.c @@ -70,10 +70,7 @@ virSCSIVHostDeviceListDispose(void *obj) static int virSCSIVHostOnceInit(void) { - if (!(virSCSIVHostDeviceListClass = virClassNew(virClassForObjectLockable(), - "virSCSIVHostDeviceList", - sizeof(virSCSIVHostDeviceList), - virSCSIVHostDeviceListDispose))) + if (!VIR_CLASS_NEW(virSCSIVHostDeviceList, virClassForObjectLockable())) return -1; return 0; diff --git a/src/util/virusb.c b/src/util/virusb.c index be7be5dc18..2fe1bfc290 100644 --- a/src/util/virusb.c +++ b/src/util/virusb.c @@ -80,10 +80,7 @@ static void virUSBDeviceListDispose(void *obj); static int virUSBOnceInit(void) { - if (!(virUSBDeviceListClass = virClassNew(virClassForObjectLockable(), - "virUSBDeviceList", - sizeof(virUSBDeviceList), - virUSBDeviceListDispose))) + if (!VIR_CLASS_NEW(virUSBDeviceList, virClassForObjectLockable())) return -1; return 0; diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index 920af4c010..72a24a3464 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -118,10 +118,7 @@ vboxDriverDispose(void *obj) static int vboxDriverOnceInit(void) { - if (!(vboxDriverClass = virClassNew(virClassForObjectLockable(), - "vboxDriver", - sizeof(vboxDriver), - vboxDriverDispose))) + if (!VIR_CLASS_NEW(vboxDriver, virClassForObjectLockable())) return -1; return 0; diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index e51d968f28..2ff2018a43 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -161,10 +161,7 @@ static void vzDriverDispose(void * obj) static int vzDriverOnceInit(void) { - if (!(vzDriverClass = virClassNew(virClassForObjectLockable(), - "vzDriver", - sizeof(vzDriver), - vzDriverDispose))) + if (!VIR_CLASS_NEW(vzDriver, virClassForObjectLockable())) return -1; return 0; diff --git a/tests/virfilecachetest.c b/tests/virfilecachetest.c index d4a9d598ef..3c55cd1e02 100644 --- a/tests/virfilecachetest.c +++ b/tests/virfilecachetest.c @@ -49,10 +49,7 @@ testFileCacheObjDispose(void *opaque) static int testFileCacheObjOnceInit(void) { - if (!(testFileCacheObjClass = virClassNew(virClassForObject(), - "testFileCacheObj", - sizeof(testFileCacheObj), - testFileCacheObjDispose))) + if (!VIR_CLASS_NEW(testFileCacheObj, virClassForObject())) return -1; return 0; -- 2.16.1

On Tue, Apr 17, 2018 at 06:01:04PM +0200, Michal Privoznik wrote:
So far we are repeating the following lines over and over:
if (!(virSomeObjectClass = virClassNew(virClassForObject(), "virSomeObject", sizeof(virSomeObject), virSomeObjectDispose))) return -1;
While this works, it is impossible to do some checking. Firstly, the class name (the 2nd argument) doesn't match the name in the code in all cases (the 3rd argument). Secondly, the current style is needlessly verbose. This commit turns example into following:
if (!(VIR_CLASS_NEW(virSomeObject, virClassForObject))) return -1;
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/access/viraccessmanager.c | 5 +- src/bhyve/bhyve_conf.c | 5 +- src/conf/capabilities.c | 5 +- src/conf/domain_capabilities.c | 11 +-- src/conf/domain_conf.c | 20 +--- src/conf/domain_event.c | 166 ++++++++------------------------ src/conf/network_event.c | 14 +-- src/conf/node_device_event.c | 21 ++-- src/conf/object_event.c | 12 +-- src/conf/secret_event.c | 21 ++-- src/conf/storage_event.c | 21 ++-- src/conf/virdomainobjlist.c | 5 +- src/conf/virinterfaceobj.c | 10 +- src/conf/virnetworkobj.c | 11 +-- src/conf/virnodedeviceobj.c | 10 +- src/conf/virsecretobj.c | 10 +- src/conf/virstorageobj.c | 20 +--- src/datatypes.c | 5 +- src/interface/interface_backend_netcf.c | 6 +- src/libvirt-admin.c | 5 +- src/libxl/libxl_conf.c | 5 +- src/libxl/libxl_domain.c | 5 +- src/libxl/libxl_migration.c | 5 +- src/logging/log_handler.c | 5 +- src/lxc/lxc_conf.c | 5 +- src/lxc/lxc_monitor.c | 5 +- src/node_device/node_device_udev.c | 5 +- src/qemu/qemu_agent.c | 5 +- src/qemu/qemu_capabilities.c | 5 +- src/qemu/qemu_conf.c | 11 +-- src/qemu/qemu_domain.c | 51 +++------- src/qemu/qemu_monitor.c | 5 +- src/rpc/virkeepalive.c | 5 +- src/rpc/virnetclient.c | 5 +- src/rpc/virnetclientprogram.c | 5 +- src/rpc/virnetclientstream.c | 5 +- src/rpc/virnetdaemon.c | 5 +- src/rpc/virnetlibsshsession.c | 5 +- src/rpc/virnetsaslcontext.c | 10 +- src/rpc/virnetserver.c | 5 +- src/rpc/virnetserverclient.c | 5 +- src/rpc/virnetserverprogram.c | 5 +- src/rpc/virnetserverservice.c | 5 +- src/rpc/virnetsocket.c | 5 +- src/rpc/virnetsshsession.c | 5 +- src/rpc/virnettlscontext.c | 10 +- src/security/security_manager.c | 5 +- src/util/virclosecallbacks.c | 11 +-- src/util/virdnsmasq.c | 6 +- src/util/virfdstream.c | 5 +- src/util/virfilecache.c | 5 +- src/util/virhash.c | 11 +-- src/util/virhostdev.c | 5 +- src/util/viridentity.c | 5 +- src/util/virmacmap.c | 5 +- src/util/virmdev.c | 5 +- src/util/virobject.c | 10 +- src/util/virobject.h | 4 + src/util/virpci.c | 5 +- src/util/virportallocator.c | 5 +- src/util/virresctrl.c | 10 +- src/util/virscsi.c | 5 +- src/util/virscsivhost.c | 5 +- src/util/virusb.c | 5 +- src/vbox/vbox_common.c | 5 +- src/vz/vz_driver.c | 5 +- tests/virfilecachetest.c | 5 +- 67 files changed, 167 insertions(+), 535 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> but i can't claim I looked closely at anything except the virobject.h change - i'm assuming the compile time validation is doing the right thing :-) Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On 04/17/2018 06:45 PM, Daniel P. Berrangé wrote:
On Tue, Apr 17, 2018 at 06:01:04PM +0200, Michal Privoznik wrote:
So far we are repeating the following lines over and over:
if (!(virSomeObjectClass = virClassNew(virClassForObject(), "virSomeObject", sizeof(virSomeObject), virSomeObjectDispose))) return -1;
While this works, it is impossible to do some checking. Firstly, the class name (the 2nd argument) doesn't match the name in the code in all cases (the 3rd argument). Secondly, the current style is needlessly verbose. This commit turns example into following:
if (!(VIR_CLASS_NEW(virSomeObject, virClassForObject))) return -1;
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/access/viraccessmanager.c | 5 +- src/bhyve/bhyve_conf.c | 5 +- src/conf/capabilities.c | 5 +- src/conf/domain_capabilities.c | 11 +-- src/conf/domain_conf.c | 20 +--- src/conf/domain_event.c | 166 ++++++++------------------------ src/conf/network_event.c | 14 +-- src/conf/node_device_event.c | 21 ++-- src/conf/object_event.c | 12 +-- src/conf/secret_event.c | 21 ++-- src/conf/storage_event.c | 21 ++-- src/conf/virdomainobjlist.c | 5 +- src/conf/virinterfaceobj.c | 10 +- src/conf/virnetworkobj.c | 11 +-- src/conf/virnodedeviceobj.c | 10 +- src/conf/virsecretobj.c | 10 +- src/conf/virstorageobj.c | 20 +--- src/datatypes.c | 5 +- src/interface/interface_backend_netcf.c | 6 +- src/libvirt-admin.c | 5 +- src/libxl/libxl_conf.c | 5 +- src/libxl/libxl_domain.c | 5 +- src/libxl/libxl_migration.c | 5 +- src/logging/log_handler.c | 5 +- src/lxc/lxc_conf.c | 5 +- src/lxc/lxc_monitor.c | 5 +- src/node_device/node_device_udev.c | 5 +- src/qemu/qemu_agent.c | 5 +- src/qemu/qemu_capabilities.c | 5 +- src/qemu/qemu_conf.c | 11 +-- src/qemu/qemu_domain.c | 51 +++------- src/qemu/qemu_monitor.c | 5 +- src/rpc/virkeepalive.c | 5 +- src/rpc/virnetclient.c | 5 +- src/rpc/virnetclientprogram.c | 5 +- src/rpc/virnetclientstream.c | 5 +- src/rpc/virnetdaemon.c | 5 +- src/rpc/virnetlibsshsession.c | 5 +- src/rpc/virnetsaslcontext.c | 10 +- src/rpc/virnetserver.c | 5 +- src/rpc/virnetserverclient.c | 5 +- src/rpc/virnetserverprogram.c | 5 +- src/rpc/virnetserverservice.c | 5 +- src/rpc/virnetsocket.c | 5 +- src/rpc/virnetsshsession.c | 5 +- src/rpc/virnettlscontext.c | 10 +- src/security/security_manager.c | 5 +- src/util/virclosecallbacks.c | 11 +-- src/util/virdnsmasq.c | 6 +- src/util/virfdstream.c | 5 +- src/util/virfilecache.c | 5 +- src/util/virhash.c | 11 +-- src/util/virhostdev.c | 5 +- src/util/viridentity.c | 5 +- src/util/virmacmap.c | 5 +- src/util/virmdev.c | 5 +- src/util/virobject.c | 10 +- src/util/virobject.h | 4 + src/util/virpci.c | 5 +- src/util/virportallocator.c | 5 +- src/util/virresctrl.c | 10 +- src/util/virscsi.c | 5 +- src/util/virscsivhost.c | 5 +- src/util/virusb.c | 5 +- src/vbox/vbox_common.c | 5 +- src/vz/vz_driver.c | 5 +- tests/virfilecachetest.c | 5 +- 67 files changed, 167 insertions(+), 535 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
but i can't claim I looked closely at anything except the virobject.h change - i'm assuming the compile time validation is doing the right thing :-)
99% of the changes were made by coccinelle and the rest was made by hand. Then, I interactively added each hunk separately and inspected it whilst doing so. Michal

Our virObject code relies heavily on the fact that the first member of the class struct is type of virObject (or some derivation of if). Let's check for that. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/util/virobject.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/util/virobject.h b/src/util/virobject.h index ed1a117b09..77ebad1e8b 100644 --- a/src/util/virobject.h +++ b/src/util/virobject.h @@ -76,7 +76,8 @@ virClassPtr virClassForObjectRWLockable(void); # endif # define VIR_CLASS_NEW(name, prnt) \ - (name##Class = virClassNew(prnt, #name, sizeof(name), name##Dispose)) + verify_expr(offsetof(name, parent) == 0, \ + (name##Class = virClassNew(prnt, #name, sizeof(name), name##Dispose))) virClassPtr virClassNew(virClassPtr parent, -- 2.16.1

On Tue, Apr 17, 2018 at 06:01:05PM +0200, Michal Privoznik wrote:
Our virObject code relies heavily on the fact that the first member of the class struct is type of virObject (or some derivation of if). Let's check for that.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/util/virobject.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Now that we have macro that does some checks lets forbid raw usage of virClassNew() in favor of VIR_CLASS_NEW(). Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> --- cfg.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cfg.mk b/cfg.mk index 4078bc2c63..902178dd1c 100644 --- a/cfg.mk +++ b/cfg.mk @@ -321,6 +321,11 @@ sc_prohibit_internal_functions: halt='use VIR_ macros instead of internal functions' \ $(_sc_search_regexp) +sc_prohibit_raw_virclassnew: + @prohibit='virClassNew *\(' \ + halt='use VIR_CLASS_NEW instead of virClassNew' \ + $(_sc_search_regexp) + # Avoid raw malloc and free, except in documentation comments. sc_prohibit_raw_allocation: @prohibit='^.[^*].*\<((m|c|re)alloc|free) *\([^)]' \ @@ -1188,6 +1193,9 @@ exclude_file_name_regexp--sc_prohibit_gethostname = ^src/util/vir(util|log)\.c$$ exclude_file_name_regexp--sc_prohibit_internal_functions = \ ^src/(util/(viralloc|virutil|virfile)\.[hc]|esx/esx_vi\.c)$$ +exclude_file_name_regexp--sc_prohibit_raw_virclassnew = \ + ^src/util/virobject\.[hc]$$ + exclude_file_name_regexp--sc_prohibit_newline_at_end_of_diagnostic = \ ^src/rpc/gendispatch\.pl$$ -- 2.16.1

On Tue, Apr 17, 2018 at 06:01:06PM +0200, Michal Privoznik wrote:
Now that we have macro that does some checks lets forbid raw usage of virClassNew() in favor of VIR_CLASS_NEW().
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> --- cfg.mk | 8 ++++++++ 1 file changed, 8 insertions(+)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On 04/17/2018 06:46 PM, Daniel P. Berrangé wrote:
On Tue, Apr 17, 2018 at 06:01:06PM +0200, Michal Privoznik wrote:
Now that we have macro that does some checks lets forbid raw usage of virClassNew() in favor of VIR_CLASS_NEW().
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> --- cfg.mk | 8 ++++++++ 1 file changed, 8 insertions(+)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
These are pushed now. Thanks! Michal
participants (2)
-
Daniel P. Berrangé
-
Michal Privoznik