summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSterling Hughes <sterling@php.net>2001-04-26 02:12:07 +0000
committerSterling Hughes <sterling@php.net>2001-04-26 02:12:07 +0000
commit9c8780c809755736b854ce4d57e985601bf5ca15 (patch)
treef4af49d669f707665aae7b202d7b1b3cbb802223
parentad138d77dbcf1950926b3e20bc7622c2dc666e55 (diff)
downloadphp-git-9c8780c809755736b854ce4d57e985601bf5ca15.tar.gz
Add a free function to free the returned structure.
-rw-r--r--ext/xslt/php_xslt.h1
-rw-r--r--ext/xslt/xslt.c28
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,