diff options
author | Sterling Hughes <sterling@php.net> | 2001-04-26 02:12:07 +0000 |
---|---|---|
committer | Sterling Hughes <sterling@php.net> | 2001-04-26 02:12:07 +0000 |
commit | 9c8780c809755736b854ce4d57e985601bf5ca15 (patch) | |
tree | f4af49d669f707665aae7b202d7b1b3cbb802223 | |
parent | ad138d77dbcf1950926b3e20bc7622c2dc666e55 (diff) | |
download | php-git-9c8780c809755736b854ce4d57e985601bf5ca15.tar.gz |
Add a free function to free the returned structure.
-rw-r--r-- | ext/xslt/php_xslt.h | 1 | ||||
-rw-r--r-- | 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, |