X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=java_strings.py;h=3a8ba6cb613047a728cb77a09abd7b5557664aba;hb=254448caed0c5708ffd414a2b418983792a75a3c;hp=d477aa31575a93252ade4d6aa41ddebb3bee47f1;hpb=1a849ce9a84a17a58ba0e19cb60dfdf95242356b;p=ldk-java diff --git a/java_strings.py b/java_strings.py index d477aa31..3a8ba6cb 100644 --- a/java_strings.py +++ b/java_strings.py @@ -630,6 +630,8 @@ import javax.annotation.Nullable; 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" @@ -662,6 +664,10 @@ import javax.annotation.Nullable; def var_decl_statement(self, ty_string, var_name, statement): return ty_string + " " + var_name + " = " + statement + def get_java_arr_len(self, arr_name): + return arr_name + ".length" + def get_java_arr_elem(self, elem_ty, arr_name, idx): + return arr_name + "[" + idx + "]" def constr_hu_array(self, ty_info, arr_len): base_ty = ty_info.subty.java_hu_ty.split("[")[0].split("<")[0] conv = "new " + base_ty + "[" + arr_len + "]" @@ -669,6 +675,18 @@ import javax.annotation.Nullable; # 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: + return ("InternalUtils.check_arr_len(" + arr_name + ", " + fixed_len + ")", "") + return None + def primitive_arr_to_hu(self, primitive_ty, fixed_len, arr_name, conv_name): + return None + + def java_arr_ty_str(self, elem_ty_str): + return elem_ty_str + "[]" def for_n_in_range(self, n, minimum, maximum): return "for (int " + n + " = " + minimum + "; " + n + " < " + maximum + "; " + n + "++) {" @@ -864,7 +882,8 @@ import javax.annotation.Nullable; 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"