Remove the check for SVt_BIND from SvOK().
authorNicholas Clark <nick@ccl4.org>
Tue, 19 Feb 2013 10:43:08 +0000 (11:43 +0100)
committerNicholas Clark <nick@ccl4.org>
Wed, 20 Feb 2013 08:22:17 +0000 (09:22 +0100)
The original plan to use SVt_BIND to implement read-only aliases to
read-write values is unlikely to happen. More importantly, it's not going
to happen within a maint branch, so there's no reason to have the code
"just in case" it does. The code can easily be re-instated in blead if it
is needed in future. Nothing on CPAN is relying on this code. (Almost no
code on CPAN even references SVt_BIND.)

This effectively reverts part of commit 1cb9cd5016282146 from Dec 2006.

sv.h

diff --git a/sv.h b/sv.h
index 54d606b..94ba1e6 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -801,11 +801,7 @@ Set the actual length of the string which is in the SV.  See C<SvIV_set>.
 #define assert_not_ROK(sv)     assert_(!SvROK(sv) || !SvRV(sv))
 #define assert_not_glob(sv)    assert_(!isGV_with_GP(sv))
 
-#define SvOK(sv)               ((SvTYPE(sv) == SVt_BIND)               \
-                                ? (SvFLAGS(SvRV(sv)) & SVf_OK          \
-                                       || isREGEXP(SvRV(sv)))          \
-                                : (SvFLAGS(sv) & SVf_OK                \
-                                        || isREGEXP(sv)))
+#define SvOK(sv)               (SvFLAGS(sv) & SVf_OK || isREGEXP(sv))
 #define SvOK_off(sv)           (assert_not_ROK(sv) assert_not_glob(sv) \
                                 SvFLAGS(sv) &= ~(SVf_OK|               \
                                                  SVf_IVisUV|SVf_UTF8), \