[libvirt] [PATCH] esx: Reduce code duplication in generator

Eric Blake eblake at redhat.com
Thu May 2 03:28:20 UTC 2013


On 05/01/2013 12:44 PM, Matthias Bolte wrote:
> ---
>  src/esx/esx_vi_generator.py |  430 ++++++++++++-------------------------------
>  1 file changed, 118 insertions(+), 312 deletions(-)

My python is weak, so I reviewed this by comparing the generated files
before and after this patch; added comments in the generated code are
nice, but there are also some added frees.  Are these additions
intentional to fix a leak, or are they representing a bug in your patch?
 If intentional, then this is 1.0.5 material if you improve the commit
message and push in time; if accidental and no real bug is being fixed,
then a v2 should wait until after the release.

Here's the difference in generated files:

diff -ur src/esx.bak/esx_vi_types.generated.c
src/esx/esx_vi_types.generated.c
--- src/esx.bak/esx_vi_types.generated.c	2013-05-01 21:20:40.749653184 -0600
+++ src/esx/esx_vi_types.generated.c	2013-05-01 21:21:43.270214170 -0600
@@ -515,6 +515,7 @@
 /* esxVI_DatastoreInfo_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(DatastoreInfo,
 {
+    /* DatastoreInfo */
     ESX_VI__TEMPLATE__DISPATCH__FREE(LocalDatastoreInfo)
     ESX_VI__TEMPLATE__DISPATCH__FREE(NasDatastoreInfo)
     ESX_VI__TEMPLATE__DISPATCH__FREE(VmfsDatastoreInfo)
@@ -583,7 +584,11 @@
 /* esxVI_Description_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(Description,
 {
+    /* Description */
     ESX_VI__TEMPLATE__DISPATCH__FREE(ElementDescription)
+
+    /* ElementDescription */
+    ESX_VI__TEMPLATE__DISPATCH__FREE(ExtendedElementDescription)
 },
 {
     esxVI_Description_Free(&item->_next);
@@ -739,6 +744,7 @@
 /* esxVI_ElementDescription_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(ElementDescription,
 {
+    /* ElementDescription */
     ESX_VI__TEMPLATE__DISPATCH__FREE(ExtendedElementDescription)
 },
 {
@@ -808,6 +814,7 @@
 /* esxVI_EntityEventArgument_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(EntityEventArgument,
 {
+    /* EntityEventArgument */
     ESX_VI__TEMPLATE__DISPATCH__FREE(VmEventArgument)
 },
 {
@@ -855,7 +862,11 @@
 /* esxVI_EventArgument_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(EventArgument,
 {
+    /* EventArgument */
     ESX_VI__TEMPLATE__DISPATCH__FREE(EntityEventArgument)
+
+    /* EntityEventArgument */
+    ESX_VI__TEMPLATE__DISPATCH__FREE(VmEventArgument)
 },
 {
     /* no properties */
@@ -1018,6 +1029,7 @@
 /* esxVI_FileInfo_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(FileInfo,
 {
+    /* FileInfo */
     ESX_VI__TEMPLATE__DISPATCH__FREE(FloppyImageFileInfo)
     ESX_VI__TEMPLATE__DISPATCH__FREE(FolderFileInfo)
     ESX_VI__TEMPLATE__DISPATCH__FREE(IsoImageFileInfo)
@@ -1026,6 +1038,9 @@
     ESX_VI__TEMPLATE__DISPATCH__FREE(VmLogFileInfo)
     ESX_VI__TEMPLATE__DISPATCH__FREE(VmNvramFileInfo)
     ESX_VI__TEMPLATE__DISPATCH__FREE(VmSnapshotFileInfo)
+
+    /* VmConfigFileInfo */
+    ESX_VI__TEMPLATE__DISPATCH__FREE(TemplateConfigFileInfo)
 },
 {
     esxVI_FileInfo_Free(&item->_next);
@@ -1108,6 +1123,7 @@
 /* esxVI_FileQuery_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(FileQuery,
 {
+    /* FileQuery */
     ESX_VI__TEMPLATE__DISPATCH__FREE(FloppyImageFileQuery)
     ESX_VI__TEMPLATE__DISPATCH__FREE(FolderFileQuery)
     ESX_VI__TEMPLATE__DISPATCH__FREE(IsoImageFileQuery)
@@ -1116,6 +1132,9 @@
     ESX_VI__TEMPLATE__DISPATCH__FREE(VmLogFileQuery)
     ESX_VI__TEMPLATE__DISPATCH__FREE(VmNvramFileQuery)
     ESX_VI__TEMPLATE__DISPATCH__FREE(VmSnapshotFileQuery)
+
+    /* VmConfigFileQuery */
+    ESX_VI__TEMPLATE__DISPATCH__FREE(TemplateConfigFileQuery)
 },
 {
     esxVI_FileQuery_Free(&item->_next);
@@ -1822,7 +1841,11 @@
 /* esxVI_HostDevice_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(HostDevice,
 {
+    /* HostDevice */
     ESX_VI__TEMPLATE__DISPATCH__FREE(ScsiLun)
+
+    /* ScsiLun */
+    ESX_VI__TEMPLATE__DISPATCH__FREE(HostScsiDisk)
 },
 {
     esxVI_HostDevice_Free(&item->_next);
@@ -2104,6 +2127,7 @@
 /* esxVI_HostFileSystemVolume_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(HostFileSystemVolume,
 {
+    /* HostFileSystemVolume */
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostNasVolume)
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostVmfsVolume)
 },
@@ -2150,6 +2174,7 @@
 /* esxVI_HostHostBusAdapter_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(HostHostBusAdapter,
 {
+    /* HostHostBusAdapter */
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostBlockHba)
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostFibreChannelHba)
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostInternetScsiHba)
@@ -4153,6 +4178,7 @@
 /* esxVI_HostTargetTransport_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(HostTargetTransport,
 {
+    /* HostTargetTransport */
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostBlockAdapterTargetTransport)
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostFibreChannelTargetTransport)
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostInternetScsiTargetTransport)
@@ -4459,6 +4485,7 @@
 /* esxVI_HostVirtualSwitchBridge_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(HostVirtualSwitchBridge,
 {
+    /* HostVirtualSwitchBridge */
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostVirtualSwitchAutoBridge)
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostVirtualSwitchBondBridge)
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostVirtualSwitchSimpleBridge)
@@ -5147,6 +5174,7 @@
 /* esxVI_OptionType_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(OptionType,
 {
+    /* OptionType */
     ESX_VI__TEMPLATE__DISPATCH__FREE(ChoiceOption)
 },
 {
@@ -5182,6 +5210,7 @@
 /* esxVI_OptionValue_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(OptionValue,
 {
+    /* OptionValue */
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostInternetScsiHbaParamValue)
 },
 {
@@ -5358,6 +5387,7 @@
 /* esxVI_PerfEntityMetricBase_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(PerfEntityMetricBase,
 {
+    /* PerfEntityMetricBase */
     ESX_VI__TEMPLATE__DISPATCH__FREE(PerfEntityMetric)
 },
 {
@@ -5512,6 +5542,7 @@
 /* esxVI_PerfMetricSeries_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(PerfMetricSeries,
 {
+    /* PerfMetricSeries */
     ESX_VI__TEMPLATE__DISPATCH__FREE(PerfMetricIntSeries)
 },
 {
@@ -6042,6 +6073,7 @@
 /* esxVI_ScsiLun_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(ScsiLun,
 {
+    /* ScsiLun */
     ESX_VI__TEMPLATE__DISPATCH__FREE(HostScsiDisk)
 },
 {
@@ -6320,6 +6352,7 @@
 /* esxVI_SelectionSpec_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(SelectionSpec,
 {
+    /* SelectionSpec */
     ESX_VI__TEMPLATE__DISPATCH__FREE(TraversalSpec)
 },
 {
@@ -6869,6 +6902,7 @@
 /* esxVI_VirtualDiskSpec_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(VirtualDiskSpec,
 {
+    /* VirtualDiskSpec */
     ESX_VI__TEMPLATE__DISPATCH__FREE(DeviceBackedVirtualDiskSpec)
     ESX_VI__TEMPLATE__DISPATCH__FREE(FileBackedVirtualDiskSpec)
 },
@@ -7156,6 +7190,7 @@
 /* esxVI_VmConfigFileInfo_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(VmConfigFileInfo,
 {
+    /* VmConfigFileInfo */
     ESX_VI__TEMPLATE__DISPATCH__FREE(TemplateConfigFileInfo)
 },
 {
@@ -7228,6 +7263,7 @@
 /* esxVI_VmConfigFileQuery_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(VmConfigFileQuery,
 {
+    /* VmConfigFileQuery */
     ESX_VI__TEMPLATE__DISPATCH__FREE(TemplateConfigFileQuery)
 },
 {
@@ -8140,6 +8176,7 @@
 /* esxVI_ManagedEntity_Free */
 ESX_VI__TEMPLATE__DYNAMIC_FREE(ManagedEntity,
 {
+    /* ManagedEntity */
     ESX_VI__TEMPLATE__DISPATCH__FREE(ComputeResource)
     ESX_VI__TEMPLATE__DISPATCH__FREE(Datacenter)
     ESX_VI__TEMPLATE__DISPATCH__FREE(Folder)


-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130501/a2a7e7c1/attachment-0001.sig>


More information about the libvir-list mailing list