Always call the free function of the base type. The base type
function then dynamically dispatches the call to the free function
for the actual type.
---
src/esx/esx_vi_generator.py | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/esx/esx_vi_generator.py b/src/esx/esx_vi_generator.py
index 82bc9b6..44c3493 100755
--- a/src/esx/esx_vi_generator.py
+++ b/src/esx/esx_vi_generator.py
@@ -684,7 +684,10 @@ class Object:
source += "{\n"
if self.features & Object.FEATURE__LIST:
- source += " esxVI_%s_Free(&item->_next);\n\n" %
self.name
+ if self.extends is not None:
+ source += " esxVI_%s_Free((esxVI_%s
**)&item->_next);\n\n" % (self.extends, self.extends)
+ else:
+ source += " esxVI_%s_Free(&item->_next);\n\n" %
self.name
source += self.generate_free_code()
@@ -701,7 +704,10 @@ class Object:
source += "{\n"
if self.features & Object.FEATURE__LIST:
- source += " esxVI_%s_Free(&item->_next);\n\n" %
self.name
+ if self.extends is not None:
+ source += " esxVI_%s_Free((esxVI_%s
**)&item->_next);\n\n" % (self.extends, self.extends)
+ else:
+ source += " esxVI_%s_Free(&item->_next);\n\n" %
self.name
source += self.generate_free_code()
@@ -1126,11 +1132,11 @@ additional_object_features = { "DatastoreInfo"
: Object.FEATURE__AN
"FileInfo" :
Object.FEATURE__DYNAMIC_CAST,
"FileQuery" :
Object.FEATURE__DYNAMIC_CAST,
"HostCpuIdInfo" :
Object.FEATURE__ANY_TYPE | Object.FEATURE__LIST,
- "HostDatastoreBrowserSearchResults" :
Object.FEATURE__ANY_TYPE,
+ "HostDatastoreBrowserSearchResults" :
Object.FEATURE__LIST | Object.FEATURE__ANY_TYPE,
"ManagedObjectReference" :
Object.FEATURE__ANY_TYPE,
"ObjectContent" :
Object.FEATURE__DEEP_COPY | Object.FEATURE__LIST,
"PerfCounterInfo" :
Object.FEATURE__LIST,
- "PerfEntityMetric" :
Object.FEATURE__LIST | Object.FEATURE__DYNAMIC_CAST,
+ "PerfEntityMetric" :
Object.FEATURE__LIST | Object.FEATURE__DYNAMIC_CAST,
"PerfQuerySpec" :
Object.FEATURE__LIST,
"PerfMetricIntSeries" :
Object.FEATURE__DYNAMIC_CAST,
"PropertyFilterSpec" :
Object.FEATURE__LIST,
--
1.7.0.4
Show replies by date
On 07/29/2010 04:29 AM, Matthias Bolte wrote:
Always call the free function of the base type. The base type
function then dynamically dispatches the call to the free function
for the actual type.
---
src/esx/esx_vi_generator.py | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
ACK.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org
2010/7/29 Eric Blake <eblake(a)redhat.com>:
On 07/29/2010 04:29 AM, Matthias Bolte wrote:
> Always call the free function of the base type. The base type
> function then dynamically dispatches the call to the free function
> for the actual type.
> ---
> src/esx/esx_vi_generator.py | 14 ++++++++++----
> 1 files changed, 10 insertions(+), 4 deletions(-)
ACK.
Thanks, pushed.
Matthias