Skip to content

Commit d6ab2a5

Browse files
committed
Persist unsafe accessed across layers
1 parent 1684062 commit d6ab2a5

File tree

4 files changed

+26
-12
lines changed

4 files changed

+26
-12
lines changed

substratevm/src/com.oracle.svm.hosted/resources/SharedLayerSnapshotCapnProtoSchema.capnp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,13 @@ struct PersistedAnalysisField {
144144
isRead @9 :Bool;
145145
isWritten @10 :Bool;
146146
isFolded @11 :Bool;
147-
isStatic @12 :Bool;
148-
isSynthetic @13 :Bool;
149-
annotationList @14 :List(Annotation);
150-
name @15 :Text;
151-
priorInstalledLayerNum @16 :Int32;
152-
assignmentStatus @17 :Int32;
147+
isUnsafeAccessed @12 :Bool;
148+
isStatic @13 :Bool;
149+
isSynthetic @14 :Bool;
150+
annotationList @15 :List(Annotation);
151+
name @16 :Text;
152+
priorInstalledLayerNum @17 :Int32;
153+
assignmentStatus @18 :Int32;
153154
}
154155

155156
struct CEntryPointLiteralReference {

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/imagelayer/SVMImageLayerLoader.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1290,6 +1290,7 @@ public void initializeBaseLayerField(AnalysisField analysisField) {
12901290
analysisField.registerAsWritten(PERSISTED);
12911291
});
12921292
registerFlag(fieldData.getIsFolded(), debug -> analysisField.registerAsFolded(PERSISTED));
1293+
registerFlag(fieldData.getIsUnsafeAccessed(), debug -> analysisField.registerAsUnsafeAccessed(PERSISTED));
12931294
}
12941295

12951296
private PersistedAnalysisField.Reader getFieldData(AnalysisField analysisField) {

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/imagelayer/SVMImageLayerWriter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,7 @@ private void persistField(AnalysisField field, Supplier<PersistedAnalysisField.B
664664
builder.setIsRead(field.getReadReason() != null);
665665
builder.setIsWritten(field.getWrittenReason() != null);
666666
builder.setIsFolded(field.getFoldedReason() != null);
667+
builder.setIsUnsafeAccessed(field.isUnsafeAccessed());
667668

668669
Field originalField = OriginalFieldProvider.getJavaField(field);
669670
if (originalField != null && !originalField.getDeclaringClass().equals(field.getDeclaringClass().getJavaClass())) {

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/imagelayer/SharedLayerSnapshotCapnProtoSchemaHolder.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2170,20 +2170,27 @@ public final void setIsFolded(boolean value) {
21702170
_setBooleanField(196, value);
21712171
}
21722172

2173-
public final boolean getIsStatic() {
2173+
public final boolean getIsUnsafeAccessed() {
21742174
return _getBooleanField(197);
21752175
}
2176-
public final void setIsStatic(boolean value) {
2176+
public final void setIsUnsafeAccessed(boolean value) {
21772177
_setBooleanField(197, value);
21782178
}
21792179

2180-
public final boolean getIsSynthetic() {
2180+
public final boolean getIsStatic() {
21812181
return _getBooleanField(198);
21822182
}
2183-
public final void setIsSynthetic(boolean value) {
2183+
public final void setIsStatic(boolean value) {
21842184
_setBooleanField(198, value);
21852185
}
21862186

2187+
public final boolean getIsSynthetic() {
2188+
return _getBooleanField(199);
2189+
}
2190+
public final void setIsSynthetic(boolean value) {
2191+
_setBooleanField(199, value);
2192+
}
2193+
21872194
public final boolean hasAnnotationList() {
21882195
return !_pointerFieldIsNull(1);
21892196
}
@@ -2283,14 +2290,18 @@ public final boolean getIsFolded() {
22832290
return _getBooleanField(196);
22842291
}
22852292

2286-
public final boolean getIsStatic() {
2293+
public final boolean getIsUnsafeAccessed() {
22872294
return _getBooleanField(197);
22882295
}
22892296

2290-
public final boolean getIsSynthetic() {
2297+
public final boolean getIsStatic() {
22912298
return _getBooleanField(198);
22922299
}
22932300

2301+
public final boolean getIsSynthetic() {
2302+
return _getBooleanField(199);
2303+
}
2304+
22942305
public final boolean hasAnnotationList() {
22952306
return !_pointerFieldIsNull(1);
22962307
}

0 commit comments

Comments
 (0)