diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 2000-03-11 18:11:22 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 2000-03-11 18:11:22 +0000 |
commit | 1d76a5c36fe33e7755afd0f03faf19826beda303 (patch) | |
tree | b465978813ba48e23662c45b02420d15e7ae2de7 /cop.h | |
parent | 6b7b8867bcd9dae4737a0f8210ca9785c63634b8 (diff) | |
download | perl-1d76a5c36fe33e7755afd0f03faf19826beda303.tar.gz |
change#3511 was not defensive enough about try blocks, causing
bogus attempts to free closures, and thence, segfaults
p4raw-link: @3511 on //depot/perl: 067f92a0e46641b4b3e89afcde43bf134105f7b7
p4raw-id: //depot/perl@5658
Diffstat (limited to 'cop.h')
-rw-r--r-- | cop.h | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -361,6 +361,7 @@ struct context { /* private flags for CXt_EVAL */ #define CXp_REAL 0x00000100 /* truly eval'', not a lookalike */ +#define CXp_TRYBLOCK 0x00000200 /* eval{}, not eval'' or similar */ #ifdef USE_ITHREADS /* private flags for CXt_LOOP */ @@ -374,6 +375,8 @@ struct context { #define CxTYPE(c) ((c)->cx_type & CXTYPEMASK) #define CxREALEVAL(c) (((c)->cx_type & (CXt_EVAL|CXp_REAL)) \ == (CXt_EVAL|CXp_REAL)) +#define CxTRYBLOCK(c) (((c)->cx_type & (CXt_EVAL|CXp_TRYBLOCK)) \ + == (CXt_EVAL|CXp_TRYBLOCK)) #define CXINC (cxstack_ix < cxstack_max ? ++cxstack_ix : (cxstack_ix = cxinc())) |