typedef = "typedef struct _%s %s;\n" % (self.name, self.name)
typedef += "typedef struct _%s_Data %s_Data;\n" % (self.name, self.name)
+ typedef += "G_DEFINE_AUTOPTR_CLEANUP_FUNC(%s, hypervFreeObject);\n" % self.name
+ typedef += "\n"
return typedef
classes_header.write(notice)
classes_source.write(notice)
+ classes_typedef.write("void hypervFreeObject(void *object);\n\n\n")
+
names = sorted(wmi_classes_by_name.keys())
for name in names:
void
-hypervFreeObject(hypervObject *object)
+hypervFreeObject(void *object)
{
hypervObject *next;
WsSerializerContextH serializerContext;
if (object == NULL)
return;
- serializerContext = wsmc_get_serialization_context(object->priv->client);
+ serializerContext = wsmc_get_serialization_context(((hypervObject *)object)->priv->client);
while (object != NULL) {
- next = object->next;
+ next = ((hypervObject *)object)->next;
- object->priv = NULL;
+ ((hypervObject *)object)->priv = NULL;
- if (ws_serializer_free_mem(serializerContext, object->data,
- object->info->serializerInfo) < 0) {
+ if (ws_serializer_free_mem(serializerContext, ((hypervObject *)object)->data,
+ ((hypervObject *)object)->info->serializerInfo) < 0) {
VIR_ERROR(_("Could not free deserialized data"));
}
int hypervEnumAndPull(hypervPrivate *priv, hypervWqlQueryPtr wqlQuery,
hypervObject **list);
-void hypervFreeObject(hypervObject *object);
+void hypervFreeObject(void *object);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(hypervObject, hypervFreeObject);