$ref1 == $ref2 without NV_PRESERVES_UV
Andreas Schwab [Mon, 26 Mar 2001 17:29:04 +0000 (19:29 +0200)]
Message-ID: <jeitkw5z27.fsf@hawking.suse.de>

(The patch for 5.6.0 or so, this is a guess for bleadperl)

p4raw-id: //depot/perl@9366

pp_hot.c

index 7a6ad32..70c6866 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -230,12 +230,18 @@ PP(pp_readline)
 PP(pp_eq)
 {
     dSP; tryAMAGICbinSET(eq,0);
+#ifndef NV_PRESERVES_UV
+    if (SvROK(TOPs) && SvROK(TOPm1s)) {
+       SETs(boolSV(SvRV(TOPs) == SvRV(TOPm1s)));
+       RETURN;
+    }
+#endif
 #ifdef PERL_PRESERVE_IVUV
     SvIV_please(TOPs);
     if (SvIOK(TOPs)) {
-       /* Unless the left argument is integer in range we are going to have to
-          use NV maths. Hence only attempt to coerce the right argument if
-          we know the left is integer.  */
+       /* Unless the left argument is integer in range we are going
+          to have to use NV maths. Hence only attempt to coerce the
+          right argument if we know the left is integer.  */
       SvIV_please(TOPm1s);
        if (SvIOK(TOPm1s)) {
            bool auvok = SvUOK(TOPm1s);