Branch: refs/heads/blead
Home: https://github.com/Perl/perl5
Commit: 73ace1cb5078023d3dca765f0f10329b8606fc05
https://github.com/Perl/perl5/commit/73ace1cb5078023d3dca765f0f10329b8606fc05
Author: Nicholas Clark <[email protected]>
Date: 2021-09-18 (Sat, 18 Sep 2021)
Changed paths:
M hv.c
Log Message:
-----------
Call mro_method_changed_in() later in hv_delete_common()
Move the call as late as possible - just before the deleted hash key is
freed if G_DISCARD is set. In particular, move it *after* the HE is
freed.
Move the code that sets HeVAL() to &PL_sv_placeholder into the if block that
handles restricted hashes - no need to set this on normal hashes, as the
structure is about to be freed anyway.
Commit: d15612fefdeea3e8baf64a5409a5385b54db76b1
https://github.com/Perl/perl5/commit/d15612fefdeea3e8baf64a5409a5385b54db76b1
Author: Nicholas Clark <[email protected]>
Date: 2021-09-18 (Sat, 18 Sep 2021)
Changed paths:
M hv.c
Log Message:
-----------
Merge the two `d_flags & G_DISCARD` tests in hv_delete_common()
Read from HeVAL() once, and move the call to sv_2mortal() later.
Commit: d61c34dd2e02d6c4d8d1397b079542222fe6ea7e
https://github.com/Perl/perl5/commit/d61c34dd2e02d6c4d8d1397b079542222fe6ea7e
Author: Nicholas Clark <[email protected]>
Date: 2021-09-18 (Sat, 18 Sep 2021)
Changed paths:
M hv.c
Log Message:
-----------
Move all the code that deletes the hash entry into one place
Move the code that removed the entry from the hash ahead of all the code
that post-processes that entry to update method caches.
The entry is now completely deleted from the hash before any needed MRO
related logic is triggered, and the code that is specific to the chosen hash
table implementation is now untangled from the MRO code.
Compare: https://github.com/Perl/perl5/compare/6a3871b339dd...d61c34dd2e02