]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blobdiff - Magic.xs
Use SvRV_const() whenever possible
[perl/modules/Variable-Magic.git] / Magic.xs
index 9da0b256a39cfdd5f42b20b1fb7301440f2290e5..3ec0b6fed0db8342fc010d9d91d51631bbbce645 100644 (file)
--- a/Magic.xs
+++ b/Magic.xs
@@ -100,6 +100,10 @@ STATIC SV *vmg_clone(pTHX_ SV *sv, tTHX owner) {
 # define SvMAGIC_set(sv, val) (SvMAGIC(sv) = (val))
 #endif
 
+#ifndef SvRV_const
+# define SvRV_const(sv) SvRV((SV *) sv)
+#endif
+
 #ifndef mPUSHu
 # define mPUSHu(U) PUSHs(sv_2mortal(newSVuv(U)))
 #endif
@@ -526,7 +530,7 @@ STATIC SV *vmg_wizard_new(pTHX_ const MGWIZ *w) {
 STATIC const SV *vmg_wizard_validate(pTHX_ const SV *wiz) {
 #define vmg_wizard_validate(W) vmg_wizard_validate(aTHX_ (W))
  if (SvROK(wiz)) {
-  wiz = SvRV(wiz);
+  wiz = SvRV_const(wiz);
   if (SvIOK(wiz))
    return wiz;
  }
@@ -987,7 +991,7 @@ STATIC U32 vmg_svt_len(pTHX_ SV *sv, MAGIC *mg) {
  PUSHs(mg->mg_obj ? mg->mg_obj : &PL_sv_undef);
  if (t < SVt_PVAV) {
   STRLEN l;
-#if VMG_HAS_PERL(5, 9, 2)
+#if VMG_HAS_PERL(5, 9, 3)
   const U8 *s = SvPV_const(sv, l);
 #else
   U8 *s = SvPV(sv, l);