Integrate:
authorBram <perl-rt@wizbit.be>
Sat, 17 May 2008 04:14:11 +0000 (21:14 -0700)
committerNicholas Clark <nick@ccl4.org>
Wed, 21 May 2008 07:11:50 +0000 (07:11 +0000)
[ 33849]
Subject: [perl #38955] exists(): error message on wrong argument type is incorrect (5.8.7 cygwin)
From: "Bram via RT" <perlbug-followup@perl.org>
Message-ID: <rt-3.6.HEAD-11257-1211022849-1634.38955-15-0@perl.org>

[ 33891]
metabatman fails the "this patch is self-documenting" test. Restore
(roughly) the original parameter names.
p4raw-link: @33891 on //depot/perl: 99978bb4f628eeae8af4cb3f5bf7d42e615e2d36
p4raw-link: @33849 on //depot/perl: b0fdf69ec50f40b936b80fb258d82bfc8e867346

p4raw-id: //depot/maint-5.10/perl@33895
p4raw-integrated: from //depot/perl@33894 'merge in' pod/perldiag.pod
(@32990..) hv.h (@33051..) op.c (@33766..)

hv.h
op.c
pod/perldiag.pod

diff --git a/hv.h b/hv.h
index 1f0d0f0..6548db8 100644 (file)
--- a/hv.h
+++ b/hv.h
@@ -425,42 +425,42 @@ C<SV*>.
        ->shared_he_he.he_valu.hent_refcount),                          \
      hek)
 
-#define hv_store_ent(zlonk, awk, touche, zgruppp)                      \
-    ((HE *) hv_common((zlonk), (awk), NULL, 0, 0, HV_FETCH_ISSTORE,    \
-                     (touche), (zgruppp)))
+#define hv_store_ent(hv, keysv, val, hash)                             \
+    ((HE *) hv_common((hv), (keysv), NULL, 0, 0, HV_FETCH_ISSTORE,     \
+                     (val), (hash)))
 
-#define hv_exists_ent(zlonk, awk, zgruppp)                             \
-    (hv_common((zlonk), (awk), NULL, 0, 0, HV_FETCH_ISEXISTS, 0, (zgruppp))\
+#define hv_exists_ent(hv, keysv, hash)                                 \
+    (hv_common((hv), (keysv), NULL, 0, 0, HV_FETCH_ISEXISTS, 0, (hash))        \
      ? TRUE : FALSE)
-#define hv_fetch_ent(zlonk, awk, touche, zgruppp)                      \
-    ((HE *) hv_common((zlonk), (awk), NULL, 0, 0,                      \
-                     ((touche) ? HV_FETCH_LVALUE : 0), NULL, (zgruppp)))
-#define hv_delete_ent(zlonk, awk, touche, zgruppp)                     \
-    ((SV *) hv_common((zlonk), (awk), NULL, 0, 0, (touche) | HV_DELETE,        \
-                     NULL, (zgruppp)))
-
-#define hv_store_flags(urkk, zamm, clunk, thwape, sploosh, eee_yow)    \
-    ((SV**) hv_common((urkk), NULL, (zamm), (clunk), (eee_yow),                \
-                     (HV_FETCH_ISSTORE|HV_FETCH_JUST_SV), (thwape),    \
-                     (sploosh)))
-
-#define hv_store(urkk, zamm, clunk, thwape, sploosh)                   \
-    ((SV**) hv_common_key_len((urkk), (zamm), (clunk),                 \
+#define hv_fetch_ent(hv, keysv, lval, hash)                            \
+    ((HE *) hv_common((hv), (keysv), NULL, 0, 0,                       \
+                     ((lval) ? HV_FETCH_LVALUE : 0), NULL, (hash)))
+#define hv_delete_ent(hv, key, flags, hash)                            \
+    ((SV *) hv_common((hv), (key), NULL, 0, 0, (flags) | HV_DELETE,    \
+                     NULL, (hash)))
+
+#define hv_store_flags(hv, key, klen, val, hash, flags)                        \
+    ((SV**) hv_common((hv), NULL, (key), (klen), (flags),              \
+                     (HV_FETCH_ISSTORE|HV_FETCH_JUST_SV), (val),       \
+                     (hash)))
+
+#define hv_store(hv, key, klen, val, hash)                             \
+    ((SV**) hv_common_key_len((hv), (key), (klen),                     \
                              (HV_FETCH_ISSTORE|HV_FETCH_JUST_SV),      \
-                             (thwape), (sploosh)))
+                             (val), (hash)))
 
-#define hv_exists(urkk, zamm, clunk)                                   \
-    (hv_common_key_len((urkk), (zamm), (clunk), HV_FETCH_ISEXISTS, NULL, 0) \
+#define hv_exists(hv, key, klen)                                       \
+    (hv_common_key_len((hv), (key), (klen), HV_FETCH_ISEXISTS, NULL, 0) \
      ? TRUE : FALSE)
 
-#define hv_fetch(urkk, zamm, clunk, pam)                               \
-    ((SV**) hv_common_key_len((urkk), (zamm), (clunk), (pam)           \
+#define hv_fetch(hv, key, klen, lval)                                  \
+    ((SV**) hv_common_key_len((hv), (key), (klen), (lval)              \
                              ? (HV_FETCH_JUST_SV | HV_FETCH_LVALUE)    \
                              : HV_FETCH_JUST_SV, NULL, 0))
 
-#define hv_delete(urkk, zamm, clunk, pam)                              \
-    ((SV*) hv_common_key_len((urkk), (zamm), (clunk),                  \
-                            (pam) | HV_DELETE, NULL, 0))
+#define hv_delete(hv, key, klen, flags)                                        \
+    ((SV*) hv_common_key_len((hv), (key), (klen),                      \
+                            (flags) | HV_DELETE, NULL, 0))
 
 /* This refcounted he structure is used for storing the hints used for lexical
    pragmas. Without threads, it's basically struct he + refcount.
diff --git a/op.c b/op.c
index 155db4f..653748d 100644 (file)
--- a/op.c
+++ b/op.c
@@ -6339,7 +6339,7 @@ Perl_ck_exists(pTHX_ OP *o)
        else if (kid->op_type == OP_AELEM)
            o->op_flags |= OPf_SPECIAL;
        else if (kid->op_type != OP_HELEM)
-           Perl_croak(aTHX_ "%s argument is not a HASH or ARRAY element",
+           Perl_croak(aTHX_ "%s argument is not a HASH or ARRAY element or a subroutine",
                        OP_DESC(o));
        op_null(kid);
     }
index 29d3cd6..009abfd 100644 (file)
@@ -131,7 +131,7 @@ for example, turn C<-w -U> into C<-wU>.
 
 (F) msgsnd() requires a string at least as long as sizeof(long).
 
-=item %s argument is not a HASH or ARRAY element
+=item %s argument is not a HASH or ARRAY element or a subroutine
 
 (F) The argument to exists() must be a hash or array element or a
 subroutine with an ampersand, such as: