YAP
7.1.0
regfree.c
1
/*-
2
* Copyright (c) 1992, 1993, 1994 Henry Spencer.
3
* Copyright (c) 1992, 1993, 1994
4
* The Regents of the University of California. All rights reserved.
5
*
6
* This code is derived from software contributed to Berkeley by
7
* Henry Spencer.
8
*
9
* Redistribution and use in source and binary forms, with or without
10
* modification, are permitted provided that the following conditions
11
* are met:
12
* 1. Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* 2. Redistributions in binary form must reproduce the above copyright
15
* notice, this list of conditions and the following disclaimer in the
16
* documentation and/or other materials provided with the distribution.
17
* 3. All advertising materials mentioning features or use of this software
18
* must display the following acknowledgement:
19
* This product includes software developed by the University of
20
* California, Berkeley and its contributors.
21
* 4. Neither the name of the University nor the names of its contributors
22
* may be used to endorse or promote products derived from this software
23
* without specific prior written permission.
24
*
25
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
26
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
29
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35
* SUCH DAMAGE.
36
*
37
* @(#)regfree.c 8.3 (Berkeley) 3/20/94
38
*/
39
40
#if defined(LIBC_SCCS) && !defined(lint)
41
static
char
sccsid[] =
"@(#)regfree.c 8.3 (Berkeley) 3/20/94"
;
42
#endif
/* LIBC_SCCS and not lint */
43
44
#include <sys/types.h>
45
#include <stdio.h>
46
#include <stdlib.h>
47
#include "yapregex.h"
48
49
#include "utils.h"
50
#include "regex2.h"
51
52
/*
53
- regfree - free everything
54
= extern void regfree(regex_t *);
55
*/
56
void
57
yap_regfree(preg)
58
regex_t
*preg;
59
{
60
register
struct
re_guts
*g;
61
62
if
(preg->re_magic != MAGIC1)
/* oops */
63
return
;
/* nice to complain, but hard */
64
65
g = preg->re_g;
66
if
(g == NULL || g->magic != MAGIC2)
/* oops again */
67
return
;
68
preg->re_magic = 0;
/* mark it invalid */
69
g->magic = 0;
/* mark it invalid */
70
71
if
(g->strip != NULL)
72
free((
char
*)g->strip);
73
if
(g->sets != NULL)
74
free((
char
*)g->sets);
75
if
(g->setbits != NULL)
76
free((
char
*)g->setbits);
77
if
(g->must != NULL)
78
free(g->must);
79
free((
char
*)g);
80
}
re_guts
Definition:
regex2.h:143
regex_t
Definition:
yapregex.h:48
library
regex
regfree.c
Generated by
1.9.3