diff options
author | Nicholas Clark <nick@ccl4.org> | 2008-01-26 17:54:29 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2008-01-26 17:54:29 +0000 |
commit | 09edbca0f5c7caf9dd4acef80d8e6275e5a95ea1 (patch) | |
tree | e0dc9093a93c63c250e26059deebe7f51400a7ca /scope.h | |
parent | dceb5f6256f15f796b36d673cf34f57b7feb1127 (diff) | |
download | perl-09edbca0f5c7caf9dd4acef80d8e6275e5a95ea1.tar.gz |
Investigation reveals that the work of restoring the iterator to the
pad is shared between POPLOOP, using itersave, and the end of scope
restore action requested by Perl_save_padsv(). In fact, the only user
of SAVEt_PADSV is pp_enteriter, and it already provides enough
information to allow it to perform the sv_2mortal() in POPLOOP.
So make it do so. Rather than creating a new routine, use the existing
routine because nothing else (at least nothing else known to Google's
codesearch) uses it. But rename it just in case something we can't see
is being naughty and using our private functions - they will get
link errors against 5.12.
All this means that itersave is now redundant. So remove it.
This makes struct context 48 bytes on ILP32 platforms with 32bit IVs,
down from 64 bytes in 5.10. 33% more context stack in the same memory.
p4raw-id: //depot/perl@33080
Diffstat (limited to 'scope.h')
-rw-r--r-- | scope.h | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -43,7 +43,7 @@ #define SAVEt_I8 32 #define SAVEt_COMPPAD 33 #define SAVEt_GENERIC_PVREF 34 -#define SAVEt_PADSV 35 +#define SAVEt_PADSV_AND_MORTALIZE 35 #define SAVEt_MORTALIZESV 36 #define SAVEt_SHARED_PVREF 37 #define SAVEt_BOOL 38 @@ -126,7 +126,7 @@ Closing bracket on a callback. See C<ENTER> and L<perlcall>. #define SAVESPTR(s) save_sptr((SV**)&(s)) #define SAVEPPTR(s) save_pptr((char**)&(s)) #define SAVEVPTR(s) save_vptr((void*)&(s)) -#define SAVEPADSV(s) save_padsv(s) +#define SAVEPADSVANDMORTALIZE(s) save_padsv_and_mortalize(s) #define SAVEFREESV(s) save_freesv((SV*)(s)) #define SAVEMORTALIZESV(s) save_mortalizesv((SV*)(s)) #define SAVEFREEOP(o) save_freeop((OP*)(o)) |