From 9c8780c809755736b854ce4d57e985601bf5ca15 Mon Sep 17 00:00:00 2001 From: Sterling Hughes Date: Thu, 26 Apr 2001 02:12:07 +0000 Subject: [PATCH] Add a free function to free the returned structure. --- ext/xslt/php_xslt.h | 1 + ext/xslt/xslt.c | 28 ++++++++++++++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/ext/xslt/php_xslt.h b/ext/xslt/php_xslt.h index 3825cb88d3..3575804425 100644 --- a/ext/xslt/php_xslt.h +++ b/ext/xslt/php_xslt.h @@ -46,6 +46,7 @@ typedef struct { } xslt_args; extern xslt_args *parse_xslt_arguments(char *, char *, char *, char **); +extern void free_xslt_arguments(xslt_args *to_free); extern void assign_xslt_handler(struct xslt_function **, zval **); extern void free_xslt_handler(struct xslt_function *); diff --git a/ext/xslt/xslt.c b/ext/xslt/xslt.c index 3e8e56cd9d..dd406a1f5c 100644 --- a/ext/xslt/xslt.c +++ b/ext/xslt/xslt.c @@ -67,10 +67,10 @@ static char *find_xslt_argument(const char **argv, const char *key) /* {{{ parse_xslt_arguments() Parse an XSLT argument buffer */ -extern xslt_args *parse_xslt_arguments(char *xml, - char *xsl, - char *result, - char **argv) +extern xslt_args *parse_xslt_arguments(char *xml, + char *xsl, + char *result, + char **argv) { xslt_args *return_value; @@ -119,6 +119,26 @@ extern xslt_args *parse_xslt_arguments(char *xml, } /* }}} */ +/* {{{ free_xslt_arguments() + Free's an XSLT argument list returned from parse_xslt_arguments() */ +extern void free_xslt_arguments(xslt_args *to_free) +{ + if (to_free->xml.ptr) { + efree(to_free->xml.ptr); + } + + if (to_free->xsl.ptr) { + efree(to_free->xsl.ptr); + } + + if (to_free->result.ptr) { + efree(to_free->result.ptr); + } + + efree(to_free); +} +/* }}} */ + /* {{{ call_xslt_function() Call an XSLT handler */ extern void call_xslt_function(char *name, -- 2.50.1