summaryrefslogtreecommitdiff
path: root/contrib/xml2/xslt_proc.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/xml2/xslt_proc.c')
-rw-r--r--contrib/xml2/xslt_proc.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/contrib/xml2/xslt_proc.c b/contrib/xml2/xslt_proc.c
index f15fabcb3c5..f4981924260 100644
--- a/contrib/xml2/xslt_proc.c
+++ b/contrib/xml2/xslt_proc.c
@@ -39,8 +39,9 @@ PG_FUNCTION_INFO_V1(xslt_process);
Datum
xslt_process(PG_FUNCTION_ARGS)
{
-
-
+ text *doct = PG_GETARG_TEXT_P(0);
+ text *ssheet = PG_GETARG_TEXT_P(1);
+ text *paramstr;
const char *params[MAXPARAMS + 1]; /* +1 for the terminator */
xsltStylesheetPtr stylesheet = NULL;
xmlDocPtr doctree;
@@ -50,12 +51,6 @@ xslt_process(PG_FUNCTION_ARGS)
int resstat;
int reslen;
- text *doct = PG_GETARG_TEXT_P(0);
- text *ssheet = PG_GETARG_TEXT_P(1);
- text *paramstr;
- text *tres;
-
-
if (fcinfo->nargs == 3)
{
paramstr = PG_GETARG_TEXT_P(2);
@@ -124,11 +119,7 @@ xslt_process(PG_FUNCTION_ARGS)
if (resstat < 0)
PG_RETURN_NULL();
- tres = palloc(reslen + VARHDRSZ);
- memcpy(VARDATA(tres), resstr, reslen);
- SET_VARSIZE(tres, reslen + VARHDRSZ);
-
- PG_RETURN_TEXT_P(tres);
+ PG_RETURN_TEXT_P(cstring_to_text_with_len(resstr, reslen));
}