[PATCH 2/2] Use SvROK() instead of checking if SvTYPE() == SVt_RV
Niko Tyni
ntyni at debian.org
Thu May 20 07:09:33 UTC 2010
Perl 5.12 no longer has a separate reference type; SVt_RV is now
the same as SVt_IV. The right way to check if an SV is a reference
is by using SvROK().
---
epcache.c | 4 ++--
epcmd.c | 2 +-
epcmd2.c | 4 ++--
epcomp.c | 12 ++++++------
epeval.c | 2 +-
5 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/epcache.c b/epcache.c
index fa6e87b..d2c0e74 100644
--- a/epcache.c
+++ b/epcache.c
@@ -265,7 +265,7 @@ int Cache_New (/*in*/ req * r,
/* lprintf (r -> pApp, "XXXXX Cache_New [%d/%d] pProviders=%x %s pCacheItems=%x %s pCachesToRelease=%x %s\n", _getpid(), GetCurrentThreadId(), pProviders, IsBadReadPtr (pProviders,4 )?"bad":"ok", pCacheItems, IsBadReadPtr (pCacheItems, 4)?"bad":"ok", pCachesToRelease, IsBadReadPtr (pCachesToRelease, 4)?"bad":"ok") ; */
- if (SvTYPE(pParam) == SVt_RV)
+ if (SvROK(pParam))
pParam = SvRV (pParam) ;
if (SvTYPE(pParam) == SVt_PV)
@@ -435,7 +435,7 @@ int Cache_AppendKey (/*in*/ req * r,
}
- if (SvTYPE(pParam) == SVt_RV)
+ if (SvROK(pParam))
pParam = SvRV (pParam) ;
if (SvTYPE(pParam) == SVt_PV)
diff --git a/epcmd.c b/epcmd.c
index 1270369..b5ced42 100644
--- a/epcmd.c
+++ b/epcmd.c
@@ -637,7 +637,7 @@ static int CmdForeach (/*i/o*/ register req * r,
if (pRV == NULL)
return rcMissingArgs ;
- if (SvTYPE (pRV) != SVt_RV)
+ if (!SvROK(pRV))
{
SvREFCNT_dec (pRV) ;
return rcNotAnArray ;
diff --git a/epcmd2.c b/epcmd2.c
index 38c52da..8eef9fc 100644
--- a/epcmd2.c
+++ b/epcmd2.c
@@ -426,7 +426,7 @@ SV * Node_replaceChildWithUrlDATA (/*in*/ tReq * r,
HV * pHV ;
tDomTree * pDomTree = DomTree_self(xDomTree) ;
- if (SvTYPE(sText) == SVt_RV && SvTYPE((pAV = (AV *)SvRV(sText))) == SVt_PVAV)
+ if (SvROK(sText) && SvTYPE((pAV = (AV *)SvRV(sText))) == SVt_PVAV)
{ /* Array reference inside URL */
SV ** ppSV ;
int i ;
@@ -453,7 +453,7 @@ SV * Node_replaceChildWithUrlDATA (/*in*/ tReq * r,
}
- else if (SvTYPE(sText) == SVt_RV && SvTYPE((pHV = (HV *)SvRV(sText))) == SVt_PVHV)
+ else if (SvROK(sText) && SvTYPE((pHV = (HV *)SvRV(sText))) == SVt_PVHV)
{ /* Hash reference inside URL */
HE * pEntry ;
char * pKey ;
diff --git a/epcomp.c b/epcomp.c
index d200cc0..3633c42 100644
--- a/epcomp.c
+++ b/epcomp.c
@@ -143,7 +143,7 @@ int embperl_CompileInitItem (/*i/o*/ register req * r,
ppSV = hv_fetch(pHash, "perlcode", 8, 0) ;
if (ppSV != NULL && *ppSV != NULL &&
- SvTYPE(*ppSV) == SVt_RV && SvTYPE((pAV = (AV *)SvRV(*ppSV))) == SVt_PVAV)
+ SvROK(*ppSV) && SvTYPE((pAV = (AV *)SvRV(*ppSV))) == SVt_PVAV)
{ /* Array reference */
int f = AvFILL(pAV) + 1 ;
int i ;
@@ -176,7 +176,7 @@ int embperl_CompileInitItem (/*i/o*/ register req * r,
ppSV = hv_fetch(pHash, "compiletimeperlcode", 19, 0) ;
if (ppSV != NULL && *ppSV != NULL &&
- SvTYPE(*ppSV) == SVt_RV && SvTYPE((pAV = (AV *)SvRV(*ppSV))) == SVt_PVAV)
+ SvROK(*ppSV) && SvTYPE((pAV = (AV *)SvRV(*ppSV))) == SVt_PVAV)
{ /* Array reference */
int f = AvFILL(pAV) + 1 ;
int i ;
@@ -420,7 +420,7 @@ static void embperl_CompilePushStack (/*in*/ tReq * r,
if (ppSV == NULL)
return ;
- if (*ppSV == NULL || SvTYPE (*ppSV) != SVt_RV)
+ if (*ppSV == NULL || !SvROK(*ppSV))
{
if (*ppSV)
SvREFCNT_dec (*ppSV) ;
@@ -456,7 +456,7 @@ static void embperl_CompilePopStack (/*in*/ tReq * r,
SV * pSV ;
ppSV = hv_fetch((HV *)(pDomTree -> pSV), (char *)sStackName, strlen (sStackName), 0) ;
- if (ppSV == NULL || *ppSV == NULL || SvTYPE (*ppSV) != SVt_RV)
+ if (ppSV == NULL || *ppSV == NULL || !SvROK(*ppSV))
return ;
pSV = av_pop ((AV *)SvRV (*ppSV)) ;
@@ -486,7 +486,7 @@ static int embperl_CompileMatchStack (/*in*/ tReq * r,
char * s ;
ppSV = hv_fetch((HV *)(pDomTree -> pSV), (char *)sStackName, strlen (sStackName), 0) ;
- if (ppSV == NULL || *ppSV == NULL || SvTYPE (*ppSV) != SVt_RV)
+ if (ppSV == NULL || *ppSV == NULL || !SvROK(*ppSV))
{
strcpy (r -> errdat1, "CompileMatchStack") ;
strncat (r -> errdat1, (char *)sStackName, sizeof (r -> errdat1) - 20) ;
@@ -541,7 +541,7 @@ static int embperl_CompileAddStack (/*in*/ tReq * r,
ppSV = hv_fetch((HV *)(pDomTree -> pSV), (char *)p, e - p, 0) ;
- if (ppSV == NULL || *ppSV == NULL || SvTYPE (*ppSV) != SVt_RV)
+ if (ppSV == NULL || *ppSV == NULL || !SvROK(*ppSV))
return op == '!'?1:0 ;
pAV = (AV *)SvRV (*ppSV) ;
diff --git a/epeval.c b/epeval.c
index 1b7cd17..548ef0f 100644
--- a/epeval.c
+++ b/epeval.c
@@ -624,7 +624,7 @@ int EvalOnly (/*i/o*/ register req * r,
if (ppSV && *ppSV)
SvREFCNT_dec (*ppSV) ;
- if (rc == ok && pSub != NULL && SvTYPE (pSub) == SVt_RV)
+ if (rc == ok && pSub != NULL && SvROK(pSub))
{
/*sv_setsv (*ppSV, pSub) ;*/
*ppSV = SvRV(pSub) ;
--
1.7.1
--rwEMma7ioTxnRzrJ--
More information about the pkg-perl-maintainers
mailing list