Use CLEANUP_FREE to properly dispose the temporary array used for
StringList, DeviceList, FilenameList, and OStringList parameters: this
way, an early return (jumping to the ret_error label) will not forget
cleaning them up.
---
generator/java.ml | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/generator/java.ml b/generator/java.ml
index 2606f97..66729c6 100644
--- a/generator/java.ml
+++ b/generator/java.ml
@@ -715,7 +715,7 @@ throw_out_of_memory (JNIEnv *env, const char *msg)
pr " size_t %s_size;\n" n
| StringList n | DeviceList n | FilenameList n ->
pr " size_t %s_len;\n" n;
- pr " char **%s;\n" n
+ pr " CLEANUP_FREE char **%s = NULL;\n" n
| Bool n
| Int n ->
pr " int %s;\n" n
@@ -734,7 +734,7 @@ throw_out_of_memory (JNIEnv *env, const char *msg)
| OBool _ | OInt _ | OInt64 _ | OString _ -> ()
| OStringList n ->
pr " size_t %s_len;\n" n;
- pr " char **%s;\n" n
+ pr " CLEANUP_FREE char **%s = NULL;\n" n
) optargs
);
@@ -857,7 +857,6 @@ throw_out_of_memory (JNIEnv *env, const char *msg)
n;
pr " (*env)->ReleaseStringUTFChars (env, o, %s[i]);\n" n;
pr " }\n";
- pr " free (%s);\n" n
| Bool _
| Int _
| Int64 _
@@ -875,7 +874,6 @@ throw_out_of_memory (JNIEnv *env, const char *msg)
n;
pr " (*env)->ReleaseStringUTFChars (env, o,
optargs_s.%s[i]);\n" n;
pr " }\n";
- pr " free (%s);\n" n
) optargs;
pr "\n";
--
2.9.3