X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FCustomMessageHandler.java;h=23d82501a5718edc3b76fee3cda94f6ff1efc908;hb=890e35a4387758c0447aab34166caa579bbf3a08;hp=ffc488763574e4693297e2c62159aadce7487c10;hpb=d87886bb194886ef86d3597a5cdc142b6ccc89e9;p=ldk-java diff --git a/src/main/java/org/ldk/structs/CustomMessageHandler.java b/src/main/java/org/ldk/structs/CustomMessageHandler.java index ffc48876..23d82501 100644 --- a/src/main/java/org/ldk/structs/CustomMessageHandler.java +++ b/src/main/java/org/ldk/structs/CustomMessageHandler.java @@ -45,13 +45,15 @@ public class CustomMessageHandler extends CommonBase { impl_holder.held = new CustomMessageHandler(new bindings.LDKCustomMessageHandler() { @Override public long handle_custom_message(long msg, byte[] sender_node_id) { Type ret_hu_conv = new Type(null, msg); - ret_hu_conv.ptrs_to.add(this); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); }; Result_NoneLightningErrorZ ret = arg.handle_custom_message(ret_hu_conv, sender_node_id); + Reference.reachabilityFence(arg); long result = ret == null ? 0 : ret.clone_ptr(); return result; } @Override public long[] get_and_clear_pending_msg() { TwoTuple_PublicKeyTypeZ[] ret = arg.get_and_clear_pending_msg(); + Reference.reachabilityFence(arg); long[] result = ret != null ? Arrays.stream(ret).mapToLong(ret_conv_25 -> ret_conv_25 == null ? 0 : ret_conv_25.clone_ptr()).toArray() : null; return result; } @@ -79,7 +81,7 @@ public class CustomMessageHandler extends CommonBase { Reference.reachabilityFence(sender_node_id); if (ret >= 0 && ret <= 4096) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); - this.ptrs_to.add(msg); + if (this != null) { this.ptrs_to.add(msg); }; return ret_hu_conv; } @@ -97,7 +99,7 @@ public class CustomMessageHandler extends CommonBase { for (int z = 0; z < ret_conv_25_len; z++) { long ret_conv_25 = ret[z]; TwoTuple_PublicKeyTypeZ ret_conv_25_hu_conv = new TwoTuple_PublicKeyTypeZ(null, ret_conv_25); - ret_conv_25_hu_conv.ptrs_to.add(this); + if (ret_conv_25_hu_conv != null) { ret_conv_25_hu_conv.ptrs_to.add(this); }; ret_conv_25_arr[z] = ret_conv_25_hu_conv; } return ret_conv_25_arr;