projects
/
ldk-java
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
38853aa
)
Handle Java exceptions thrown in calls from C, printing and aborting
v0.0.98.3
author
Matt Corallo
<git@bluematt.me>
Tue, 22 Jun 2021 21:55:12 +0000
(21:55 +0000)
committer
Matt Corallo
<git@bluematt.me>
Wed, 23 Jun 2021 00:14:15 +0000
(
00:14
+0000)
Closes #23.
java_strings.py
patch
|
blob
|
history
diff --git
a/java_strings.py
b/java_strings.py
index 7f82567ef408adbb16ab25c58bb0ac857d026cc7..c38d23b2f98725286050903cafe6990b5efb364e 100644
(file)
--- a/
java_strings.py
+++ b/
java_strings.py
@@
-854,6
+854,12
@@
import java.util.Arrays;
else:
out_c = out_c + ", " + arg_info.arg_name
out_c = out_c + ");\n"
else:
out_c = out_c + ", " + arg_info.arg_name
out_c = out_c + ");\n"
+
+ out_c += "\tif ((*env)->ExceptionCheck(env)) {\n"
+ out_c += "\t\t(*env)->ExceptionDescribe(env);\n"
+ out_c += "\t\t(*env)->FatalError(env, \"A Java interface method called from rust threw an exception.\");\n"
+ out_c += "\t}\n"
+
if fn_line.ret_ty_info.arg_conv is not None:
out_c += "\t" + fn_line.ret_ty_info.arg_conv.replace("\n", "\n\t") + "\n"
out_c += "\t" + self.deconstruct_jenv().replace("\n", "\n\t").strip() + "\n"
if fn_line.ret_ty_info.arg_conv is not None:
out_c += "\t" + fn_line.ret_ty_info.arg_conv.replace("\n", "\n\t") + "\n"
out_c += "\t" + self.deconstruct_jenv().replace("\n", "\n\t").strip() + "\n"