diff options
author | Martin Odersky <odersky@gmail.com> | 2010-06-21 16:12:12 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2010-06-21 16:12:12 +0000 |
commit | 6c7d1d8902c0fe4b425dc1a789d366dad7dad251 (patch) | |
tree | 759490e51fa73ad75db1795a4e361ed287ee723d /src/library | |
parent | bf3fb9d8b5a95d3d4fa5bcc4bb78cf3ce6164486 (diff) | |
download | scala-6c7d1d8902c0fe4b425dc1a789d366dad7dad251.tar.gz scala-6c7d1d8902c0fe4b425dc1a789d366dad7dad251.tar.bz2 scala-6c7d1d8902c0fe4b425dc1a789d366dad7dad251.zip |
Merged r22379: Paul's patch for null in numeric...
Merged r22379: Paul's patch for null in numeric comparisons
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/runtime/BoxesRunTime.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/library/scala/runtime/BoxesRunTime.java b/src/library/scala/runtime/BoxesRunTime.java index 8bce46ea66..b6539d087c 100644 --- a/src/library/scala/runtime/BoxesRunTime.java +++ b/src/library/scala/runtime/BoxesRunTime.java @@ -127,7 +127,6 @@ public final class BoxesRunTime public static boolean equals(Object x, Object y) { if (x == y) return true; - if (x == null) return false; return equals2(x, y); } @@ -139,6 +138,8 @@ public final class BoxesRunTime return equalsNumObject((java.lang.Number)x, y); if (x instanceof java.lang.Character) return equalsCharObject((java.lang.Character)x, y); + if (x == null) + return y == null; return x.equals(y); } @@ -146,8 +147,10 @@ public final class BoxesRunTime public static boolean equalsNumObject(java.lang.Number xn, Object y) { if (y instanceof java.lang.Number) return equalsNumNum(xn, (java.lang.Number)y); - else if (y instanceof java.lang.Character) + if (y instanceof java.lang.Character) return equalsNumChar(xn, (java.lang.Character)y); + if (xn == null) + return y == null; return xn.equals(y); } @@ -168,6 +171,9 @@ public final class BoxesRunTime if ((yn instanceof ScalaNumber) && !(xn instanceof ScalaNumber)) return yn.equals(xn); } + if (xn == null) + return yn == null; + return xn.equals(yn); } @@ -176,6 +182,8 @@ public final class BoxesRunTime return xc.charValue() == ((java.lang.Character)y).charValue(); if (y instanceof java.lang.Number) return equalsNumChar((java.lang.Number)y, xc); + if (xc == null) + return y == null; return xc.equals(y); } @@ -192,6 +200,9 @@ public final class BoxesRunTime case DOUBLE: return xn.doubleValue() == ch; default: + if (xn == null) + return yc == null; + return xn.equals(yc); } } |