diff options
author | Nicholas Clark <nick@ccl4.org> | 2010-04-25 10:24:06 +0100 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2010-04-25 10:24:06 +0100 |
commit | db93c0c46b34e8b2e37c671b7362d0fa2550f5f7 (patch) | |
tree | f37e703c765d7ba588504e95c21e9cfe2110012a /sv.h | |
parent | 8e6497b6389d5f941931c119402888bdb9fc59fc (diff) | |
download | perl-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.h | 10 |
1 files changed, 3 insertions, 7 deletions
@@ -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 |