X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FListen.java;h=93c1fc228dc5d4e934bb306486397873123959f2;hb=1854b5cebef22ace9e9e4dd191f609818df9ce08;hp=456b44f8372fce25568e66bbbccf42845729cea7;hpb=1b870a3ffab1c0024411e30102bc6d198300f095;p=ldk-java diff --git a/src/main/java/org/ldk/structs/Listen.java b/src/main/java/org/ldk/structs/Listen.java index 456b44f8..93c1fc22 100644 --- a/src/main/java/org/ldk/structs/Listen.java +++ b/src/main/java/org/ldk/structs/Listen.java @@ -4,12 +4,17 @@ import org.ldk.impl.bindings; import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +import java.lang.ref.Reference; +import javax.annotation.Nullable; /** - * The `Listen` trait is used to be notified of when blocks have been connected or disconnected - * from the chain. + * The `Listen` trait is used to notify when blocks have been connected or disconnected from the + * chain. * - * Useful when needing to replay chain data upon startup or as new chain events occur. + * Useful when needing to replay chain data upon startup or as new chain events occur. Clients + * sourcing chain data using a block-oriented API should prefer this interface over [`Confirm`]. + * Such clients fetch the entire header chain whereas clients using [`Confirm`] only fetch headers + * when needed. */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Listen extends CommonBase { @@ -53,13 +58,19 @@ public class Listen extends CommonBase { */ public void block_connected(byte[] block, int height) { bindings.Listen_block_connected(this.ptr, block, height); + Reference.reachabilityFence(this); + Reference.reachabilityFence(block); + Reference.reachabilityFence(height); } /** * Notifies the listener that a block was removed at the given height. */ public void block_disconnected(byte[] header, int height) { - bindings.Listen_block_disconnected(this.ptr, header, height); + bindings.Listen_block_disconnected(this.ptr, InternalUtils.check_arr_len(header, 80), height); + Reference.reachabilityFence(this); + Reference.reachabilityFence(header); + Reference.reachabilityFence(height); } }