8150180: String.value contents should be trusted
Reviewed-by: vlivanov, redestad, jrose, twisti
This commit is contained in:
parent
d147a661d8
commit
ef5eb42e40
@ -42,6 +42,7 @@ import java.util.regex.PatternSyntaxException;
|
|||||||
import java.util.stream.IntStream;
|
import java.util.stream.IntStream;
|
||||||
import java.util.stream.StreamSupport;
|
import java.util.stream.StreamSupport;
|
||||||
import jdk.internal.HotSpotIntrinsicCandidate;
|
import jdk.internal.HotSpotIntrinsicCandidate;
|
||||||
|
import jdk.internal.vm.annotation.Stable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The {@code String} class represents character strings. All
|
* The {@code String} class represents character strings. All
|
||||||
@ -119,7 +120,18 @@ import jdk.internal.HotSpotIntrinsicCandidate;
|
|||||||
public final class String
|
public final class String
|
||||||
implements java.io.Serializable, Comparable<String>, CharSequence {
|
implements java.io.Serializable, Comparable<String>, CharSequence {
|
||||||
|
|
||||||
/** The value is used for character storage. */
|
/**
|
||||||
|
* The value is used for character storage.
|
||||||
|
*
|
||||||
|
* @implNote This field is trusted by the VM, and is a subject to
|
||||||
|
* constant folding if String instance is constant. Overwriting this
|
||||||
|
* field after construction will cause problems.
|
||||||
|
*
|
||||||
|
* Additionally, it is marked with {@link Stable} to trust the contents
|
||||||
|
* of the array. No other facility in JDK provides this functionality (yet).
|
||||||
|
* {@link Stable} is safe here, because value is never null.
|
||||||
|
*/
|
||||||
|
@Stable
|
||||||
private final byte[] value;
|
private final byte[] value;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -129,6 +141,9 @@ public final class String
|
|||||||
* LATIN1
|
* LATIN1
|
||||||
* UTF16
|
* UTF16
|
||||||
*
|
*
|
||||||
|
* @implNote This field is trusted by the VM, and is a subject to
|
||||||
|
* constant folding if String instance is constant. Overwriting this
|
||||||
|
* field after construction will cause problems.
|
||||||
*/
|
*/
|
||||||
private final byte coder;
|
private final byte coder;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user