summaryrefslogtreecommitdiff
path: root/sv.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2010-04-25 10:24:06 +0100
committerNicholas Clark <nick@ccl4.org>2010-04-25 10:24:06 +0100
commitdb93c0c46b34e8b2e37c671b7362d0fa2550f5f7 (patch)
treef37e703c765d7ba588504e95c21e9cfe2110012a /sv.h
parent8e6497b6389d5f941931c119402888bdb9fc59fc (diff)
downloadperl-db93c0c46b34e8b2e37c671b7362d0fa2550f5f7.tar.gz
Don't allocate pointer table entries from arenas.
Instead, allocate a private arena chain per pointer table, and free that chain when its pointer table is freed. Patch from RT #72598.
Diffstat (limited to 'sv.h')
-rw-r--r--sv.h10
1 files changed, 3 insertions, 7 deletions
diff --git a/sv.h b/sv.h
index fc1b475a65..815f109a63 100644
--- a/sv.h
+++ b/sv.h
@@ -76,13 +76,9 @@ typedef enum {
#endif
/* There is collusion here with sv_clear - sv_clear exits early for SVt_NULL
- and SVt_IV, so never reaches the clause at the end that uses
- sv_type_details->body_size to determine whether to call safefree(). Hence
- body_size can be set no-zero to record the size of PTEs and HEs, without
- fear of bogus frees. */
-#ifdef PERL_IN_SV_C
-#define PTE_SVSLOT SVt_IV
-#endif
+ so never reaches the clause at the end that uses sv_type_details->body_size
+ to determine whether to call safefree(). Hence body_size can be set
+ non-zero to record the size of HEs, without fear of bogus frees. */
#if defined(PERL_IN_HV_C) || defined(PERL_IN_XS_APITEST)
#define HE_SVSLOT SVt_NULL
#endif