summaryrefslogtreecommitdiff
path: root/regcomp.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-03-17 14:02:51 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-03-17 14:02:51 +0000
commita193d65404eecbf16bac86932344f43dcfdbcecd (patch)
treee8aaa29360c7fe7c56632225e4eb6540d5ef2ec0 /regcomp.c
parentd9f975991d53b93e15d703c5e48ae9aea5162637 (diff)
downloadperl-a193d65404eecbf16bac86932344f43dcfdbcecd.tar.gz
[asperl] fix buggy order of free() in regcomp.c (from AS)
p4raw-id: //depot/asperl@831
Diffstat (limited to 'regcomp.c')
-rw-r--r--regcomp.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/regcomp.c b/regcomp.c
index aba1f9af62..6758ef36de 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -2551,12 +2551,13 @@ pregfree(struct regexp *r)
Safefree(r->precomp);
if (r->subbase)
Safefree(r->subbase);
- if (r->substrs)
+ if (r->substrs) {
+ if (r->anchored_substr)
+ SvREFCNT_dec(r->anchored_substr);
+ if (r->float_substr)
+ SvREFCNT_dec(r->float_substr);
Safefree(r->substrs);
- if (r->anchored_substr)
- SvREFCNT_dec(r->anchored_substr);
- if (r->float_substr)
- SvREFCNT_dec(r->float_substr);
+ }
if (r->data) {
int n = r->data->count;
while (--n >= 0) {