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,   | 
