From 3f5bea08cdf76be473a23f2932390162ab4e1730 Mon Sep 17 00:00:00 2001 From: Ulf Zibis Date: Wed, 10 Mar 2010 14:53:51 -0800 Subject: [PATCH] 6931812: A better implementation of sun.nio.cs.Surrogate.isBMP(int) Uc >> 16 == 0 is superior to (int) (char) uc == uc Reviewed-by: sherman --- jdk/src/share/classes/sun/nio/cs/Surrogate.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jdk/src/share/classes/sun/nio/cs/Surrogate.java b/jdk/src/share/classes/sun/nio/cs/Surrogate.java index 4791255435b..5f48f07fa0b 100644 --- a/jdk/src/share/classes/sun/nio/cs/Surrogate.java +++ b/jdk/src/share/classes/sun/nio/cs/Surrogate.java @@ -78,8 +78,8 @@ public class Surrogate { * Tells whether or not the given UCS-4 character is in the Basic * Multilingual Plane, and can be represented using a single char. */ - public static boolean isBMP(int uc) { - return (int) (char) uc == uc; + public static boolean isBMPCodePoint(int uc) { + return uc >> 16 == 0; } /** @@ -290,7 +290,7 @@ public class Surrogate { * error() will return a descriptive result object */ public int generate(int uc, int len, CharBuffer dst) { - if (Surrogate.isBMP(uc)) { + if (Surrogate.isBMPCodePoint(uc)) { if (Surrogate.is(uc)) { error = CoderResult.malformedForLength(len); return -1; @@ -334,7 +334,7 @@ public class Surrogate { * error() will return a descriptive result object */ public int generate(int uc, int len, char[] da, int dp, int dl) { - if (Surrogate.isBMP(uc)) { + if (Surrogate.isBMPCodePoint(uc)) { if (Surrogate.is(uc)) { error = CoderResult.malformedForLength(len); return -1;