This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Refactor Storable::{net_,}pstore to return undef/true, instead of 1 or 0.
[perl5.git] / sv.h
diff --git a/sv.h b/sv.h
index 2f03bfc..92f5edd 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -1421,6 +1421,9 @@ Returns a pointer to the string in the SV, or a stringified form of
 the SV if the SV does not contain a string.  The SV may cache the
 stringified form becoming C<SvPOK>.  Handles 'get' magic.
 
+=for apidoc Am|char*|SvPV_nomg_nolen|SV* sv
+Like C<SvPV_nolen> but doesn't process magic.
+
 =for apidoc Am|IV|SvIV|SV* sv
 Coerces the given SV to an integer and returns it. See C<SvIVx> for a
 version which guarantees to evaluate sv only once.
@@ -1586,6 +1589,10 @@ Like sv_utf8_upgrade, but doesn't do magic on C<sv>
     ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
      ? SvPVX(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC))
 
+#define SvPV_nomg_nolen(sv) \
+    ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+     ? SvPVX(sv) : sv_2pv_flags(sv, 0, 0))
+
 #define SvPV_nolen_const(sv) \
     ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
      ? SvPVX_const(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC|SV_CONST_RETURN))
@@ -1949,23 +1956,9 @@ Returns a pointer to the character buffer.
                SvSetSV_nosteal_and(dst,src,/*nothing*/;)
 
 #define SvSetMagicSV(dst,src) \
-    SvSetSV_and(dst,src,       \
-       if (SvSMAGICAL(dst)     \
-        && (                    \
-            !isGV_with_GP(dst) || !SvROK(src) || isGV_with_GP(SvRV(src)) \
-           )                                                             \
-          )                                                              \
-           mg_set(dst)                                                   \
-    )
+               SvSetSV_and(dst,src,SvSETMAGIC(dst))
 #define SvSetMagicSV_nosteal(dst,src) \
-    SvSetSV_nosteal_and(dst,src,       \
-       if (SvSMAGICAL(dst)             \
-        && (                            \
-            !isGV_with_GP(dst) || !SvROK(src) || isGV_with_GP(SvRV(src)) \
-           )                                                             \
-          )                                                              \
-           mg_set(dst)                                                   \
-    )
+               SvSetSV_nosteal_and(dst,src,SvSETMAGIC(dst))
 
 
 #if !defined(SKIP_DEBUGGING)