Annotation of embedaddon/php/ext/ereg/regex/regfree.c, revision 1.1

1.1     ! misho       1: #include <sys/types.h>
        !             2: #include <stdio.h>
        !             3: #include <stdlib.h>
        !             4: 
        !             5: #include "regex.h"
        !             6: #include "utils.h"
        !             7: #include "regex2.h"
        !             8: 
        !             9: /*
        !            10:  - regfree - free everything
        !            11:  = API_EXPORT(void) regfree(regex_t *);
        !            12:  */
        !            13: API_EXPORT(void)
        !            14: regfree(preg)
        !            15: regex_t *preg;
        !            16: {
        !            17:        register struct re_guts *g;
        !            18: 
        !            19:        if (preg->re_magic != MAGIC1)   /* oops */
        !            20:                return;                 /* nice to complain, but hard */
        !            21: 
        !            22:        g = preg->re_g;
        !            23:        if (g == NULL || g->magic != MAGIC2)    /* oops again */
        !            24:                return;
        !            25:        preg->re_magic = 0;             /* mark it invalid */
        !            26:        g->magic = 0;                   /* mark it invalid */
        !            27: 
        !            28:        if (g->strip != NULL)
        !            29:                free((char *)g->strip);
        !            30:        if (g->sets != NULL)
        !            31:                free((char *)g->sets);
        !            32:        if (g->setbits != NULL)
        !            33:                free((char *)g->setbits);
        !            34:        if (g->must != NULL)
        !            35:                free(g->must);
        !            36:        free((char *)g);
        !            37: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>