UNIVERSAL::isa() and UNIVERSAL::can() fail for magic values
Gurusamy Sarathy [Thu, 9 Mar 2000 18:48:05 +0000 (18:48 +0000)]
p4raw-id: //depot/perl@5630

universal.c

index f6b25a4..28e0896 100644 (file)
@@ -139,6 +139,9 @@ XS(XS_UNIVERSAL_isa)
 
     sv = ST(0);
 
+    if (SvGMAGICAL(sv))
+       mg_get(sv);
+
     if (!SvOK(sv) || !(SvROK(sv) || SvCUR(sv)))
        XSRETURN_UNDEF;
 
@@ -162,6 +165,9 @@ XS(XS_UNIVERSAL_can)
 
     sv = ST(0);
 
+    if (SvGMAGICAL(sv))
+       mg_get(sv);
+
     if (!SvOK(sv) || !(SvROK(sv) || SvCUR(sv)))
        XSRETURN_UNDEF;