@@ -1240,7 +1240,8 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
1240
1240
}
1241
1241
else {
1242
1242
STRLEN i ;
1243
- const MAGIC * mg ;
1243
+ STRLEN vstr_len ;
1244
+ const char * vstr_pv ;
1244
1245
1245
1246
if (namelen ) {
1246
1247
id_buffer = PTR2UV (val );
@@ -1386,7 +1387,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
1386
1387
sv_catpvs (retval , "undef" );
1387
1388
}
1388
1389
#ifdef SvVOK
1389
- else if (SvMAGICAL (val ) && (mg = mg_find (val , PERL_MAGIC_vstring ))) {
1390
+ else if (SvVOK (val ) && (vstr_pv = SvVSTRING (val , vstr_len ))) {
1390
1391
# if !defined(PL_vtbl_vstring ) && PERL_VERSION_LT (5 ,17 ,0 )
1391
1392
SV * const vecsv = sv_newmortal ();
1392
1393
# if PERL_VERSION_LT (5 ,10 ,0 )
@@ -1396,7 +1397,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
1396
1397
# endif
1397
1398
if (!sv_eq (vecsv , val )) goto integer_came_from_string ;
1398
1399
# endif
1399
- sv_catpvn (retval , ( const char * ) mg -> mg_ptr , mg -> mg_len );
1400
+ sv_catpvn (retval , vstr_pv , vstr_len );
1400
1401
}
1401
1402
#endif
1402
1403
@@ -1701,13 +1702,13 @@ Data_Dumper__vstring(sv)
1701
1702
CODE :
1702
1703
{
1703
1704
#ifdef SvVOK
1704
- const MAGIC * mg ;
1705
- RETVAL =
1706
- SvMAGICAL (sv ) && (mg = mg_find (sv , PERL_MAGIC_vstring ))
1707
- ? newSVpvn ((const char * )mg -> mg_ptr , mg -> mg_len )
1708
- : & PL_sv_undef ;
1709
- #else
1710
- RETVAL = & PL_sv_undef ;
1705
+ if (SvVOK (sv )) {
1706
+ STRLEN vstr_len ;
1707
+ const char * vstr_pv = SvVSTRING (sv , vstr_len );
1708
+ RETVAL = newSVpvn (vstr_pv , vstr_len );
1709
+ }
1710
+ else
1711
1711
#endif
1712
+ RETVAL = & PL_sv_undef ;
1712
1713
}
1713
1714
OUTPUT : RETVAL
0 commit comments