@@ -682,40 +682,7 @@ protected void implReplaceWith(byte[] newReplacement) {
682682 }
683683
684684 @ Override
685- public int encode (char [] src , int sp , int len , byte [] dst ) {
686- int dp = 0 ;
687- int sl = sp + len ;
688- if (isASCIICompatible ) {
689- int n = JLA .encodeASCII (src , sp , dst , dp , len );
690- sp += n ;
691- dp += n ;
692- }
693- while (sp < sl ) {
694- char c = src [sp ++];
695- int bb = encodeChar (c );
696- if (bb == UNMAPPABLE_ENCODING ) {
697- if (Character .isHighSurrogate (c ) && sp < sl &&
698- Character .isLowSurrogate (src [sp ])) {
699- sp ++;
700- }
701- dst [dp ++] = repl [0 ];
702- if (repl .length > 1 )
703- dst [dp ++] = repl [1 ];
704- continue ;
705- } //else
706- if (bb > MAX_SINGLEBYTE ) { // DoubleByte
707- dst [dp ++] = (byte )(bb >> 8 );
708- dst [dp ++] = (byte )bb ;
709- } else { // SingleByte
710- dst [dp ++] = (byte )bb ;
711- }
712- }
713- return dp ;
714- }
715-
716- @ Override
717- public int encodeFromLatin1 (byte [] src , int sp , int len , byte [] dst ) {
718- int dp = 0 ;
685+ public int encodeFromLatin1 (byte [] src , int sp , int len , byte [] dst , int dp ) {
719686 int sl = sp + len ;
720687 while (sp < sl ) {
721688 char c = (char )(src [sp ++] & 0xff );
@@ -740,8 +707,7 @@ public int encodeFromLatin1(byte[] src, int sp, int len, byte[] dst) {
740707 }
741708
742709 @ Override
743- public int encodeFromUTF16 (byte [] src , int sp , int len , byte [] dst ) {
744- int dp = 0 ;
710+ public int encodeFromUTF16 (byte [] src , int sp , int len , byte [] dst , int dp ) {
745711 int sl = sp + len ;
746712 while (sp < sl ) {
747713 char c = StringUTF16 .getChar (src , sp ++);
@@ -1000,49 +966,7 @@ protected CoderResult encodeBufferLoop(CharBuffer src, ByteBuffer dst) {
1000966 }
1001967
1002968 @ Override
1003- public int encode (char [] src , int sp , int len , byte [] dst ) {
1004- int dp = 0 ;
1005- int sl = sp + len ;
1006- while (sp < sl ) {
1007- char c = src [sp ++];
1008- int bb = encodeChar (c );
1009-
1010- if (bb == UNMAPPABLE_ENCODING ) {
1011- if (Character .isHighSurrogate (c ) && sp < sl &&
1012- Character .isLowSurrogate (src [sp ])) {
1013- sp ++;
1014- }
1015- dst [dp ++] = repl [0 ];
1016- if (repl .length > 1 )
1017- dst [dp ++] = repl [1 ];
1018- continue ;
1019- } //else
1020- if (bb > MAX_SINGLEBYTE ) { // DoubleByte
1021- if (currentState == SBCS ) {
1022- currentState = DBCS ;
1023- dst [dp ++] = SO ;
1024- }
1025- dst [dp ++] = (byte )(bb >> 8 );
1026- dst [dp ++] = (byte )bb ;
1027- } else { // SingleByte
1028- if (currentState == DBCS ) {
1029- currentState = SBCS ;
1030- dst [dp ++] = SI ;
1031- }
1032- dst [dp ++] = (byte )bb ;
1033- }
1034- }
1035-
1036- if (currentState == DBCS ) {
1037- currentState = SBCS ;
1038- dst [dp ++] = SI ;
1039- }
1040- return dp ;
1041- }
1042-
1043- @ Override
1044- public int encodeFromLatin1 (byte [] src , int sp , int len , byte [] dst ) {
1045- int dp = 0 ;
969+ public int encodeFromLatin1 (byte [] src , int sp , int len , byte [] dst , int dp ) {
1046970 int sl = sp + len ;
1047971 while (sp < sl ) {
1048972 char c = (char )(src [sp ++] & 0xff );
@@ -1077,8 +1001,7 @@ public int encodeFromLatin1(byte[] src, int sp, int len, byte[] dst) {
10771001 }
10781002
10791003 @ Override
1080- public int encodeFromUTF16 (byte [] src , int sp , int len , byte [] dst ) {
1081- int dp = 0 ;
1004+ public int encodeFromUTF16 (byte [] src , int sp , int len , byte [] dst , int dp ) {
10821005 int sl = sp + len ;
10831006 while (sp < sl ) {
10841007 char c = StringUTF16 .getChar (src , sp ++);
0 commit comments