From: Rafael Garcia-Suarez Date: Fri, 11 Jan 2008 11:31:34 +0000 (+0000) Subject: Introduce macro PERL_MAX_SUB_DEPTH X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=ccb2c8b8ab146edc148e377cd6b108da77d1320b;p=p5sagit%2Fp5-mst-13.2.git Introduce macro PERL_MAX_SUB_DEPTH p4raw-id: //depot/perl@32949 --- diff --git a/perl.h b/perl.h index fa677ca..c028bba 100644 --- a/perl.h +++ b/perl.h @@ -919,6 +919,11 @@ EXTERN_C int usleep(unsigned int); #define PERL_ARENA_SIZE 4080 #endif +/* Maximum level of recursion */ +#ifndef PERL_MAX_SUB_DEPTH +#define PERL_MAX_SUB_DEPTH 100 +#endif + #endif /* PERL_CORE */ /* We no longer default to creating a new SV for GvSV. diff --git a/pp_ctl.c b/pp_ctl.c index 07f8504..564e437 100644 --- a/pp_ctl.c +++ b/pp_ctl.c @@ -2427,7 +2427,7 @@ PP(pp_goto) if (CvDEPTH(cv) < 2) SvREFCNT_inc_simple_void_NN(cv); else { - if (CvDEPTH(cv) == 100 && ckWARN(WARN_RECURSION)) + if (CvDEPTH(cv) == PERL_MAX_SUB_DEPTH && ckWARN(WARN_RECURSION)) sub_crush_depth(cv); pad_push(padlist, CvDEPTH(cv)); } diff --git a/pp_hot.c b/pp_hot.c index a24f802..e3eebe6 100644 --- a/pp_hot.c +++ b/pp_hot.c @@ -2830,7 +2830,7 @@ try_autoload: * stuff so that __WARN__ handlers can safely dounwind() * if they want to */ - if (CvDEPTH(cv) == 100 && ckWARN(WARN_RECURSION) + if (CvDEPTH(cv) == PERL_MAX_SUB_DEPTH && ckWARN(WARN_RECURSION) && !(PERLDB_SUB && cv == GvCV(PL_DBsub))) sub_crush_depth(cv); #if 0