1.1 --- a/src/share/classes/com/sun/codemodel/internal/util/SingleByteEncoder.java Mon Apr 20 15:25:02 2009 -0700 1.2 +++ b/src/share/classes/com/sun/codemodel/internal/util/SingleByteEncoder.java Mon May 04 21:10:41 2009 -0700 1.3 @@ -24,7 +24,7 @@ 1.4 */ 1.5 1.6 /* 1.7 - * @(#)SingleByteEncoder.java 1.14 03/01/23 1.8 + * @(#)SingleByteEncoder.java 1.14 03/01/23 1.9 */ 1.10 1.11 package com.sun.codemodel.internal.util; 1.12 @@ -51,109 +51,109 @@ 1.13 private final Surrogate.Parser sgp = new Surrogate.Parser(); 1.14 1.15 protected SingleByteEncoder(Charset cs, 1.16 - short[] index1, String index2, 1.17 - int mask1, int mask2, int shift) 1.18 + short[] index1, String index2, 1.19 + int mask1, int mask2, int shift) 1.20 { 1.21 - super(cs, 1.0f, 1.0f); 1.22 - this.index1 = index1; 1.23 - this.index2 = index2; 1.24 - this.mask1 = mask1; 1.25 - this.mask2 = mask2; 1.26 - this.shift = shift; 1.27 + super(cs, 1.0f, 1.0f); 1.28 + this.index1 = index1; 1.29 + this.index2 = index2; 1.30 + this.mask1 = mask1; 1.31 + this.mask2 = mask2; 1.32 + this.shift = shift; 1.33 } 1.34 1.35 public boolean canEncode(char c) { 1.36 - char testEncode; 1.37 - testEncode = index2.charAt(index1[(c & mask1) >> shift] 1.38 - + (c & mask2)); 1.39 - if (testEncode == '\u0000') 1.40 - return false; 1.41 - else 1.42 - return true; 1.43 + char testEncode; 1.44 + testEncode = index2.charAt(index1[(c & mask1) >> shift] 1.45 + + (c & mask2)); 1.46 + if (testEncode == '\u0000') 1.47 + return false; 1.48 + else 1.49 + return true; 1.50 } 1.51 1.52 private CoderResult encodeArrayLoop(CharBuffer src, ByteBuffer dst) { 1.53 - char[] sa = src.array(); 1.54 - int sp = src.arrayOffset() + src.position(); 1.55 - int sl = src.arrayOffset() + src.limit(); 1.56 - sp = (sp <= sl ? sp : sl); 1.57 - byte[] da = dst.array(); 1.58 - int dp = dst.arrayOffset() + dst.position(); 1.59 - int dl = dst.arrayOffset() + dst.limit(); 1.60 - dp = (dp <= dl ? dp : dl); 1.61 + char[] sa = src.array(); 1.62 + int sp = src.arrayOffset() + src.position(); 1.63 + int sl = src.arrayOffset() + src.limit(); 1.64 + sp = (sp <= sl ? sp : sl); 1.65 + byte[] da = dst.array(); 1.66 + int dp = dst.arrayOffset() + dst.position(); 1.67 + int dl = dst.arrayOffset() + dst.limit(); 1.68 + dp = (dp <= dl ? dp : dl); 1.69 1.70 - try { 1.71 - while (sp < sl) { 1.72 - char c = sa[sp]; 1.73 - if (Surrogate.is(c)) { 1.74 - if (sgp.parse(c, sa, sp, sl) < 0) 1.75 - return sgp.error(); 1.76 - return sgp.unmappableResult(); 1.77 - } 1.78 - if (c >= '\uFFFE') 1.79 - return CoderResult.unmappableForLength(1); 1.80 - if (dl - dp < 1) 1.81 - return CoderResult.OVERFLOW; 1.82 + try { 1.83 + while (sp < sl) { 1.84 + char c = sa[sp]; 1.85 + if (Surrogate.is(c)) { 1.86 + if (sgp.parse(c, sa, sp, sl) < 0) 1.87 + return sgp.error(); 1.88 + return sgp.unmappableResult(); 1.89 + } 1.90 + if (c >= '\uFFFE') 1.91 + return CoderResult.unmappableForLength(1); 1.92 + if (dl - dp < 1) 1.93 + return CoderResult.OVERFLOW; 1.94 1.95 - char e = index2.charAt(index1[(c & mask1) >> shift] 1.96 - + (c & mask2)); 1.97 + char e = index2.charAt(index1[(c & mask1) >> shift] 1.98 + + (c & mask2)); 1.99 1.100 - // If output byte is zero because input char is zero 1.101 - // then character is mappable, o.w. fail 1.102 - if (e == '\u0000' && c != '\u0000') 1.103 - return CoderResult.unmappableForLength(1); 1.104 + // If output byte is zero because input char is zero 1.105 + // then character is mappable, o.w. fail 1.106 + if (e == '\u0000' && c != '\u0000') 1.107 + return CoderResult.unmappableForLength(1); 1.108 1.109 - sp++; 1.110 - da[dp++] = (byte)e; 1.111 - } 1.112 - return CoderResult.UNDERFLOW; 1.113 - } finally { 1.114 - src.position(sp - src.arrayOffset()); 1.115 - dst.position(dp - dst.arrayOffset()); 1.116 - } 1.117 + sp++; 1.118 + da[dp++] = (byte)e; 1.119 + } 1.120 + return CoderResult.UNDERFLOW; 1.121 + } finally { 1.122 + src.position(sp - src.arrayOffset()); 1.123 + dst.position(dp - dst.arrayOffset()); 1.124 + } 1.125 } 1.126 1.127 private CoderResult encodeBufferLoop(CharBuffer src, ByteBuffer dst) { 1.128 - int mark = src.position(); 1.129 - try { 1.130 - while (src.hasRemaining()) { 1.131 - char c = src.get(); 1.132 - if (Surrogate.is(c)) { 1.133 - if (sgp.parse(c, src) < 0) 1.134 - return sgp.error(); 1.135 - return sgp.unmappableResult(); 1.136 - } 1.137 - if (c >= '\uFFFE') 1.138 - return CoderResult.unmappableForLength(1); 1.139 - if (!dst.hasRemaining()) 1.140 - return CoderResult.OVERFLOW; 1.141 + int mark = src.position(); 1.142 + try { 1.143 + while (src.hasRemaining()) { 1.144 + char c = src.get(); 1.145 + if (Surrogate.is(c)) { 1.146 + if (sgp.parse(c, src) < 0) 1.147 + return sgp.error(); 1.148 + return sgp.unmappableResult(); 1.149 + } 1.150 + if (c >= '\uFFFE') 1.151 + return CoderResult.unmappableForLength(1); 1.152 + if (!dst.hasRemaining()) 1.153 + return CoderResult.OVERFLOW; 1.154 1.155 - char e = index2.charAt(index1[(c & mask1) >> shift] 1.156 - + (c & mask2)); 1.157 + char e = index2.charAt(index1[(c & mask1) >> shift] 1.158 + + (c & mask2)); 1.159 1.160 - // If output byte is zero because input char is zero 1.161 - // then character is mappable, o.w. fail 1.162 - if (e == '\u0000' && c != '\u0000') 1.163 - return CoderResult.unmappableForLength(1); 1.164 + // If output byte is zero because input char is zero 1.165 + // then character is mappable, o.w. fail 1.166 + if (e == '\u0000' && c != '\u0000') 1.167 + return CoderResult.unmappableForLength(1); 1.168 1.169 - mark++; 1.170 - dst.put((byte)e); 1.171 - } 1.172 - return CoderResult.UNDERFLOW; 1.173 - } finally { 1.174 - src.position(mark); 1.175 - } 1.176 + mark++; 1.177 + dst.put((byte)e); 1.178 + } 1.179 + return CoderResult.UNDERFLOW; 1.180 + } finally { 1.181 + src.position(mark); 1.182 + } 1.183 } 1.184 1.185 protected CoderResult encodeLoop(CharBuffer src, ByteBuffer dst) { 1.186 - if (true && src.hasArray() && dst.hasArray()) 1.187 - return encodeArrayLoop(src, dst); 1.188 - else 1.189 - return encodeBufferLoop(src, dst); 1.190 + if (true && src.hasArray() && dst.hasArray()) 1.191 + return encodeArrayLoop(src, dst); 1.192 + else 1.193 + return encodeBufferLoop(src, dst); 1.194 } 1.195 1.196 public byte encode(char inputChar) { 1.197 - return (byte)index2.charAt(index1[(inputChar & mask1) >> shift] + 1.198 - (inputChar & mask2)); 1.199 + return (byte)index2.charAt(index1[(inputChar & mask1) >> shift] + 1.200 + (inputChar & mask2)); 1.201 } 1.202 }