This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
remove -DH (DEBUG_H) misfeature
authorDavid Mitchell <davem@iabyn.com>
Mon, 5 Jun 2017 15:45:32 +0000 (16:45 +0100)
committerDavid Mitchell <davem@iabyn.com>
Mon, 5 Jun 2017 15:45:32 +0000 (16:45 +0100)
RT# 129300

This hash-dumping debugging flag corrupted hash values and has probably
not been used by anyone in 20 years.

doop.c
perl.h
pod/perlrun.pod

diff --git a/doop.c b/doop.c
index 0a546cc..1b71402 100644 (file)
--- a/doop.c
+++ b/doop.c
@@ -1335,12 +1335,8 @@ Perl_do_kv(pTHX)
            XPUSHs(sv);
        }
        if (dovalues) {
-           SV *tmpstr = hv_iterval(keys,entry);
-           DEBUG_H(Perl_sv_setpvf(aTHX_ tmpstr, "%lu%%%d=%lu",
-                           (unsigned long)HeHASH(entry),
-                           (int)HvMAX(keys)+1,
-                           (unsigned long)(HeHASH(entry) & HvMAX(keys))));
-           XPUSHs(tmpstr);
+           SV *const sv = hv_iterval(keys,entry);
+           XPUSHs(sv);
        }
     }
     RETURN;
diff --git a/perl.h b/perl.h
index ee98d40..6fd8013 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -4171,7 +4171,7 @@ Gid_t getegid (void);
 #define DEBUG_u_FLAG           0x00000800 /*   2048 */
 /* U is reserved for Unofficial, exploratory hacking */
 #define DEBUG_U_FLAG           0x00001000 /*   4096 */
-#define DEBUG_H_FLAG           0x00002000 /*   8192 */
+/* spare                                        8192 */
 #define DEBUG_X_FLAG           0x00004000 /*  16384 */
 #define DEBUG_D_FLAG           0x00008000 /*  32768 */
 #define DEBUG_S_FLAG           0x00010000 /*  65536 */
@@ -4204,7 +4204,6 @@ Gid_t getegid (void);
 #  define DEBUG_x_TEST_ UNLIKELY(PL_debug & DEBUG_x_FLAG)
 #  define DEBUG_u_TEST_ UNLIKELY(PL_debug & DEBUG_u_FLAG)
 #  define DEBUG_U_TEST_ UNLIKELY(PL_debug & DEBUG_U_FLAG)
-#  define DEBUG_H_TEST_ UNLIKELY(PL_debug & DEBUG_H_FLAG)
 #  define DEBUG_X_TEST_ UNLIKELY(PL_debug & DEBUG_X_FLAG)
 #  define DEBUG_D_TEST_ UNLIKELY(PL_debug & DEBUG_D_FLAG)
 #  define DEBUG_S_TEST_ UNLIKELY(PL_debug & DEBUG_S_FLAG)
@@ -4239,7 +4238,6 @@ Gid_t getegid (void);
 #  define DEBUG_x_TEST DEBUG_x_TEST_
 #  define DEBUG_u_TEST DEBUG_u_TEST_
 #  define DEBUG_U_TEST DEBUG_U_TEST_
-#  define DEBUG_H_TEST DEBUG_H_TEST_
 #  define DEBUG_X_TEST DEBUG_X_TEST_
 #  define DEBUG_D_TEST DEBUG_D_TEST_
 #  define DEBUG_S_TEST DEBUG_S_TEST_
@@ -4300,7 +4298,6 @@ Gid_t getegid (void);
 #  define DEBUG_x(a) DEBUG__(DEBUG_x_TEST, a)
 #  define DEBUG_u(a) DEBUG__(DEBUG_u_TEST, a)
 #  define DEBUG_U(a) DEBUG__(DEBUG_U_TEST, a)
-#  define DEBUG_H(a) DEBUG__(DEBUG_H_TEST, a)
 #  define DEBUG_X(a) DEBUG__(DEBUG_X_TEST, a)
 #  define DEBUG_D(a) DEBUG__(DEBUG_D_TEST, a)
 #  define DEBUG_Xv(a) DEBUG__(DEBUG_Xv_TEST, a)
@@ -4335,7 +4332,6 @@ Gid_t getegid (void);
 #  define DEBUG_x_TEST (0)
 #  define DEBUG_u_TEST (0)
 #  define DEBUG_U_TEST (0)
-#  define DEBUG_H_TEST (0)
 #  define DEBUG_X_TEST (0)
 #  define DEBUG_D_TEST (0)
 #  define DEBUG_S_TEST (0)
@@ -4371,7 +4367,6 @@ Gid_t getegid (void);
 #  define DEBUG_x(a)
 #  define DEBUG_u(a)
 #  define DEBUG_U(a)
-#  define DEBUG_H(a)
 #  define DEBUG_X(a)
 #  define DEBUG_D(a)
 #  define DEBUG_S(a)
index dff9f71..f32c8ed 100644 (file)
@@ -406,7 +406,6 @@ B<-D14> is equivalent to B<-Dtls>):
       2048  u  Tainting checks
       4096  U  Unofficial, User hacking (reserved for private,
                unreleased use)
-      8192  H  Hash dump -- usurps values()
      16384  X  Scratchpad allocation
      32768  D  Cleaning up
      65536  S  Op slab allocation