Hi,
I noticed the following changes in av.c between Perl 5.8 and 5.10:
In Perl 5.8, Perl_av_clear(), Perl_av_undef() and possibly other API
functions simply returned without doing anything, if the AV * argument
was NULL:
if (!av)
return;
In Perl 5.10, this has been changed to an assertion:
assert(av);
Now, this imho is a regression for the following reasons:
- Old code which relies on those functions handling NULL pointers
safely is now broken. That code will now either trigger the assertion
or simply segfault (if NDEBUG was defined when building Perl).
- Imho, library functions should never cause a program to abort because
of invalid arguments (at least, in cases which are equally frequent
as this one).
I would really like to see those changes reverted. I did not use
severity "wishlist" because this has a (minor) impact on the usability
of libperl.
TIA,
Sebastian