return arr_name + " != null ? Arrays.stream(" + arr_name + ").mapToLong(" + conv_name + " -> " + elem_ty.from_hu_conv[0] + ").toArray() : null"
elif elem_ty.java_ty == "long":
return arr_name + " != null ? Arrays.stream(" + arr_name + ").map(" + conv_name + " -> " + elem_ty.from_hu_conv[0] + ").toArray() : null"
+ elif elem_ty.java_hu_ty == "UInt5":
+ return arr_name + " != null ? InternalUtils.convUInt5Array(" + arr_name + ") : null"
else:
return arr_name + " != null ? Arrays.stream(" + arr_name + ").map(" + conv_name + " -> " + elem_ty.from_hu_conv[0] + ").toArray(" + arr_ty.java_ty + "::new) : null"
# Do a bit of a dance to move any excess [] to the end
conv += "[" + ty_info.subty.java_hu_ty.split("<")[0].split("[")[1]
return conv
+ def cleanup_converted_native_array(self, ty_info, arr_name):
+ return None
def primitive_arr_from_hu(self, mapped_ty, fixed_len, arr_name):
if fixed_len is not None:
else:
java_trait_constr = java_trait_constr + arg_info.arg_name
- java_trait_constr = java_trait_constr + ");\n"
+ java_trait_constr += ");\n"
+ java_trait_constr += "\t\t\t\tReference.reachabilityFence(arg);\n"
if fn_line.ret_ty_info.java_ty != "void":
if fn_line.ret_ty_info.from_hu_conv is not None:
java_trait_constr = java_trait_constr + "\t\t\t\t" + fn_line.ret_ty_info.java_ty + " result = " + fn_line.ret_ty_info.from_hu_conv[0] + ";\n"