This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
sv.c:sv_reset: Remove %ENV handling; fix for VMS
authorFather Chrysostomos <sprout@cpan.org>
Sun, 11 Aug 2013 19:51:10 +0000 (12:51 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 11 Aug 2013 19:51:10 +0000 (12:51 -0700)
commite926b44d3d2f98879b732492ad9016c884f8e1f1
treebd1afca367b1627d8c81eb30e6694073f88b4002
parentc165afe3a0860f29e8ff58e26a4b1d2a6426e193
sv.c:sv_reset: Remove %ENV handling; fix for VMS

The special env handling (calling my_clearenv) in sv_reset is com-
pletely unnecessary, because
 • sv_reset calls hv_clear
 • hv_clear calls mg_clear for magical arrays
 • mg_clear calls magic_set_all_env for %ENV
 • magic_set_all_env calls my_clearenv
so it gets called twice (confirmed with gdb breakpoints).

The VMS handling in sv_reset was wrong, because it was not even inside
the if(gv==PL_envgv) condition.  It was croaking for any hash, not
just %ENV (the fault of commit b0269e46d).  (This was based on code
inspection; not actually tested.)

Handling %ENV specially in sv_reset has been unnecessary since ‘clear’
magic was added to %ENV in commit fb73857aa (inseparable changes from
patch to perl 5.004_04).
sv.c