< prev index next >

test/lib/sun/hotspot/WhiteBox.java

Print this page
rev 1371 : 8074980: add WhiteBox API to get a flag value for a method
Reviewed-by:

*** 25,34 **** --- 25,35 ---- package sun.hotspot; import java.lang.reflect.Executable; import java.util.Arrays; import java.util.List; + import java.util.function.BiFunction; import java.util.function.Function; import java.util.stream.Stream; import java.security.BasicPermission; import sun.hotspot.parser.DiagnosticCommand;
*** 248,256 **** --- 249,274 ---- if (offset == -1) { throw new RuntimeException(name + " not found"); } return offset; } + public native Boolean getMethodBooleanOption(Executable method, String name); + public native Long getMethodIntxOption(Executable method, String name); + public native Long getMethodUintxOption(Executable method, String name); + public native Double getMethodDoubleOption(Executable method, String name); + public native String getMethodStringOption(Executable method, String name); + private final List<BiFunction<Executable,String,Object>> methodOptionGetters + = Arrays.asList(this::getMethodBooleanOption, this::getMethodIntxOption, + this::getMethodUintxOption, this::getMethodDoubleOption, + this::getMethodStringOption); + + public Object getMethodOption(Executable method, String name) { + return methodOptionGetters.stream() + .map(f -> f.apply(method, name)) + .filter(x -> x != null) + .findAny() + .orElse(null); + } // Safepoint Checking public native void assertMatchingSafepointCalls(boolean mutexSafepointValue, boolean attemptedNoSafepointValue); }
< prev index next >