summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2005-06-18 16:33:41 +0000
committerNicholas Clark <nick@ccl4.org>2005-06-18 16:33:41 +0000
commit6f51351dc430b1cdbea64b49a24a0fc68a028a36 (patch)
treea2e7414a67d2bd312e05b16f3fe1c792adfe925e /sv.c
parent8b4f5e176a26235e99161210aebb1bc0073474cd (diff)
downloadperl-6f51351dc430b1cdbea64b49a24a0fc68a028a36.tar.gz
Squeeze a little more savings by moving pte and he arenas into the
common arena free code. p4raw-id: //depot/perl@24895
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c32
1 files changed, 8 insertions, 24 deletions
diff --git a/sv.c b/sv.c
index 174f893aca..56e1d8e3e8 100644
--- a/sv.c
+++ b/sv.c
@@ -537,6 +537,10 @@ Perl_sv_free_arenas(pTHX)
(void**) &PL_xpvgv_arenaroot,
(void**) &PL_xpvlv_arenaroot,
(void**) &PL_xpvbm_arenaroot,
+ (void**) &PL_he_arenaroot,
+#if defined(USE_ITHREADS)
+ (void**) &PL_pte_arenaroot,
+#endif
(void**) 0
};
void **roots[] = {
@@ -551,6 +555,10 @@ Perl_sv_free_arenas(pTHX)
(void**) &PL_xpvgv_root,
(void**) &PL_xpvlv_root,
(void**) &PL_xpvbm_root,
+ (void**) &PL_he_root,
+#if defined(USE_ITHREADS)
+ (void**) &PL_pte_root,
+#endif
(void**) 0
};
@@ -579,30 +587,6 @@ Perl_sv_free_arenas(pTHX)
*roots[i] = 0;
}
- {
- HE *he;
- HE *he_next;
- for (he = PL_he_arenaroot; he; he = he_next) {
- he_next = HeNEXT(he);
- Safefree(he);
- }
- }
- PL_he_arenaroot = 0;
- PL_he_root = 0;
-
-#if defined(USE_ITHREADS)
- {
- struct ptr_tbl_ent *pte;
- struct ptr_tbl_ent *pte_next;
- for (pte = PL_pte_arenaroot; pte; pte = pte_next) {
- pte_next = pte->next;
- Safefree(pte);
- }
- }
- PL_pte_arenaroot = 0;
- PL_pte_root = 0;
-#endif
-
if (PL_nice_chunk)
Safefree(PL_nice_chunk);
PL_nice_chunk = Nullch;