X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=ts%2Fstructs%2FCommonBase.mts;h=8ce5766a2b089de0af3adaeb1d76bfd1e0202ba6;hb=13cdf8bde340072288b39a5e29f0946d3e095ad4;hp=75630f913c2b09a5449767fbae2ccd8c745af4e2;hpb=86706cda41dcc0d47b317b1f90a9757e44915657;p=ldk-java diff --git a/ts/structs/CommonBase.mts b/ts/structs/CommonBase.mts index 75630f91..8ce5766a 100644 --- a/ts/structs/CommonBase.mts +++ b/ts/structs/CommonBase.mts @@ -355,18 +355,18 @@ import { DefaultRouter } from '../structs/DefaultRouter.mjs'; function freer(f: () => void) { f() } const finalizer = new FinalizationRegistry(freer); -function get_freeer(ptr: number, free_fn: (ptr: number) => void) { +function get_freeer(ptr: bigint, free_fn: (ptr: bigint) => void) { return () => { free_fn(ptr); } } export class CommonBase { - protected ptr: number; + protected ptr: bigint; protected ptrs_to: object[] = []; - protected constructor(ptr: number, free_fn: (ptr: number) => void) { + protected constructor(ptr: bigint, free_fn: (ptr: bigint) => void) { this.ptr = ptr; - if (Number.isFinite(ptr) && ptr != 0){ + if (ptr != 0n){ finalizer.register(this, get_freeer(ptr, free_fn), this); } } @@ -380,7 +380,7 @@ export class CommonBase { return o.ptr; } protected static set_null_skip_free(o: CommonBase) { - o.ptr = 0; + o.ptr = 0n; // @ts-ignore TypeScript is wrong about the returnvalue of unregister here! const did_unregister: boolean = finalizer.unregister(o); if (!did_unregister)