X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=gen_type_mapping.py;h=d9bcf976776754ea1a9e7521f14e78d9e83b2c07;hb=798362a31590a4c5626db086566c083088ef0861;hp=475e132bc447a1b71133b763181dd277c7af19e8;hpb=061af94fdcd85acba1cbaed29cba0e9a3a1fd6b4;p=ldk-java diff --git a/gen_type_mapping.py b/gen_type_mapping.py index 475e132b..d9bcf976 100644 --- a/gen_type_mapping.py +++ b/gen_type_mapping.py @@ -32,8 +32,6 @@ class TypeMappingGenerator: else: arr_name = "ret" arr_len = ret_arr_len - if arr_name == "arg": - arr_name = "ret" if ty_info.c_ty == "int8_tArray": (set_pfx, set_sfx) = self.consts.set_native_arr_contents(arr_name + "_arr", arr_len, ty_info) ret_conv = ("int8_tArray " + arr_name + "_arr = " + self.consts.create_native_arr_call(arr_len, ty_info) + ";\n" + set_pfx, "") @@ -310,7 +308,7 @@ class TypeMappingGenerator: base_conv = base_conv + "\n" + ty_info.var_name + "_conv = " + ty_info.rust_obj.replace("LDK", "") + "_clone((" + ty_info.rust_obj + "*)(((uint64_t)" + ty_info.var_name + ") & ~1));" elif needs_full_clone: base_conv = base_conv + "\n// Warning: we may need a move here but no clone is available for " + ty_info.rust_obj - if not needs_full_clone and ty_info.rust_obj != "LDKu8slice": + if not needs_full_clone and ty_info.rust_obj != "LDKu8slice" and (not holds_ref or is_free): # Don't bother free'ing slices passed in - Rust doesn't auto-free the # underlying unlike Vecs, and it gives Java more freedom. base_conv = base_conv + "\nFREE((void*)" + ty_info.var_name + ");"