summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2005-12-05 22:44:32 +0000
committerNicholas Clark <nick@ccl4.org>2005-12-05 22:44:32 +0000
commit8193e65bb36d71e3ea0cfdd7548f511b368fe2bd (patch)
tree670555cb9fc1022434bbbae27e8b6a58fce789e0
parentc080367dabc9773787a665f0cb0409433d932027 (diff)
downloadperl-8193e65bb36d71e3ea0cfdd7548f511b368fe2bd.tar.gz
As they are now the same, can fold the entire switch statement for
reference type in sv_2pv_flags into a call to sv_reftype. p4raw-id: //depot/perl@26268
-rw-r--r--sv.c25
1 files changed, 1 insertions, 24 deletions
diff --git a/sv.c b/sv.c
index 740f2de698..4220ca45b1 100644
--- a/sv.c
+++ b/sv.c
@@ -2670,31 +2670,8 @@ Perl_sv_2pv_flags(pTHX_ register SV *sv, STRLEN *lp, I32 flags)
return mg->mg_ptr;
}
+ typestr = sv_reftype(sv, 0);
- switch (SvTYPE(sv)) {
- case SVt_NULL:
- case SVt_IV:
- case SVt_NV:
- case SVt_RV:
- case SVt_PV:
- case SVt_PVIV:
- case SVt_PVNV:
- case SVt_PVMG:
- case SVt_PVBM: typestr = SvVOK(sv) ? "VSTRING"
- : SvROK(sv) ? "REF" : "SCALAR"; break;
- case SVt_PVLV: typestr = SvROK(sv) ? "REF"
- /* tied lvalues should appear to be
- * scalars for backwards compatitbility */
- : (LvTYPE(sv) == 't' || LvTYPE(sv) == 'T')
- ? "SCALAR" : "LVALUE"; break;
- case SVt_PVAV: typestr = "ARRAY"; break;
- case SVt_PVHV: typestr = "HASH"; break;
- case SVt_PVCV: typestr = "CODE"; break;
- case SVt_PVGV: typestr = "GLOB"; break;
- case SVt_PVFM: typestr = "FORMAT"; break;
- case SVt_PVIO: typestr = "IO"; break;
- default: typestr = "UNKNOWN"; break;
- }
tsv = NEWSV(0,0);
if (SvOBJECT(sv)) {
const char * const name = HvNAME_get(SvSTASH(sv));