diff options
| author | Jani Taskinen <jani@php.net> | 2007-10-05 15:00:09 +0000 |
|---|---|---|
| committer | Jani Taskinen <jani@php.net> | 2007-10-05 15:00:09 +0000 |
| commit | aa3eee1dce8c4391051a7f290057403e9c261bf4 (patch) | |
| tree | 912a1cecd18ff15a953a394a686fccad26df404a /ext/ereg/regex/regfree.c | |
| parent | 3a5817e972462ee051447af9c97b1c0611bad9b3 (diff) | |
| download | php-git-aa3eee1dce8c4391051a7f290057403e9c261bf4.tar.gz | |
MFH:- Moved the old regex functions to own extension: ereg
Diffstat (limited to 'ext/ereg/regex/regfree.c')
| -rw-r--r-- | ext/ereg/regex/regfree.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/ext/ereg/regex/regfree.c b/ext/ereg/regex/regfree.c new file mode 100644 index 0000000000..9fd618a13b --- /dev/null +++ b/ext/ereg/regex/regfree.c @@ -0,0 +1,37 @@ +#include <sys/types.h> +#include <stdio.h> +#include <stdlib.h> +#include <regex.h> + +#include "utils.h" +#include "regex2.h" + +/* + - regfree - free everything + = API_EXPORT(void) regfree(regex_t *); + */ +API_EXPORT(void) +regfree(preg) +regex_t *preg; +{ + register struct re_guts *g; + + if (preg->re_magic != MAGIC1) /* oops */ + return; /* nice to complain, but hard */ + + g = preg->re_g; + if (g == NULL || g->magic != MAGIC2) /* oops again */ + return; + preg->re_magic = 0; /* mark it invalid */ + g->magic = 0; /* mark it invalid */ + + if (g->strip != NULL) + free((char *)g->strip); + if (g->sets != NULL) + free((char *)g->sets); + if (g->setbits != NULL) + free((char *)g->setbits); + if (g->must != NULL) + free(g->must); + free((char *)g); +} |
