summaryrefslogtreecommitdiffhomepage
path: root/examples/rust/large-upload
diff options
context:
space:
mode:
authorAndrew Clayton <a.clayton@nginx.com>2024-07-02 02:49:09 +0100
committerAndrew Clayton <a.clayton@nginx.com>2024-07-02 02:49:09 +0100
commit2cf492f49cfb05c5083c99a38634c2f40b6d3e84 (patch)
tree5c3e547eb3fdfc715b03ebff36aa7979e7ba5a6c /examples/rust/large-upload
parent3a751f78ae9ef330c575419f749c903f359a7c80 (diff)
downloadunit-wasm-2cf492f49cfb05c5083c99a38634c2f40b6d3e84.tar.gz
unit-wasm-2cf492f49cfb05c5083c99a38634c2f40b6d3e84.tar.bz2
examples/rust: Fix some new rustc warnings
With at least rustc 1.79.0 (129f3b996 2024-06-10) (Fedora 1.79.0-3.fc40) We were getting warnings when building the rust examples like warning: creating a mutable reference to mutable static is discouraged --> src/lib.rs:75:40 | 75 | let ctx: *mut luw_ctx_t = unsafe { &mut CTX }; | ^^^^^^^^ mutable reference to mutable static | = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447> = note: this will be a hard error in the 2024 edition = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior = note: `#[warn(static_mut_refs)]` on by default help: use `addr_of_mut!` instead to create a raw pointer | 75 | let ctx: *mut luw_ctx_t = unsafe { addr_of_mut!(CTX) }; | ~~~~~~~~~~~~~~~~~ So do like it says and use the addr_of_mut!() macro. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
Diffstat (limited to 'examples/rust/large-upload')
-rw-r--r--examples/rust/large-upload/src/lib.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/examples/rust/large-upload/src/lib.rs b/examples/rust/large-upload/src/lib.rs
index 7fe8309..df7e963 100644
--- a/examples/rust/large-upload/src/lib.rs
+++ b/examples/rust/large-upload/src/lib.rs
@@ -9,7 +9,7 @@
use unit_wasm::rusty::*;
use std::fs::File;
-use std::ptr::null_mut;
+use std::ptr::{addr_of_mut, null_mut};
static mut CTX: luw_ctx_t = UWR_CTX_INITIALIZER();
static mut REQUEST_BUF: *mut u8 = null_mut();
@@ -32,14 +32,18 @@ pub unsafe extern "C" fn uwr_response_end_handler() {
#[no_mangle]
pub extern "C" fn uwr_request_handler(addr: *mut u8) -> i32 {
- let ctx: *mut luw_ctx_t = unsafe { &mut CTX };
+ let ctx: *mut luw_ctx_t = unsafe { addr_of_mut!(CTX) };
let mut f;
let bytes_wrote: isize;
let mut total = unsafe { TOTAL_BYTES_WROTE };
if total == 0 {
uwr_init_ctx(ctx, addr, 0);
- uwr_set_req_buf(ctx, unsafe { &mut REQUEST_BUF }, LUW_SRB_NONE);
+ uwr_set_req_buf(
+ ctx,
+ unsafe { addr_of_mut!(REQUEST_BUF) },
+ LUW_SRB_NONE,
+ );
f = File::create("/var/tmp/large-file.dat").unwrap();
} else {