Skip to content

Commit 055d1e7

Browse files
Improve assert for JNI static calls
1 parent a941826 commit 055d1e7

File tree

1 file changed

+20
-20
lines changed
  • espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/jni

1 file changed

+20
-20
lines changed

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/jni/JniEnv.java

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -961,7 +961,7 @@ public void CallVoidMethodVarargs(@JavaType(Object.class) StaticObject receiver,
961961
@Pointer TruffleObject varargsPtr) {
962962
Method method = methodIds().getObject(methodId);
963963
assert !method.isStatic();
964-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
964+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
965965
Object result = method.invokeDirect(popVarArgs(varargsPtr, method.getParsedSignature(), receiver));
966966
return getMeta().asObject(result);
967967
}
@@ -971,7 +971,7 @@ public boolean CallNonvirtualBooleanMethodVarargs(@JavaType(Object.class) Static
971971
@Pointer TruffleObject varargsPtr) {
972972
Method method = methodIds().getObject(methodId);
973973
assert !method.isStatic();
974-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
974+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
975975
Object result = method.invokeDirect(popVarArgs(varargsPtr, method.getParsedSignature(), receiver));
976976
return getMeta().asBoolean(result, true);
977977
}
@@ -981,7 +981,7 @@ public char CallNonvirtualCharMethodVarargs(@JavaType(Object.class) StaticObject
981981
@Pointer TruffleObject varargsPtr) {
982982
Method method = methodIds().getObject(methodId);
983983
assert !method.isStatic();
984-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
984+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
985985
Object result = method.invokeDirect(popVarArgs(varargsPtr, method.getParsedSignature(), receiver));
986986
return getMeta().asChar(result, true);
987987
}
@@ -991,7 +991,7 @@ public byte CallNonvirtualByteMethodVarargs(@JavaType(Object.class) StaticObject
991991
@Pointer TruffleObject varargsPtr) {
992992
Method method = methodIds().getObject(methodId);
993993
assert !method.isStatic();
994-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
994+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
995995
Object result = method.invokeDirect(popVarArgs(varargsPtr, method.getParsedSignature(), receiver));
996996
return getMeta().asByte(result, true);
997997
}
@@ -1001,7 +1001,7 @@ public short CallNonvirtualShortMethodVarargs(@JavaType(Object.class) StaticObje
10011001
@Pointer TruffleObject varargsPtr) {
10021002
Method method = methodIds().getObject(methodId);
10031003
assert !method.isStatic();
1004-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1004+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
10051005
Object result = method.invokeDirect(popVarArgs(varargsPtr, method.getParsedSignature(), receiver));
10061006
return getMeta().asShort(result, true);
10071007
}
@@ -1011,7 +1011,7 @@ public int CallNonvirtualIntMethodVarargs(@JavaType(Object.class) StaticObject r
10111011
@Pointer TruffleObject varargsPtr) {
10121012
Method method = methodIds().getObject(methodId);
10131013
assert !method.isStatic();
1014-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1014+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
10151015
Object result = method.invokeDirect(popVarArgs(varargsPtr, method.getParsedSignature(), receiver));
10161016
return getMeta().asInt(result, true);
10171017
}
@@ -1021,7 +1021,7 @@ public float CallNonvirtualFloatMethodVarargs(@JavaType(Object.class) StaticObje
10211021
@Pointer TruffleObject varargsPtr) {
10221022
Method method = methodIds().getObject(methodId);
10231023
assert !method.isStatic();
1024-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1024+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
10251025
Object result = method.invokeDirect(popVarArgs(varargsPtr, method.getParsedSignature(), receiver));
10261026
return getMeta().asFloat(result, true);
10271027
}
@@ -1031,7 +1031,7 @@ public double CallNonvirtualDoubleMethodVarargs(@JavaType(Object.class) StaticOb
10311031
@Pointer TruffleObject varargsPtr) {
10321032
Method method = methodIds().getObject(methodId);
10331033
assert !method.isStatic();
1034-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1034+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
10351035
Object result = method.invokeDirect(popVarArgs(varargsPtr, method.getParsedSignature(), receiver));
10361036
return getMeta().asDouble(result, true);
10371037
}
@@ -1041,7 +1041,7 @@ public long CallNonvirtualLongMethodVarargs(@JavaType(Object.class) StaticObject
10411041
@Pointer TruffleObject varargsPtr) {
10421042
Method method = methodIds().getObject(methodId);
10431043
assert !method.isStatic();
1044-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1044+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
10451045
Object result = method.invokeDirect(popVarArgs(varargsPtr, method.getParsedSignature(), receiver));
10461046
return getMeta().asLong(result, true);
10471047
}
@@ -1051,7 +1051,7 @@ public void CallNonvirtualVoidMethodVarargs(@JavaType(Object.class) StaticObject
10511051
@Pointer TruffleObject varargsPtr) {
10521052
Method method = methodIds().getObject(methodId);
10531053
assert !method.isStatic();
1054-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1054+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
10551055
Object result = method.invokeDirect(popVarArgs(varargsPtr, method.getParsedSignature(), receiver));
10561056
assert result instanceof StaticObject && StaticObject.isNull((StaticObject) result) : "void methods must return StaticObject.NULL";
10571057
}
@@ -1064,7 +1064,7 @@ public void CallNonvirtualVoidMethodVarargs(@JavaType(Object.class) StaticObject
10641064
public @JavaType(Object.class) StaticObject CallStaticObjectMethodVarargs(@JavaType(Class.class) StaticObject clazz, @Handle(Method.class) long methodId, @Pointer TruffleObject varargsPtr) {
10651065
Method method = methodIds().getObject(methodId);
10661066
assert method.isStatic();
1067-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1067+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
10681068
Object result = method.invokeDirectStatic(popVarArgs(varargsPtr, method.getParsedSignature()));
10691069
return getMeta().asObject(result);
10701070
}
@@ -1073,7 +1073,7 @@ public void CallNonvirtualVoidMethodVarargs(@JavaType(Object.class) StaticObject
10731073
public boolean CallStaticBooleanMethodVarargs(@JavaType(Class.class) StaticObject clazz, @Handle(Method.class) long methodId, @Pointer TruffleObject varargsPtr) {
10741074
Method method = methodIds().getObject(methodId);
10751075
assert method.isStatic();
1076-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1076+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
10771077
Object result = method.invokeDirectStatic(popVarArgs(varargsPtr, method.getParsedSignature()));
10781078
return getMeta().asBoolean(result, true);
10791079
}
@@ -1082,7 +1082,7 @@ public boolean CallStaticBooleanMethodVarargs(@JavaType(Class.class) StaticObjec
10821082
public char CallStaticCharMethodVarargs(@JavaType(Class.class) StaticObject clazz, @Handle(Method.class) long methodId, @Pointer TruffleObject varargsPtr) {
10831083
Method method = methodIds().getObject(methodId);
10841084
assert method.isStatic();
1085-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1085+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
10861086
Object result = method.invokeDirectStatic(popVarArgs(varargsPtr, method.getParsedSignature()));
10871087
return getMeta().asChar(result, true);
10881088
}
@@ -1091,7 +1091,7 @@ public char CallStaticCharMethodVarargs(@JavaType(Class.class) StaticObject claz
10911091
public byte CallStaticByteMethodVarargs(@JavaType(Class.class) StaticObject clazz, @Handle(Method.class) long methodId, @Pointer TruffleObject varargsPtr) {
10921092
Method method = methodIds().getObject(methodId);
10931093
assert method.isStatic();
1094-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1094+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
10951095
Object result = method.invokeDirectStatic(popVarArgs(varargsPtr, method.getParsedSignature()));
10961096
return getMeta().asByte(result, true);
10971097
}
@@ -1100,7 +1100,7 @@ public byte CallStaticByteMethodVarargs(@JavaType(Class.class) StaticObject claz
11001100
public short CallStaticShortMethodVarargs(@JavaType(Class.class) StaticObject clazz, @Handle(Method.class) long methodId, @Pointer TruffleObject varargsPtr) {
11011101
Method method = methodIds().getObject(methodId);
11021102
assert method.isStatic();
1103-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1103+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
11041104
Object result = method.invokeDirectStatic(popVarArgs(varargsPtr, method.getParsedSignature()));
11051105
return getMeta().asShort(result, true);
11061106
}
@@ -1109,7 +1109,7 @@ public short CallStaticShortMethodVarargs(@JavaType(Class.class) StaticObject cl
11091109
public int CallStaticIntMethodVarargs(@JavaType(Class.class) StaticObject clazz, @Handle(Method.class) long methodId, @Pointer TruffleObject varargsPtr) {
11101110
Method method = methodIds().getObject(methodId);
11111111
assert method.isStatic();
1112-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1112+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
11131113
Object result = method.invokeDirectStatic(popVarArgs(varargsPtr, method.getParsedSignature()));
11141114
return getMeta().asInt(result, true);
11151115
}
@@ -1118,7 +1118,7 @@ public int CallStaticIntMethodVarargs(@JavaType(Class.class) StaticObject clazz,
11181118
public float CallStaticFloatMethodVarargs(@JavaType(Class.class) StaticObject clazz, @Handle(Method.class) long methodId, @Pointer TruffleObject varargsPtr) {
11191119
Method method = methodIds().getObject(methodId);
11201120
assert method.isStatic();
1121-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1121+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
11221122
Object result = method.invokeDirectStatic(popVarArgs(varargsPtr, method.getParsedSignature()));
11231123
return getMeta().asFloat(result, true);
11241124
}
@@ -1127,7 +1127,7 @@ public float CallStaticFloatMethodVarargs(@JavaType(Class.class) StaticObject cl
11271127
public double CallStaticDoubleMethodVarargs(@JavaType(Class.class) StaticObject clazz, @Handle(Method.class) long methodId, @Pointer TruffleObject varargsPtr) {
11281128
Method method = methodIds().getObject(methodId);
11291129
assert method.isStatic();
1130-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1130+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
11311131
Object result = method.invokeDirectStatic(popVarArgs(varargsPtr, method.getParsedSignature()));
11321132
return getMeta().asDouble(result, true);
11331133
}
@@ -1136,7 +1136,7 @@ public double CallStaticDoubleMethodVarargs(@JavaType(Class.class) StaticObject
11361136
public long CallStaticLongMethodVarargs(@JavaType(Class.class) StaticObject clazz, @Handle(Method.class) long methodId, @Pointer TruffleObject varargsPtr) {
11371137
Method method = methodIds().getObject(methodId);
11381138
assert method.isStatic();
1139-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1139+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
11401140
Object result = method.invokeDirectStatic(popVarArgs(varargsPtr, method.getParsedSignature()));
11411141
return getMeta().asLong(result, true);
11421142
}
@@ -1145,7 +1145,7 @@ public long CallStaticLongMethodVarargs(@JavaType(Class.class) StaticObject claz
11451145
public void CallStaticVoidMethodVarargs(@JavaType(Class.class) StaticObject clazz, @Handle(Method.class) long methodId, @Pointer TruffleObject varargsPtr) {
11461146
Method method = methodIds().getObject(methodId);
11471147
assert method.isStatic();
1148-
assert (clazz.getMirrorKlass(getMeta())) == method.getDeclaringKlass();
1148+
assert method.getDeclaringKlass().isAssignableFrom(clazz.getMirrorKlass(getMeta()));
11491149
Object result = method.invokeDirectStatic(popVarArgs(varargsPtr, method.getParsedSignature()));
11501150
assert result instanceof StaticObject && StaticObject.isNull((StaticObject) result) : "void methods must return StaticObject.NULL";
11511151
}

0 commit comments

Comments
 (0)