Skip to content

Commit 4999398

Browse files
committed
fix NetworkGraph dangle
1 parent ff9e291 commit 4999398

11 files changed

+64
-6
lines changed

bindings/LDK/Bindings.swift

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4501,6 +4501,40 @@ withUnsafePointer(to: scorer.cOpaqueStruct!) { (scorerPointer: UnsafePointer<LDK
45014501

45024502
Result_RouteLightningErrorZ(pointer: get_keysend_route(Bindings.new_LDKPublicKey(array: our_node_pubkey), networkPointer, Bindings.new_LDKPublicKey(array: payee), first_hopsPointer, last_hopsWrapper.dangle().cOpaqueStruct!, final_value_msat, final_cltv, logger.cOpaqueStruct!, scorerPointer))
45034503

4504+
}
4505+
}
4506+
4507+
}
4508+
public class func swift_get_route(our_node_pubkey: [UInt8], network: NetworkGraph, payee: [UInt8], payee_features: InvoiceFeatures, first_hops: [ChannelDetails]?, last_hops: [RouteHint], final_value_msat: UInt64, final_cltv: UInt32, logger: Logger, scorer: Score) -> Result_RouteLightningErrorZ {
4509+
4510+
4511+
var first_hopsPointer: UnsafeMutablePointer<LDKCVec_ChannelDetailsZ>? = nil
4512+
if let first_hopsUnwrapped = first_hops {
4513+
4514+
let first_hopsUnwrapped = first_hopsUnwrapped.map { (first_hopsCurrentValue) in
4515+
first_hopsCurrentValue
4516+
.danglingClone().cOpaqueStruct!
4517+
}
4518+
4519+
first_hopsPointer = UnsafeMutablePointer<LDKCVec_ChannelDetailsZ>.allocate(capacity: 1)
4520+
first_hopsPointer!.initialize(to: Bindings.new_LDKCVec_ChannelDetailsZWrapper(array: first_hopsUnwrapped).cOpaqueStruct!)
4521+
}
4522+
4523+
let last_hopsUnwrapped = last_hops.map { (last_hopsCurrentValue) in
4524+
last_hopsCurrentValue
4525+
.danglingClone().cOpaqueStruct!
4526+
}
4527+
4528+
let last_hopsWrapper = Bindings.new_LDKCVec_RouteHintZWrapper(array: last_hopsUnwrapped)
4529+
defer {
4530+
last_hopsWrapper.noOpRetain()
4531+
}
4532+
4533+
return withUnsafePointer(to: network.cOpaqueStruct!) { (networkPointer: UnsafePointer<LDKNetworkGraph>) in
4534+
withUnsafePointer(to: scorer.cOpaqueStruct!) { (scorerPointer: UnsafePointer<LDKScore>) in
4535+
4536+
Result_RouteLightningErrorZ(pointer: get_route(Bindings.new_LDKPublicKey(array: our_node_pubkey), networkPointer, Bindings.new_LDKPublicKey(array: payee), payee_features.danglingClone().cOpaqueStruct!, first_hopsPointer, last_hopsWrapper.dangle().cOpaqueStruct!, final_value_msat, final_cltv, logger.cOpaqueStruct!, scorerPointer))
4537+
45044538
}
45054539
}
45064540

@@ -4684,6 +4718,7 @@ withUnsafePointer(to: scorer.cOpaqueStruct!) { (scorerPointer: UnsafePointer<LDK
46844718
}
46854719
}
46864720

4721+
/*
46874722
public class func getRoute(our_node_id: [UInt8], network: NetworkGraph, payee: [UInt8], payee_features: InvoiceFeatures, first_hops: [LDKChannelDetails], last_hops: [LDKRouteHint], final_value_msat: UInt64, final_cltv: UInt32, logger: Logger) -> Result_RouteLightningErrorZ {
46884723
return withUnsafePointer(to: network.cOpaqueStruct!) { (networkPointer: UnsafePointer<LDKNetworkGraph>) in
46894724
var mutableHops = Bindings.new_LDKCVec_ChannelDetailsZWrapper(array: first_hops).cOpaqueStruct!
@@ -4692,9 +4727,10 @@ withUnsafePointer(to: scorer.cOpaqueStruct!) { (scorerPointer: UnsafePointer<LDK
46924727
}
46934728
}
46944729
}
4730+
*/
46954731

46964732
public class func get_ldk_swift_bindings_version() -> String {
4697-
return "c57f422ea3fecd28800deabc7d81ffed507baa36"
4733+
return "556d959a4572b40920b57394eef4a3c04a514839"
46984734
}
46994735

47004736
}

bindings/LDK/options/Option_AccessZ.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class Option_AccessZ: NativeTypeWrapper {
1313
self.cOpaqueStruct = LDKCOption_AccessZ()
1414
if let value = value {
1515
self.cOpaqueStruct!.tag = LDKCOption_AccessZ_Some
16+
1617
self.cOpaqueStruct!.some = value.cOpaqueStruct!
1718
} else {
1819
self.cOpaqueStruct!.tag = LDKCOption_AccessZ_None

bindings/LDK/options/Option_C2Tuple_usizeTransactionZZ.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class Option_C2Tuple_usizeTransactionZZ: NativeTypeWrapper {
1313
self.cOpaqueStruct = LDKCOption_C2Tuple_usizeTransactionZZ()
1414
if let value = value {
1515
self.cOpaqueStruct!.tag = LDKCOption_C2Tuple_usizeTransactionZZ_Some
16+
1617
self.cOpaqueStruct!.some = value.cOpaqueStruct!
1718
} else {
1819
self.cOpaqueStruct!.tag = LDKCOption_C2Tuple_usizeTransactionZZ_None

bindings/LDK/options/Option_CVec_NetAddressZZ.swift

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,18 @@ public class Option_CVec_NetAddressZZ: NativeTypeWrapper {
1313
self.cOpaqueStruct = LDKCOption_CVec_NetAddressZZ()
1414
if let value = value {
1515
self.cOpaqueStruct!.tag = LDKCOption_CVec_NetAddressZZ_Some
16-
let wrapper = Bindings.new_LDKCVec_NetAddressZWrapper(array: value)
17-
18-
self.cOpaqueStruct!.some = wrapper.c
16+
17+
18+
let valueUnwrapped = value.map { (valueCurrentValue) in
19+
valueCurrentValue
20+
.danglingClone().cOpaqueStruct!
21+
}
22+
23+
let somevalue = Bindings.new_LDKCVec_NetAddressZWrapper(array: valueUnwrapped)
24+
// try! self.addAnchor(anchor: somevalue)
25+
somevalue.dangle()
26+
27+
self.cOpaqueStruct!.some = somevalue.cOpaqueStruct!
1928
} else {
2029
self.cOpaqueStruct!.tag = LDKCOption_CVec_NetAddressZZ_None
2130
}
@@ -50,7 +59,12 @@ public class Option_CVec_NetAddressZZ: NativeTypeWrapper {
5059
return nil
5160
}
5261
if self.cOpaqueStruct!.tag == LDKCOption_CVec_NetAddressZZ_Some {
53-
return self.cOpaqueStruct!.some
62+
return Bindings.LDKCVec_NetAddressZ_to_array(nativeType: self.cOpaqueStruct!.some, deallocate: false)
63+
64+
.map { (cOpaqueStruct) in
65+
NetAddress(pointer: cOpaqueStruct).dangle()
66+
}
67+
5468
}
5569
assert(false, "invalid option enum value")
5670
return nil

bindings/LDK/options/Option_FilterZ.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class Option_FilterZ: NativeTypeWrapper {
1313
self.cOpaqueStruct = LDKCOption_FilterZ()
1414
if let value = value {
1515
self.cOpaqueStruct!.tag = LDKCOption_FilterZ_Some
16+
1617
self.cOpaqueStruct!.some = value.cOpaqueStruct!
1718
} else {
1819
self.cOpaqueStruct!.tag = LDKCOption_FilterZ_None

bindings/LDK/options/Option_NetworkUpdateZ.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class Option_NetworkUpdateZ: NativeTypeWrapper {
1313
self.cOpaqueStruct = LDKCOption_NetworkUpdateZ()
1414
if let value = value {
1515
self.cOpaqueStruct!.tag = LDKCOption_NetworkUpdateZ_Some
16+
1617
self.cOpaqueStruct!.some = value.cOpaqueStruct!
1718
} else {
1819
self.cOpaqueStruct!.tag = LDKCOption_NetworkUpdateZ_None

bindings/LDK/options/Option_TypeZ.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class Option_TypeZ: NativeTypeWrapper {
1313
self.cOpaqueStruct = LDKCOption_TypeZ()
1414
if let value = value {
1515
self.cOpaqueStruct!.tag = LDKCOption_TypeZ_Some
16+
1617
self.cOpaqueStruct!.some = value.cOpaqueStruct!
1718
} else {
1819
self.cOpaqueStruct!.tag = LDKCOption_TypeZ_None

bindings/LDK/options/Option_u16Z.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class Option_u16Z: NativeTypeWrapper {
1313
self.cOpaqueStruct = LDKCOption_u16Z()
1414
if let value = value {
1515
self.cOpaqueStruct!.tag = LDKCOption_u16Z_Some
16+
1617
self.cOpaqueStruct!.some = value
1718
} else {
1819
self.cOpaqueStruct!.tag = LDKCOption_u16Z_None

bindings/LDK/options/Option_u32Z.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class Option_u32Z: NativeTypeWrapper {
1313
self.cOpaqueStruct = LDKCOption_u32Z()
1414
if let value = value {
1515
self.cOpaqueStruct!.tag = LDKCOption_u32Z_Some
16+
1617
self.cOpaqueStruct!.some = value
1718
} else {
1819
self.cOpaqueStruct!.tag = LDKCOption_u32Z_None

bindings/LDK/options/Option_u64Z.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class Option_u64Z: NativeTypeWrapper {
1313
self.cOpaqueStruct = LDKCOption_u64Z()
1414
if let value = value {
1515
self.cOpaqueStruct!.tag = LDKCOption_u64Z_Some
16+
1617
self.cOpaqueStruct!.some = value
1718
} else {
1819
self.cOpaqueStruct!.tag = LDKCOption_u64Z_None

0 commit comments

Comments
 (0)