2017-04-05 0:26 GMT+02:00 Dawid Zamirski <dzamirski@xxxxxxxxx>: > This enables this function to handle "v1" and "v2" WMI requests. > > Since this commit and the ones that follow should be squashed on > previous one: > * rename hypervObjectUnified -> hypervObject as we've already broken > compilation here so there's no point in keeping those in parallel > anymore. > * do not mark hypervGetWmiClassInfo as unused > --- > src/hyperv/hyperv_wmi.c | 41 ++++++++++++++++++++++------------------- > src/hyperv/hyperv_wmi.h | 17 ++++------------- > 2 files changed, 26 insertions(+), 32 deletions(-) > > diff --git a/src/hyperv/hyperv_wmi.c b/src/hyperv/hyperv_wmi.c > index 069bcc9..eab6192 100644 > --- a/src/hyperv/hyperv_wmi.c > +++ b/src/hyperv/hyperv_wmi.c > @@ -45,7 +45,7 @@ > #define VIR_FROM_THIS VIR_FROM_HYPERV > > > -static int ATTRIBUTE_UNUSED > +static int > hypervGetWmiClassInfo(hypervPrivate *priv, hypervWmiClassInfoListPtr list, > hypervWmiClassInfoPtr *info) > { > @@ -143,14 +143,14 @@ hypervVerifyResponse(WsManClient *client, WsXmlDocH response, > > /* This function guarantees that query is freed, even on failure */ > int > -hypervEnumAndPull(hypervPrivate *priv, virBufferPtr query, const char *root, > - XmlSerializerInfo *serializerInfo, const char *resourceUri, > - const char *className, hypervObject **list) > +hypervEnumAndPull(hypervPrivate *priv, hypervWqlQueryPtr wqlQuery, > + hypervObject **list) > { > int result = -1; > WsSerializerContextH serializerContext; > client_opt_t *options = NULL; > char *query_string = NULL; > + hypervWmiClassInfoPtr wmiInfo = NULL; > filter_t *filter = NULL; > WsXmlDocH response = NULL; > char *enumContext = NULL; > @@ -160,18 +160,20 @@ hypervEnumAndPull(hypervPrivate *priv, virBufferPtr query, const char *root, > XML_TYPE_PTR data = NULL; > hypervObject *object; > > - if (virBufferCheckError(query) < 0) { > - virBufferFreeAndReset(query); > + if (virBufferCheckError(&wqlQuery->query) < 0) { > + virBufferFreeAndReset(&wqlQuery->query); > return -1; > } > - query_string = virBufferContentAndReset(query); > + query_string = virBufferContentAndReset(&wqlQuery->query); > > if (list == NULL || *list != NULL) { > virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument")); > - VIR_FREE(query_string); > return -1; > } This VIR_FREE needs to stay. I kept it before pushing this patch. -- Matthias Bolte http://photron.blogspot.com -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list