[bindings] Make Transaction::data *mut instead of *const
authorMatt Corallo <git@bluematt.me>
Fri, 9 Oct 2020 01:25:25 +0000 (21:25 -0400)
committerMatt Corallo <git@bluematt.me>
Mon, 23 Nov 2020 16:08:34 +0000 (11:08 -0500)
When the only reference to the transaction bytes is via
Transaction::data, my understanding of the C const rules is that
it would then be invalid to write to it. While its unlikely this
would ever pose an issue, its not hard to simply make it *mut, so
we do that here.

lightning-c-bindings/src/c_types/mod.rs

index d14fe6fc792df937f914aae656e8b61dfd52e773..840bd7a4446a5b07c59658e66686d734f680de38 100644 (file)
@@ -100,7 +100,8 @@ impl Secp256k1Error {
 /// set. Similarly, while it may change in the future, all `Transaction`s you pass to Rust may have
 /// `data_is_owned` either set or unset at your discretion.
 pub struct Transaction {
-       pub data: *const u8,
+       /// This is non-const for your convenience, an object passed to Rust is never written to.
+       pub data: *mut u8,
        pub datalen: usize,
        pub data_is_owned: bool,
 }