Merge pull request #117 from TheBlueMatt/2022-08-fix-npe
[ldk-java] / src / main / java / org / ldk / structs / SignedRawInvoice.java
index c6bf94a5609742746742e9d021f79c0901d6d77d..d5a17cb941fd90c9de60a4a90d15e11d2106bcdf 100644 (file)
@@ -4,6 +4,7 @@ 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;
 
 
@@ -29,8 +30,20 @@ public class SignedRawInvoice extends CommonBase {
         * Two objects with NULL inner values will be considered "equal" here.
         */
        public boolean eq(SignedRawInvoice b) {
-               boolean ret = bindings.SignedRawInvoice_eq(this.ptr, b == null ? 0 : b.ptr & ~1);
-               this.ptrs_to.add(b);
+               boolean ret = bindings.SignedRawInvoice_eq(this.ptr, b == null ? 0 : b.ptr);
+               Reference.reachabilityFence(this);
+               Reference.reachabilityFence(b);
+               if (this != null) { this.ptrs_to.add(b); };
+               return ret;
+       }
+
+       @Override public boolean equals(Object o) {
+               if (!(o instanceof SignedRawInvoice)) return false;
+               return this.eq((SignedRawInvoice)o);
+       }
+       long clone_ptr() {
+               long ret = bindings.SignedRawInvoice_clone_ptr(this.ptr);
+               Reference.reachabilityFence(this);
                return ret;
        }
 
@@ -39,9 +52,10 @@ public class SignedRawInvoice extends CommonBase {
         */
        public SignedRawInvoice clone() {
                long ret = bindings.SignedRawInvoice_clone(this.ptr);
-               if (ret < 1024) { return null; }
-               SignedRawInvoice ret_hu_conv = new SignedRawInvoice(null, ret);
-               ret_hu_conv.ptrs_to.add(this);
+               Reference.reachabilityFence(this);
+               if (ret >= 0 && ret <= 4096) { return null; }
+               org.ldk.structs.SignedRawInvoice ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.SignedRawInvoice(null, ret); }
+               if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
                return ret_hu_conv;
        }
 
@@ -53,10 +67,11 @@ public class SignedRawInvoice extends CommonBase {
         */
        public ThreeTuple_RawInvoice_u832InvoiceSignatureZ into_parts() {
                long ret = bindings.SignedRawInvoice_into_parts(this.ptr);
-               if (ret < 1024) { return null; }
+               Reference.reachabilityFence(this);
+               if (ret >= 0 && ret <= 4096) { return null; }
                ThreeTuple_RawInvoice_u832InvoiceSignatureZ ret_hu_conv = new ThreeTuple_RawInvoice_u832InvoiceSignatureZ(null, ret);
-               ret_hu_conv.ptrs_to.add(this);
-               this.ptrs_to.add(this);
+               if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
+               if (this != null) { this.ptrs_to.add(this); };
                return ret_hu_conv;
        }
 
@@ -65,9 +80,10 @@ public class SignedRawInvoice extends CommonBase {
         */
        public RawInvoice raw_invoice() {
                long ret = bindings.SignedRawInvoice_raw_invoice(this.ptr);
-               if (ret < 1024) { return null; }
-               RawInvoice ret_hu_conv = new RawInvoice(null, ret);
-               ret_hu_conv.ptrs_to.add(this);
+               Reference.reachabilityFence(this);
+               if (ret >= 0 && ret <= 4096) { return null; }
+               org.ldk.structs.RawInvoice ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.RawInvoice(null, ret); }
+               if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
                return ret_hu_conv;
        }
 
@@ -76,6 +92,7 @@ public class SignedRawInvoice extends CommonBase {
         */
        public byte[] hash() {
                byte[] ret = bindings.SignedRawInvoice_hash(this.ptr);
+               Reference.reachabilityFence(this);
                return ret;
        }
 
@@ -84,9 +101,10 @@ public class SignedRawInvoice extends CommonBase {
         */
        public InvoiceSignature signature() {
                long ret = bindings.SignedRawInvoice_signature(this.ptr);
-               if (ret < 1024) { return null; }
-               InvoiceSignature ret_hu_conv = new InvoiceSignature(null, ret);
-               ret_hu_conv.ptrs_to.add(this);
+               Reference.reachabilityFence(this);
+               if (ret >= 0 && ret <= 4096) { return null; }
+               org.ldk.structs.InvoiceSignature ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.InvoiceSignature(null, ret); }
+               if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
                return ret_hu_conv;
        }
 
@@ -95,7 +113,8 @@ public class SignedRawInvoice extends CommonBase {
         */
        public Result_PayeePubKeyErrorZ recover_payee_pub_key() {
                long ret = bindings.SignedRawInvoice_recover_payee_pub_key(this.ptr);
-               if (ret < 1024) { return null; }
+               Reference.reachabilityFence(this);
+               if (ret >= 0 && ret <= 4096) { return null; }
                Result_PayeePubKeyErrorZ ret_hu_conv = Result_PayeePubKeyErrorZ.constr_from_ptr(ret);
                return ret_hu_conv;
        }
@@ -106,16 +125,18 @@ public class SignedRawInvoice extends CommonBase {
         */
        public boolean check_signature() {
                boolean ret = bindings.SignedRawInvoice_check_signature(this.ptr);
+               Reference.reachabilityFence(this);
                return ret;
        }
 
        /**
         * Read a SignedRawInvoice object from a string
         */
-       public static Result_SignedRawInvoiceNoneZ from_str(java.lang.String s) {
+       public static Result_SignedRawInvoiceParseErrorZ from_str(java.lang.String s) {
                long ret = bindings.SignedRawInvoice_from_str(s);
-               if (ret < 1024) { return null; }
-               Result_SignedRawInvoiceNoneZ ret_hu_conv = Result_SignedRawInvoiceNoneZ.constr_from_ptr(ret);
+               Reference.reachabilityFence(s);
+               if (ret >= 0 && ret <= 4096) { return null; }
+               Result_SignedRawInvoiceParseErrorZ ret_hu_conv = Result_SignedRawInvoiceParseErrorZ.constr_from_ptr(ret);
                return ret_hu_conv;
        }
 
@@ -124,6 +145,7 @@ public class SignedRawInvoice extends CommonBase {
         */
        public String to_str() {
                String ret = bindings.SignedRawInvoice_to_str(this.ptr);
+               Reference.reachabilityFence(this);
                return ret;
        }