diff --git a/src/lib.rs b/src/lib.rs index 2668ba4..90f3d08 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -86,7 +86,9 @@ mod tests { let field = core::avro_str_from_c_str(field_str.as_ptr()); let foo_str = CString::new("foo").unwrap(); - let foo = core::avro_str_from_c_str(foo_str.as_ptr()); + let foo_str_ptr = foo_str.as_ptr(); + ::std::mem::forget(foo_str); + let foo = core::avro_str_from_c_str(foo_str_ptr); let foo_value = types::avro_value_string_new(foo); let record = types::avro_record_new(schema); diff --git a/src/types.rs b/src/types.rs index 7915877..b00fbea 100644 --- a/src/types.rs +++ b/src/types.rs @@ -13,7 +13,7 @@ pub struct AvroValue; #[no_mangle] pub unsafe extern "C" fn avro_value_free(v: *mut AvroValue) { if !v.is_null() { - Box::from_raw(v); + Box::from_raw(v as *mut Value); } }