Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/hotspot/jtreg/compiler/profiling/spectrapredefineclass_classloaders/Test.java
41155 views
1
package compiler.profiling.spectrapredefineclass_classloaders;
2
3
import java.lang.reflect.Method;
4
5
public class Test {
6
7
public boolean m1(A a, Boolean early_return) {
8
if (early_return.booleanValue()) return true;
9
boolean res = m2(a);
10
return res;
11
}
12
13
public boolean m2(A a) {
14
boolean res = false;
15
if (a.getClass() == B.class) {
16
a.m();
17
} else {
18
res = true;
19
}
20
return res;
21
}
22
23
public void m3(ClassLoader loader) throws Exception {
24
String packageName = Test.class.getPackage().getName();
25
Class Test_class = loader.loadClass(packageName + ".Test");
26
Object test = Test_class.newInstance();
27
Class A_class = loader.loadClass(packageName + ".A");
28
Object a = A_class.newInstance();
29
Class B_class = loader.loadClass(packageName + ".B");
30
Object b = B_class.newInstance();
31
Method m1 = Test_class.getMethod("m1", A_class, Boolean.class);
32
33
// So we don't hit uncommon trap in the next loop
34
for (int i = 0; i < 4000; i++) {
35
m4(m1, test, a, Boolean.TRUE);
36
m4(m1, test, b, Boolean.TRUE);
37
}
38
for (int i = 0; i < 20000; i++) {
39
m4(m1, test, a, Boolean.FALSE);
40
}
41
for (int i = 0; i < 4; i++) {
42
m4(m1, test, b, Boolean.FALSE);
43
}
44
}
45
46
public Object m4(Method m, Object test, Object a, Object early_return) throws Exception {
47
return m.invoke(test, a, early_return);
48
}
49
50
static public A a = new A();
51
static public B b = new B();
52
}
53
54
55