The rust API requires a mut reference, hence having a mutable pointer
seems to match better. Furthermore the implementation is now modifying
the struct in order to set the size to 0 instead of simply freeing the
data, this will allow us to easily identify mistaken manual call to this
function.
libgrust/ChangeLog:
* libproc_macro/rust/bridge/literal.rs: Make the
pointer mutable.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
use LexError;
extern "C" {
- fn Literal__drop(literal: *const Literal);
+ fn Literal__drop(literal: *mut Literal);
fn Literal__string(str: *const c_uchar, len: u64) -> Literal;
fn Literal__byte_string(bytes: *const u8, len: u64) -> Literal;
fn Literal__from_string(str: *const c_uchar, len: u64, lit: *mut Literal) -> bool;
fn drop(&mut self) {
match self {
Literal::String { .. } | Literal::ByteString { .. } => unsafe {
- Literal__drop(self as *const Literal)
+ Literal__drop(self as *mut Literal)
},
_ => (),
}