summaryrefslogtreecommitdiff
path: root/perl.c
diff options
context:
space:
mode:
authorRadu Greab <radu@netsoft.ro>2003-08-05 23:57:15 +0300
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2003-10-21 21:21:56 +0000
commitbf9cdc68d248e456c55258025f0d0724ca63226d (patch)
treedf180b40a00a02d3bc0a3ff6eb6e68872cdf6676 /perl.c
parent69fc43e8cc1ab20ea33528914d94e54ac04360ed (diff)
downloadperl-bf9cdc68d248e456c55258025f0d0724ca63226d.tar.gz
embedding perl
Message-Id: <20030805.205715.113441323.radu@yx.primIT.ro> p4raw-id: //depot/perl@21514
Diffstat (limited to 'perl.c')
-rw-r--r--perl.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/perl.c b/perl.c
index 4a40aa8417..f1718456c7 100644
--- a/perl.c
+++ b/perl.c
@@ -381,6 +381,7 @@ perl_destruct(pTHXx)
* Non-referenced objects are on their own.
*/
sv_clean_objs();
+ PL_sv_objcount = 0;
}
/* unhook hooks which will soon be, or use, destroyed data */
@@ -506,6 +507,8 @@ perl_destruct(pTHXx)
PL_e_script = Nullsv;
}
+ PL_perldb = 0;
+
/* magical thingies */
SvREFCNT_dec(PL_ofs_sv); /* $, */
@@ -565,6 +568,15 @@ perl_destruct(pTHXx)
PL_stderrgv = Nullgv;
PL_last_in_gv = Nullgv;
PL_replgv = Nullgv;
+ PL_DBgv = Nullgv;
+ PL_DBline = Nullgv;
+ PL_DBsub = Nullgv;
+ PL_DBsingle = Nullsv;
+ PL_DBtrace = Nullsv;
+ PL_DBsignal = Nullsv;
+ PL_DBassertion = Nullsv;
+ PL_DBcv = Nullcv;
+ PL_dbargs = Nullav;
PL_debstash = Nullhv;
/* reset so print() ends up where we expect */
@@ -599,6 +611,7 @@ perl_destruct(pTHXx)
Safefree(PL_numeric_name);
PL_numeric_name = Nullch;
SvREFCNT_dec(PL_numeric_radix_sv);
+ PL_numeric_radix_sv = Nullsv;
#endif
/* clear utf8 character classes */
@@ -737,6 +750,7 @@ perl_destruct(pTHXx)
#ifdef USE_ITHREADS
/* free the pointer table used for cloning */
ptr_table_free(PL_ptr_table);
+ PL_ptr_table = (PTR_TBL_t*)NULL;
#endif
/* free special SVs */
@@ -780,6 +794,7 @@ perl_destruct(pTHXx)
}
}
#endif
+ PL_sv_count = 0;
#if defined(PERLIO_LAYERS)
@@ -798,18 +813,31 @@ perl_destruct(pTHXx)
SvREADONLY_off(&PL_sv_placeholder);
Safefree(PL_origfilename);
+ PL_origfilename = Nullch;
Safefree(PL_reg_start_tmp);
+ PL_reg_start_tmp = (char**)NULL;
+ PL_reg_start_tmpl = 0;
if (PL_reg_curpm)
Safefree(PL_reg_curpm);
Safefree(PL_reg_poscache);
free_tied_hv_pool();
Safefree(PL_op_mask);
Safefree(PL_psig_ptr);
+ PL_psig_ptr = (SV**)NULL;
Safefree(PL_psig_name);
+ PL_psig_name = (SV**)NULL;
Safefree(PL_bitcount);
+ PL_bitcount = Nullch;
Safefree(PL_psig_pend);
+ PL_psig_pend = (int*)NULL;
+ PL_formfeed = Nullsv;
+ Safefree(PL_ofmt);
+ PL_ofmt = Nullch;
nuke_stacks();
+ PL_tainting = FALSE;
+ PL_taint_warn = FALSE;
PL_hints = 0; /* Reset hints. Should hints be per-interpreter ? */
+ PL_debug = 0;
DEBUG_P(debprofdump());
@@ -3516,7 +3544,7 @@ Perl_init_debugger(pTHX)
sv_setiv(PL_DBtrace, 0);
PL_DBsignal = GvSV((gv_fetchpv("DB::signal", GV_ADDMULTI, SVt_PV)));
sv_setiv(PL_DBsignal, 0);
- PL_DBassertion = GvSV((gv_fetchpv("assertion", GV_ADDMULTI, SVt_PV)));
+ PL_DBassertion = GvSV((gv_fetchpv("DB::assertion", GV_ADDMULTI, SVt_PV)));
sv_setiv(PL_DBassertion, 0);
PL_curstash = ostash;
}