From: Sterling Hughes Date: Thu, 26 Apr 2001 02:12:07 +0000 (+0000) Subject: Add a free function to free the returned structure. X-Git-Tag: php-4.0.6RC1~304 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9c8780c809755736b854ce4d57e985601bf5ca15;p=php Add a free function to free the returned structure. --- 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,