]> git.vpit.fr Git - perl/modules/indirect.git/commitdiff
SvIOK and SvROK imply SvOK
authorVincent Pit <vince@profvince.com>
Thu, 27 Aug 2009 21:47:43 +0000 (23:47 +0200)
committerVincent Pit <vince@profvince.com>
Thu, 27 Aug 2009 21:47:43 +0000 (23:47 +0200)
indirect.xs

index 0b8de4df0d0715c790aacb254f39b301eb7958a9..51199e791badd9c21043fedc4e45095e9a96a731 100644 (file)
@@ -267,7 +267,7 @@ STATIC SV *indirect_tag(pTHX_ SV *value) {
  SV *code = NULL;
  dMY_CXT;
 
- if (SvOK(value) && SvROK(value)) {
+ if (SvROK(value)) {
   value = SvRV(value);
   if (SvTYPE(value) >= SVt_PVCV) {
    code = value;
@@ -313,7 +313,7 @@ STATIC SV *indirect_detag(pTHX_ const SV *hint) {
  indirect_hint_t *h;
  dMY_CXT;
 
- if (!(hint && SvOK(hint) && SvIOK(hint)))
+ if (!(hint && SvIOK(hint)))
   return NULL;
 
  h = ptable_fetch(MY_CXT.tbl, INT2PTR(void *, SvUVX(hint)));
@@ -346,7 +346,7 @@ STATIC SV *indirect_tag(pTHX_ SV *value) {
 #define indirect_tag(V) indirect_tag(aTHX_ (V))
  UV tag = 0;
 
- if (SvOK(value) && SvROK(value)) {
+ if (SvROK(value)) {
   value = SvRV(value);
   SvREFCNT_inc_simple_NN(value);
   tag = PTR2UV(value);
@@ -355,7 +355,7 @@ STATIC SV *indirect_tag(pTHX_ SV *value) {
  return newSVuv(tag);
 }
 
-#define indirect_detag(H) (((H) && SvOK(H)) ? INT2PTR(SV *, SvUVX(H)) : NULL)
+#define indirect_detag(H) (((H) && SvIOK(H)) ? INT2PTR(SV *, SvUVX(H)) : NULL)
 
 #endif /* I_THREADSAFE || I_WORKAROUND_REQUIRE_PROPAGATION */