Package: libperl5.10
Version: 5.10.0-10
Severity: normal

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

-- 
Sebastian "tokkee" Harl +++ GnuPG-ID: 0x8501C7FC +++ http://tokkee.org/

Those who would give up Essential Liberty to purchase a little Temporary
Safety, deserve neither Liberty nor Safety.         -- Benjamin Franklin

Attachment: signature.asc
Description: Digital signature

Reply via email to