diff options
author | Father Chrysostomos <sprout@cpan.org> | 2011-11-24 01:09:14 -0800 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2011-11-24 01:45:32 -0800 |
commit | 804b5ed7b6140d5110359c81438a8dea7f5b0e04 (patch) | |
tree | c0fec147f59026fa9ee470d8e6e9e50a3303c436 /embed.h | |
parent | 5668452f0dfcb2591dfb8da07389b99e8823a280 (diff) | |
download | perl-804b5ed7b6140d5110359c81438a8dea7f5b0e04.tar.gz |
Make assignment over glob copies much faster
sv_force_normal is passed the SV_COW_DROP_PV flag if the scalar is
about to be written over. That flag is not currently used. We can
speed up assignment over fake GVs a lot by taking advantage of the flag.
Before and after:
$ time ./perl -e '$x = *foo, undef $x for 1..2000000'
real 0m4.264s
user 0m4.248s
sys 0m0.007s
$ time ./perl -e '$x = *foo, undef $x for 1..2000000'
real 0m1.820s
user 0m1.812s
sys 0m0.005s
Diffstat (limited to 'embed.h')
-rw-r--r-- | embed.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1511,7 +1511,7 @@ #define sv_pos_u2b_cached(a,b,c,d,e,f,g) S_sv_pos_u2b_cached(aTHX_ a,b,c,d,e,f,g) #define sv_pos_u2b_forwards S_sv_pos_u2b_forwards #define sv_pos_u2b_midway S_sv_pos_u2b_midway -#define sv_unglob(a) S_sv_unglob(aTHX_ a) +#define sv_unglob(a,b) S_sv_unglob(aTHX_ a,b) #define uiv_2buf S_uiv_2buf #define utf8_mg_len_cache_update(a,b,c) S_utf8_mg_len_cache_update(aTHX_ a,b,c) #define utf8_mg_pos_cache_update(a,b,c,d,e) S_utf8_mg_pos_cache_update(aTHX_ a,b,c,d,e) |