mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
Merge
This commit is contained in:
commit
c2735a15d7
26 changed files with 7676 additions and 143 deletions
|
@ -1143,6 +1143,23 @@ public class ArrayList<E> extends AbstractList<E>
|
|||
return modified;
|
||||
}
|
||||
|
||||
public Object[] toArray() {
|
||||
checkForComodification();
|
||||
return Arrays.copyOfRange(root.elementData, offset, offset + size);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T> T[] toArray(T[] a) {
|
||||
checkForComodification();
|
||||
if (a.length < size)
|
||||
return (T[]) Arrays.copyOfRange(
|
||||
root.elementData, offset, offset + size, a.getClass());
|
||||
System.arraycopy(root.elementData, offset, a, 0, size);
|
||||
if (a.length > size)
|
||||
a[size] = null;
|
||||
return a;
|
||||
}
|
||||
|
||||
public Iterator<E> iterator() {
|
||||
return listIterator();
|
||||
}
|
||||
|
|
|
@ -116,8 +116,8 @@ public class Base64 {
|
|||
*
|
||||
* @param lineLength
|
||||
* the length of each output line (rounded down to nearest multiple
|
||||
* of 4). If {@code lineLength <= 0} the output will not be separated
|
||||
* in lines
|
||||
* of 4). If the rounded down line length is not a positive value,
|
||||
* the output will not be separated in lines
|
||||
* @param lineSeparator
|
||||
* the line separator for each output line
|
||||
*
|
||||
|
@ -135,10 +135,12 @@ public class Base64 {
|
|||
throw new IllegalArgumentException(
|
||||
"Illegal base64 line separator character 0x" + Integer.toString(b, 16));
|
||||
}
|
||||
// round down to nearest multiple of 4
|
||||
lineLength &= ~0b11;
|
||||
if (lineLength <= 0) {
|
||||
return Encoder.RFC4648;
|
||||
}
|
||||
return new Encoder(false, lineSeparator, lineLength >> 2 << 2, true);
|
||||
return new Encoder(false, lineSeparator, lineLength, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -236,10 +236,8 @@ public class DoubleByte {
|
|||
int b2 = src[sp++] & 0xff;
|
||||
if (b2 < b2Min || b2 > b2Max ||
|
||||
(c = b2c[b1][b2 - b2Min]) == UNMAPPABLE_DECODING) {
|
||||
if (b2c[b1] == B2C_UNMAPPABLE || // isNotLeadingByte
|
||||
b2c[b2] != B2C_UNMAPPABLE || // isLeadingByte
|
||||
decodeSingle(b2) != UNMAPPABLE_DECODING) {
|
||||
sp--;
|
||||
if (crMalformedOrUnmappable(b1, b2).length() == 1) {
|
||||
sp--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -472,6 +470,13 @@ public class DoubleByte {
|
|||
b2cSB_UNMAPPABLE = new char[0x100];
|
||||
Arrays.fill(b2cSB_UNMAPPABLE, UNMAPPABLE_DECODING);
|
||||
}
|
||||
|
||||
// always returns unmappableForLenth(2) for doublebyte_only
|
||||
@Override
|
||||
protected CoderResult crMalformedOrUnmappable(int b1, int b2) {
|
||||
return CoderResult.unmappableForLength(2);
|
||||
}
|
||||
|
||||
public Decoder_DBCSONLY(Charset cs, char[][] b2c, char[] b2cSB, int b2Min, int b2Max,
|
||||
boolean isASCIICompatible) {
|
||||
super(cs, 0.5f, 1.0f, b2c, b2cSB_UNMAPPABLE, b2Min, b2Max, isASCIICompatible);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue