Re: UNIVERSAL::class busted
Graham Barr [Thu, 29 Aug 1996 06:05:10 +0000 (06:05 +0000)]
yes, but I also noticed that this does not check that the reference
is an object, so the patch should be

universal.c

index 61a536b..72087e6 100644 (file)
@@ -154,9 +154,9 @@ static
 XS(XS_UNIVERSAL_class)
 {
     dXSARGS;
-    if(SvROK(ST(0))) {
+    if(SvROK(ST(0)) && SvOBJECT(SvRV(ST(0)))) {
         SV *sv = sv_newmortal();
-        sv_setpv(sv, HvNAME(SvSTASH(ST(0))));
+        sv_setpv(sv, HvNAME(SvSTASH(SvRV(ST(0)))));
         ST(0) = sv;
     }
     XSRETURN(1);