Skip to content

Commit 591fb0c

Browse files
author
Elia Trachsel
committed
[GR-70216] [GR-70172] Bug fix jdk version issue and missing TruffleBoundary:
PullRequest: graal/22303
2 parents 799587c + 3cdf18f commit 591fb0c

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/libs/InformationLeak.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ public boolean isReusePortAvailable0() {
117117
}
118118
}
119119

120+
@TruffleBoundary
120121
public boolean istty() {
121122
if (!(context.getEnv().in() == System.in && context.getEnv().out() == System.out)) {
122123
return false;

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/libs/libjava/impl/Target_java_io_Console.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
*/
2323
package com.oracle.truffle.espresso.libs.libjava.impl;
2424

25-
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
2625
import com.oracle.truffle.espresso.libs.InformationLeak;
2726
import com.oracle.truffle.espresso.libs.libjava.LibJava;
2827
import com.oracle.truffle.espresso.meta.Meta;
@@ -36,7 +35,6 @@
3635
@EspressoSubstitutions(group = LibJava.class)
3736
public final class Target_java_io_Console {
3837
@Substitution
39-
@TruffleBoundary
4038
public static boolean istty(@Inject InformationLeak iL) {
4139
return iL.istty();
4240
}

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/libs/libjava/impl/Target_java_lang_System.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ public static final class Raw {
8181
@TruffleBoundary
8282
public static @JavaType(String[].class) StaticObject platformProperties(@Inject EspressoContext ctx, @Inject TruffleIO io) {
8383
// Import properties from host.
84+
// All of those assignments should be considered as InformationLeaks!
8485
Props props = new Props(ctx);
8586
String[] known = new String[props.fixedLength];
8687
known[props.userHomeNdx] = java.lang.System.getProperty("user.home");
@@ -93,10 +94,10 @@ public static final class Raw {
9394
}
9495
if (ctx.getJavaVersion().java25OrLater()) {
9596
known[props.nativeEncodingNDX] = java.lang.System.getProperty("native.encoding");
97+
known[props.stdinEncodingNdx] = java.lang.System.getProperty("stdin.encoding");
9698
}
9799
known[props.stdoutEncodingNdx] = java.lang.System.getProperty("stdout.encoding");
98100
known[props.stderrEncodingNdx] = java.lang.System.getProperty("stderr.encoding");
99-
known[props.stdinEncodingNdx] = java.lang.System.getProperty("stdin.encoding");
100101

101102
known[props.osNameNdx] = java.lang.System.getProperty("os.name");
102103
known[props.osArchNdx] = java.lang.System.getProperty("os.arch");
@@ -150,8 +151,6 @@ private static final class Props {
150151
private final int displayLanguageNdx;
151152
private final int displayScriptNdx;
152153
private final int displayVariantNdx;
153-
// only in 21-
154-
private final int fileEncodingNdx;
155154
private final int fileSeparatorNdx;
156155
private final int formatCountryNdx;
157156
private final int formatLanguageNdx;
@@ -171,13 +170,10 @@ private static final class Props {
171170
private final int osNameNdx;
172171
private final int osVersionNdx;
173172
private final int pathSeparatorNdx;
174-
// only in 25+
175-
private final int nativeEncodingNDX;
176173
private final int socksNonProxyHostsNdx;
177174
private final int socksProxyHostNdx;
178175
private final int socksProxyPortNdx;
179176
private final int stderrEncodingNdx;
180-
private final int stdinEncodingNdx;
181177
private final int stdoutEncodingNdx;
182178
private final int sunArchAbiNdx;
183179
private final int sunArchDataModelNdx;
@@ -190,6 +186,11 @@ private static final class Props {
190186
private final int userHomeNdx;
191187
private final int userNameNdx;
192188
private final int fixedLength;
189+
// only in 21-
190+
private final int fileEncodingNdx;
191+
// only in 25+
192+
private final int nativeEncodingNDX;
193+
private final int stdinEncodingNdx;
193194

194195
private Props(EspressoContext ctx) {
195196
ObjectKlass guestRaw = ctx.getMeta().jdk_internal_util_SystemProps_Raw;
@@ -204,8 +205,10 @@ private Props(EspressoContext ctx) {
204205
}
205206
if (ctx.getJavaVersion().java25OrLater()) {
206207
nativeEncodingNDX = guestRaw.lookupDeclaredField(ctx.getNames().getOrCreate("_native_encoding_NDX"), Types._int).getInt(guestRaw.tryInitializeAndGetStatics());
208+
stdinEncodingNdx = guestRaw.lookupDeclaredField(ctx.getNames().getOrCreate("_stdin_encoding_NDX"), Types._int).getInt(guestRaw.tryInitializeAndGetStatics());
207209
} else {
208210
nativeEncodingNDX = -1;
211+
stdinEncodingNdx = -1;
209212
}
210213
fileSeparatorNdx = guestRaw.lookupDeclaredField(ctx.getNames().getOrCreate("_file_separator_NDX"), Types._int).getInt(guestRaw.tryInitializeAndGetStatics());
211214
formatCountryNdx = guestRaw.lookupDeclaredField(ctx.getNames().getOrCreate("_format_country_NDX"), Types._int).getInt(guestRaw.tryInitializeAndGetStatics());
@@ -230,7 +233,6 @@ private Props(EspressoContext ctx) {
230233
socksProxyHostNdx = guestRaw.lookupDeclaredField(ctx.getNames().getOrCreate("_socksProxyHost_NDX"), Types._int).getInt(guestRaw.tryInitializeAndGetStatics());
231234
socksProxyPortNdx = guestRaw.lookupDeclaredField(ctx.getNames().getOrCreate("_socksProxyPort_NDX"), Types._int).getInt(guestRaw.tryInitializeAndGetStatics());
232235
stderrEncodingNdx = guestRaw.lookupDeclaredField(ctx.getNames().getOrCreate("_stderr_encoding_NDX"), Types._int).getInt(guestRaw.tryInitializeAndGetStatics());
233-
stdinEncodingNdx = guestRaw.lookupDeclaredField(ctx.getNames().getOrCreate("_stdin_encoding_NDX"), Types._int).getInt(guestRaw.tryInitializeAndGetStatics());
234236
stdoutEncodingNdx = guestRaw.lookupDeclaredField(ctx.getNames().getOrCreate("_stdout_encoding_NDX"), Types._int).getInt(guestRaw.tryInitializeAndGetStatics());
235237
sunArchAbiNdx = guestRaw.lookupDeclaredField(ctx.getNames().getOrCreate("_sun_arch_abi_NDX"), Types._int).getInt(guestRaw.tryInitializeAndGetStatics());
236238
sunArchDataModelNdx = guestRaw.lookupDeclaredField(ctx.getNames().getOrCreate("_sun_arch_data_model_NDX"), Types._int).getInt(guestRaw.tryInitializeAndGetStatics());

0 commit comments

Comments
 (0)