This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Clean: Actually use HvUSEDKEYS() instead of HvKEYS()
authorMichael Witten <mfwitten@gmail.com>
Mon, 14 Mar 2011 06:57:43 +0000 (06:57 +0000)
committerFather Chrysostomos <sprout@cpan.org>
Wed, 18 May 2011 23:35:16 +0000 (16:35 -0700)
commit1b95d04f713d9c56e4957326f9f6b0481216a00c
tree9f57b4048cfba9c60f2f933d4e9305cc149dfa80
parentb9f41ca854adae9c928d96cb3c1612b18866516e
Clean: Actually use HvUSEDKEYS() instead of HvKEYS()

This:

  commit 8aacddc1ea3837f8f1a911d90c644451fc7cfc86
  Author: Nick Ing-Simmons <nik@tiuk.ti.com>
  Date:   Tue Dec 18 15:55:22 2001 +0000

      Tidied version of Jeffrey Friedl's <jfriedl@yahoo.com> restricted hashes
       - added delete of READONLY value inhibit & test for same
       - re-tabbed

      p4raw-id: //depot/perlio@13760

essentially deprecated HvKEYS() in favor of HvUSEDKEYS(); this is
explained in line 144 (now 313) of file `hv.h':

  /*
   * HvKEYS gets the number of keys that actually exist(), and is provided
   * for backwards compatibility with old XS code. The core uses HvUSEDKEYS
   * (keys, excluding placeholdes) and HvTOTALKEYS (including placeholders)
   */

This commit simply puts that into practice, and is equivalent to running
the following (at least with a35ef416833511da752c4b5b836b7a8915712aab
checked out):

  git grep -l HvKEYS | sed /hv.h/d | xargs sed -i s/HvKEYS/HvUSEDKEYS/

Notice that HvKEYS is currently just an alias for HvUSEDKEYS:

  $ git show a35ef416833511da752c4b5b836b7a8915712aab:hv.h | sed -n 318p
  #define HvKEYS(hv) HvUSEDKEYS(hv)

According to `make tests':

  All tests successful.
dist/Storable/Storable.xs
dist/threads-shared/shared.xs
doop.c
dump.c
ext/B/B.xs
hv.c
mg.c
mro.c
pp.c
pp_hot.c
t/benchmark/rt26188-speed-up-keys-on-empty-hash.t