From 8657c7a12f2acb79edb0393d0baeb11ea23bdbc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Tue, 7 Jun 2016 18:57:29 +0200 Subject: [PATCH] Introduce virXMLValidatorFree Split out the code cleaning up the validator. --- src/libvirt_private.syms | 1 + src/util/virxml.c | 12 +++++++++++- src/util/virxml.h | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index f197f55d35..53a7a9780d 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2565,6 +2565,7 @@ virXMLPickShellSafeComment; virXMLPropString; virXMLSaveFile; virXMLValidateAgainstSchema; +virXMLValidatorFree; virXPathBoolean; virXPathInt; virXPathLong; diff --git a/src/util/virxml.c b/src/util/virxml.c index 7842273972..49aed7d777 100644 --- a/src/util/virxml.c +++ b/src/util/virxml.c @@ -1161,11 +1161,21 @@ virXMLValidateAgainstSchema(const char *schemafile, ret = 0; cleanup: + virXMLValidatorFree(validator); + return ret; +} + + +void +virXMLValidatorFree(virXMLValidatorPtr validator) +{ + if (!validator) + return; + VIR_FREE(validator->schemafile); virBufferFreeAndReset(&validator->buf); xmlRelaxNGFreeParserCtxt(validator->rngParser); xmlRelaxNGFreeValidCtxt(validator->rngValid); xmlRelaxNGFree(validator->rng); VIR_FREE(validator); - return ret; } diff --git a/src/util/virxml.h b/src/util/virxml.h index 9803be5360..21ca578691 100644 --- a/src/util/virxml.h +++ b/src/util/virxml.h @@ -192,5 +192,7 @@ typedef virXMLValidator *virXMLValidatorPtr; int virXMLValidateAgainstSchema(const char *schemafile, xmlDocPtr xml); +void +virXMLValidatorFree(virXMLValidatorPtr validator); #endif /* __VIR_XML_H__ */