Skip to content

Commit

Permalink
fix addrOfMut warning
Browse files Browse the repository at this point in the history
Summary:
Fixes the following warning by following the advice given:

```
warning: creating a mutable reference to mutable static is discouraged
  --> fbcode/eden/scm/lib/cpython-ext/src/bytesobject.rs:37:13
   |
37 |             &mut PyBytes_Type as *mut PyTypeObject,
   |             ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
   |
   = note: for more information, see issue #114447 <rust-lang/rust#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
   |
37 |             addr_of_mut!(PyBytes_Type) as *mut PyTypeObject,
   |             ~~~~~~~~~~~~~            +

```

Reviewed By: quark-zju

Differential Revision: D65218834

fbshipit-source-id: 8298cdf8089b6d8516e0cb59a811b30465eb1f8c
  • Loading branch information
MichaelCuevas authored and facebook-github-bot committed Oct 30, 2024
1 parent 51e3049 commit d92d6f6
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions eden/scm/lib/cpython-ext/src/bytesobject.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@

use std::mem;
use std::os::raw::c_char;
use std::ptr::addr_of_mut;
use std::slice;

use cpython::PyObject as RustPyObject;
use cpython::Python as RustPythonGILGuard;
use ffi::PyBytes_Type;
use ffi::PyObject;
use ffi::PyTypeObject;
use ffi::PyVarObject;
use ffi::Py_hash_t;
use ffi::Py_ssize_t;
Expand All @@ -34,7 +34,7 @@ struct PyBytesObject {
pub fn allocate_pybytes(py: RustPythonGILGuard<'_>, size: usize) -> (RustPyObject, &mut [u8]) {
unsafe {
let ptr: *mut PyVarObject = _PyObject_NewVar(
&mut PyBytes_Type as *mut PyTypeObject,
addr_of_mut!(PyBytes_Type),
(size + mem::size_of::<PyBytesObject>()) as Py_ssize_t,
);
let mut ptr: *mut PyObject = mem::transmute(ptr);
Expand Down

0 comments on commit d92d6f6

Please sign in to comment.