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 /perl.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 'perl.h')
-rw-r--r-- | perl.h | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -3453,9 +3453,6 @@ typedef struct magic_state MGS; /* struct magic_state defined in mg.c */ struct scan_data_t; /* Used in S_* functions in regcomp.c */ struct regnode_charclass_class; /* Used in S_* functions in regcomp.c */ -/* Keep next first in this structure, because sv_free_arenas take - advantage of this to share code between the pte arenas and the SV - body arenas */ struct ptr_tbl_ent { struct ptr_tbl_ent* next; const void* oldval; @@ -3466,6 +3463,9 @@ struct ptr_tbl { struct ptr_tbl_ent** tbl_ary; UV tbl_max; UV tbl_items; + struct ptr_tbl_arena *tbl_arena; + struct ptr_tbl_ent *tbl_arena_next; + struct ptr_tbl_ent *tbl_arena_end; }; #if defined(iAPX286) || defined(M_I286) || defined(I80286) |