aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/xml2/xslt_proc.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/contrib/xml2/xslt_proc.c b/contrib/xml2/xslt_proc.c
index 6603526392d..5eb72b4a740 100644
--- a/contrib/xml2/xslt_proc.c
+++ b/contrib/xml2/xslt_proc.c
@@ -140,10 +140,10 @@ xslt_process(PG_FUNCTION_ARGS)
if (xslt_sec_prefs_error)
{
+ xsltFreeTransformContext(xslt_ctxt);
+ xsltFreeSecurityPrefs(xslt_sec_prefs);
xsltFreeStylesheet(stylesheet);
xmlFreeDoc(doctree);
- xsltFreeSecurityPrefs(xslt_sec_prefs);
- xsltFreeTransformContext(xslt_ctxt);
xsltCleanupGlobals();
xml_ereport(ERROR, ERRCODE_EXTERNAL_ROUTINE_EXCEPTION,
"could not set libxslt security preferences");
@@ -154,10 +154,10 @@ xslt_process(PG_FUNCTION_ARGS)
if (restree == NULL)
{
+ xsltFreeTransformContext(xslt_ctxt);
+ xsltFreeSecurityPrefs(xslt_sec_prefs);
xsltFreeStylesheet(stylesheet);
xmlFreeDoc(doctree);
- xsltFreeSecurityPrefs(xslt_sec_prefs);
- xsltFreeTransformContext(xslt_ctxt);
xsltCleanupGlobals();
xml_ereport(ERROR, ERRCODE_EXTERNAL_ROUTINE_EXCEPTION,
"failed to apply stylesheet");
@@ -165,11 +165,11 @@ xslt_process(PG_FUNCTION_ARGS)
resstat = xsltSaveResultToString(&resstr, &reslen, restree, stylesheet);
- xsltFreeStylesheet(stylesheet);
xmlFreeDoc(restree);
- xmlFreeDoc(doctree);
- xsltFreeSecurityPrefs(xslt_sec_prefs);
xsltFreeTransformContext(xslt_ctxt);
+ xsltFreeSecurityPrefs(xslt_sec_prefs);
+ xsltFreeStylesheet(stylesheet);
+ xmlFreeDoc(doctree);
xsltCleanupGlobals();