Skip to content

Commit f9b424e

Browse files
committed
Update ApplicationLayerOnlyImageSingleton documentation.
1 parent ae4e835 commit f9b424e

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/layeredimagesingleton/ApplicationLayerOnlyImageSingleton.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,18 @@
2727
import org.graalvm.nativeimage.ImageSingletons;
2828

2929
import com.oracle.svm.core.SubstrateOptions;
30+
import com.oracle.svm.core.graal.nodes.LoadImageSingletonNode;
3031
import com.oracle.svm.core.option.HostedOptionValues;
3132

3233
/**
3334
* Identifies a singleton for which all lookups refer to a single singleton which will be created in
3435
* the application layer. See {@link LayeredImageSingleton} for full explanation.
36+
* <p>
37+
* Referring to fields of an {@link ApplicationLayerOnlyImageSingleton} object from a code compiled
38+
* in a shared layer, i.e., even before the value of the field can be known, is safe because an
39+
* {@link ApplicationLayerOnlyImageSingleton} will never be constant-folded in a shared layer. It is
40+
* instead implemented via {@link LoadImageSingletonNode} which is lowered to a singleton table
41+
* read.
3542
*/
3643
public interface ApplicationLayerOnlyImageSingleton extends LayeredImageSingleton {
3744

0 commit comments

Comments
 (0)