]> granicus.if.org Git - php/commitdiff
Add a free function to free the returned structure.
authorSterling Hughes <sterling@php.net>
Thu, 26 Apr 2001 02:12:07 +0000 (02:12 +0000)
committerSterling Hughes <sterling@php.net>
Thu, 26 Apr 2001 02:12:07 +0000 (02:12 +0000)
ext/xslt/php_xslt.h
ext/xslt/xslt.c

index 3825cb88d31ab7c699db0bb7a054f7bf54231a56..357580442525bf2c5d0a7196a976a704a81ee796 100644 (file)
@@ -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 *);
index 3e8e56cd9dece6b53b6d0d2b8553c816b732d8e5..dd406a1f5c82bdbd80989c4459b242d0ea94c4b4 100644 (file)
@@ -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,