3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-03-04 04:30:23 +00:00

Merge pull request #8838 from Z3Prover/copilot/fix-no-such-field-error

Fix NoSuchFieldError in Java JNI wrapper for BOOL OUT/INOUT parameters
This commit is contained in:
Nikolaj Bjorner 2026-03-02 19:10:21 -08:00 committed by GitHub
commit d40c4721d8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -852,12 +852,18 @@ def mk_java(java_src, java_dir, package_name):
java_wrapper.write(' RELEASELONGAELEMS(a%s, _a%s);\n' % (i, i))
elif k == OUT or k == INOUT:
if param_type(param) == INT or param_type(param) == UINT or param_type(param) == BOOL:
if param_type(param) == INT or param_type(param) == UINT:
java_wrapper.write(' {\n')
java_wrapper.write(' jclass mc = jenv->GetObjectClass(a%s);\n' % i)
java_wrapper.write(' jfieldID fid = jenv->GetFieldID(mc, "value", "I");\n')
java_wrapper.write(' jenv->SetIntField(a%s, fid, (jint) _a%s);\n' % (i, i))
java_wrapper.write(' }\n')
elif param_type(param) == BOOL:
java_wrapper.write(' {\n')
java_wrapper.write(' jclass mc = jenv->GetObjectClass(a%s);\n' % i)
java_wrapper.write(' jfieldID fid = jenv->GetFieldID(mc, "value", "Z");\n')
java_wrapper.write(' jenv->SetBooleanField(a%s, fid, (jboolean) _a%s);\n' % (i, i))
java_wrapper.write(' }\n')
elif param_type(param) == STRING:
java_wrapper.write(' {\n')
java_wrapper.write(' jclass mc = jenv->GetObjectClass(a%s);\n' % i)