8074980: add WhiteBox API to get a flag value for a method
Reviewed-by: kvn, fzhinkin
This commit is contained in:
parent
b5eaf480f9
commit
8a235045ca
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -27,6 +27,7 @@ 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;
|
||||
@ -250,6 +251,23 @@ public class WhiteBox {
|
||||
}
|
||||
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user