mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2024-11-22 01:21:05 +00:00
as_ptr() and as_mut_ptr() accessors are safe
Nothing unsafe about getting a pointer, deferencing it is unsafe.
This commit is contained in:
parent
4e221c1b48
commit
2dcd5cf9eb
15 changed files with 31 additions and 47 deletions
|
@ -24,7 +24,7 @@ impl fmt::Debug for FdMemory {
|
|||
impl fmt::Debug for FdMemoryRef {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_struct("FdMemory")
|
||||
.field("ptr", unsafe { &self.as_ptr() })
|
||||
.field("ptr", &self.as_ptr())
|
||||
.field("allocator", &self.allocator())
|
||||
.field("parent", &self.parent())
|
||||
.field("maxsize", &self.maxsize())
|
||||
|
|
|
@ -22,7 +22,7 @@ impl fmt::Debug for PhysMemory {
|
|||
impl fmt::Debug for PhysMemoryRef {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_struct("FdMemory")
|
||||
.field("ptr", unsafe { &self.as_ptr() })
|
||||
.field("ptr", &self.as_ptr())
|
||||
.field("allocator", &self.allocator())
|
||||
.field("parent", &self.parent())
|
||||
.field("maxsize", &self.maxsize())
|
||||
|
|
|
@ -416,11 +416,11 @@ impl<'a, T> RTPBuffer<'a, T> {
|
|||
}
|
||||
}
|
||||
|
||||
pub unsafe fn as_ptr(&self) -> *const ffi::GstRTPBuffer {
|
||||
pub fn as_ptr(&self) -> *const ffi::GstRTPBuffer {
|
||||
&self.rtp_buffer as *const ffi::GstRTPBuffer
|
||||
}
|
||||
|
||||
pub unsafe fn as_mut_ptr(&self) -> *mut ffi::GstRTPBuffer {
|
||||
pub fn as_mut_ptr(&self) -> *mut ffi::GstRTPBuffer {
|
||||
&self.rtp_buffer as *const ffi::GstRTPBuffer as *mut ffi::GstRTPBuffer
|
||||
}
|
||||
}
|
||||
|
|
|
@ -138,7 +138,7 @@ pub struct NavigationEventMessage {
|
|||
|
||||
impl PartialEq for NavigationEventMessage {
|
||||
fn eq(&self, other: &Self) -> bool {
|
||||
unsafe { self.event.as_ptr() == other.event.as_ptr() }
|
||||
self.event.as_ptr() == other.event.as_ptr()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1051,7 +1051,7 @@ impl fmt::Debug for BufferRef {
|
|||
}
|
||||
|
||||
f.debug_struct("Buffer")
|
||||
.field("ptr", unsafe { &self.as_ptr() })
|
||||
.field("ptr", &self.as_ptr())
|
||||
.field("pts", &self.pts().display())
|
||||
.field("dts", &self.dts().display())
|
||||
.field("duration", &self.duration().display())
|
||||
|
@ -1306,15 +1306,11 @@ mod tests {
|
|||
let mut buffer2 = buffer.clone();
|
||||
assert_eq!(buffer.get_mut(), None);
|
||||
|
||||
unsafe {
|
||||
assert_eq!(buffer2.as_ptr(), buffer.as_ptr());
|
||||
}
|
||||
assert_eq!(buffer2.as_ptr(), buffer.as_ptr());
|
||||
|
||||
{
|
||||
let buffer2 = buffer2.make_mut();
|
||||
unsafe {
|
||||
assert_ne!(buffer2.as_ptr(), buffer.as_ptr());
|
||||
}
|
||||
assert_ne!(buffer2.as_ptr(), buffer.as_ptr());
|
||||
|
||||
buffer2.set_pts(Some(2 * ClockTime::NSECOND));
|
||||
|
||||
|
|
|
@ -64,11 +64,11 @@ impl BufferPoolConfigRef {
|
|||
&mut *(ptr as *mut StructureRef as *mut BufferPoolConfigRef)
|
||||
}
|
||||
|
||||
pub unsafe fn as_ptr(&self) -> *const ffi::GstStructure {
|
||||
pub fn as_ptr(&self) -> *const ffi::GstStructure {
|
||||
self as *const Self as *const ffi::GstStructure
|
||||
}
|
||||
|
||||
pub unsafe fn as_mut_ptr(&self) -> *mut ffi::GstStructure {
|
||||
pub fn as_mut_ptr(&self) -> *mut ffi::GstStructure {
|
||||
self as *const Self as *mut ffi::GstStructure
|
||||
}
|
||||
}
|
||||
|
|
|
@ -201,7 +201,7 @@ impl fmt::Debug for BufferListRef {
|
|||
.unwrap_or((ClockTime::NONE, ClockTime::NONE));
|
||||
|
||||
f.debug_struct("BufferList")
|
||||
.field("ptr", unsafe { &self.as_ptr() })
|
||||
.field("ptr", &self.as_ptr())
|
||||
.field("buffers", &self.len())
|
||||
.field("pts", &pts.display())
|
||||
.field("dts", &dts.display())
|
||||
|
|
|
@ -304,11 +304,11 @@ impl CapsFeaturesRef {
|
|||
&mut *(ptr as *mut CapsFeaturesRef)
|
||||
}
|
||||
|
||||
pub unsafe fn as_ptr(&self) -> *const ffi::GstCapsFeatures {
|
||||
pub fn as_ptr(&self) -> *const ffi::GstCapsFeatures {
|
||||
self as *const Self as *const ffi::GstCapsFeatures
|
||||
}
|
||||
|
||||
pub unsafe fn as_mut_ptr(&self) -> *mut ffi::GstCapsFeatures {
|
||||
pub fn as_mut_ptr(&self) -> *mut ffi::GstCapsFeatures {
|
||||
self as *const Self as *mut ffi::GstCapsFeatures
|
||||
}
|
||||
|
||||
|
|
|
@ -271,7 +271,7 @@ impl fmt::Debug for Event {
|
|||
impl fmt::Debug for EventRef {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("Event")
|
||||
.field("ptr", unsafe { &self.as_ptr() })
|
||||
.field("ptr", &self.as_ptr())
|
||||
.field("type", &self.type_().name())
|
||||
.field("seqnum", &self.seqnum())
|
||||
.field("structure", &self.structure())
|
||||
|
|
|
@ -38,7 +38,7 @@ impl fmt::Debug for Memory {
|
|||
impl fmt::Debug for MemoryRef {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("Memory")
|
||||
.field("ptr", unsafe { &self.as_ptr() })
|
||||
.field("ptr", &self.as_ptr())
|
||||
.field("allocator", &self.allocator())
|
||||
.field("parent", &self.parent())
|
||||
.field("maxsize", &self.maxsize())
|
||||
|
|
|
@ -150,7 +150,7 @@ impl fmt::Debug for MessageRef {
|
|||
};
|
||||
|
||||
f.debug_struct("Message")
|
||||
.field("ptr", unsafe { &self.as_ptr() })
|
||||
.field("ptr", &self.as_ptr())
|
||||
.field("type", &unsafe {
|
||||
let type_ = ffi::gst_message_type_get_name((*self.as_ptr()).type_);
|
||||
CStr::from_ptr(type_).to_str().unwrap()
|
||||
|
|
|
@ -681,9 +681,7 @@ mod tests {
|
|||
let parent = crate::Buffer::new();
|
||||
{
|
||||
let meta = ParentBufferMeta::add(buffer.get_mut().unwrap(), &parent);
|
||||
unsafe {
|
||||
assert_eq!(meta.parent().as_ptr(), parent.as_ptr());
|
||||
}
|
||||
assert_eq!(meta.parent().as_ptr(), parent.as_ptr());
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -697,9 +695,7 @@ mod tests {
|
|||
{
|
||||
let metas = buffer.iter_meta::<ParentBufferMeta>().collect::<Vec<_>>();
|
||||
assert_eq!(metas.len(), 1);
|
||||
unsafe {
|
||||
assert_eq!(metas[0].parent().as_ptr(), parent.as_ptr());
|
||||
}
|
||||
assert_eq!(metas[0].parent().as_ptr(), parent.as_ptr());
|
||||
}
|
||||
{
|
||||
let metas = buffer
|
||||
|
@ -708,9 +704,7 @@ mod tests {
|
|||
.iter_meta_mut::<ParentBufferMeta>()
|
||||
.collect::<Vec<_>>();
|
||||
assert_eq!(metas.len(), 1);
|
||||
unsafe {
|
||||
assert_eq!(metas[0].parent().as_ptr(), parent.as_ptr());
|
||||
}
|
||||
assert_eq!(metas[0].parent().as_ptr(), parent.as_ptr());
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -719,9 +713,7 @@ mod tests {
|
|||
.unwrap()
|
||||
.meta_mut::<ParentBufferMeta>()
|
||||
.unwrap();
|
||||
unsafe {
|
||||
assert_eq!(meta.parent().as_ptr(), parent.as_ptr());
|
||||
}
|
||||
assert_eq!(meta.parent().as_ptr(), parent.as_ptr());
|
||||
meta.remove().unwrap();
|
||||
}
|
||||
|
||||
|
|
|
@ -149,7 +149,7 @@ macro_rules! mini_object_wrapper (
|
|||
type Storage = &'a Self;
|
||||
|
||||
fn to_glib_none(&'a self) -> $crate::glib::translate::Stash<'a, *const $ffi_name, Self> {
|
||||
$crate::glib::translate::Stash(unsafe { self.as_ptr() }, self)
|
||||
$crate::glib::translate::Stash( self.as_ptr() , self)
|
||||
}
|
||||
|
||||
fn to_glib_full(&self) -> *const $ffi_name {
|
||||
|
@ -164,7 +164,7 @@ macro_rules! mini_object_wrapper (
|
|||
type Storage = &'a Self;
|
||||
|
||||
fn to_glib_none(&'a self) -> $crate::glib::translate::Stash<'a, *mut $ffi_name, Self> {
|
||||
$crate::glib::translate::Stash(unsafe { self.as_mut_ptr() }, self)
|
||||
$crate::glib::translate::Stash( self.as_mut_ptr() , self)
|
||||
}
|
||||
|
||||
fn to_glib_full(&self) -> *mut $ffi_name {
|
||||
|
@ -180,7 +180,7 @@ macro_rules! mini_object_wrapper (
|
|||
|
||||
fn to_glib_none_mut(&'a mut self) -> $crate::glib::translate::StashMut<*mut $ffi_name, Self> {
|
||||
self.make_mut();
|
||||
$crate::glib::translate::StashMut(unsafe { self.as_mut_ptr() }, self)
|
||||
$crate::glib::translate::StashMut( self.as_mut_ptr() , self)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -389,11 +389,11 @@ macro_rules! mini_object_wrapper (
|
|||
}
|
||||
|
||||
impl $ref_name {
|
||||
pub unsafe fn as_ptr(&self) -> *const $ffi_name {
|
||||
pub fn as_ptr(&self) -> *const $ffi_name {
|
||||
self as *const Self as *const $ffi_name
|
||||
}
|
||||
|
||||
pub unsafe fn as_mut_ptr(&self) -> *mut $ffi_name {
|
||||
pub fn as_mut_ptr(&self) -> *mut $ffi_name {
|
||||
self as *const Self as *mut $ffi_name
|
||||
}
|
||||
|
||||
|
@ -567,7 +567,7 @@ impl fmt::Debug for MiniObject {
|
|||
impl fmt::Debug for MiniObjectRef {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_struct("MiniObject")
|
||||
.field("ptr", unsafe { &self.as_ptr() })
|
||||
.field("ptr", &self.as_ptr())
|
||||
.field("type", &self.type_())
|
||||
.finish()
|
||||
}
|
||||
|
|
|
@ -125,7 +125,7 @@ impl fmt::Debug for Query {
|
|||
impl fmt::Debug for QueryRef {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
f.debug_struct("Query")
|
||||
.field("ptr", unsafe { &self.as_ptr() })
|
||||
.field("ptr", &self.as_ptr())
|
||||
.field("type", &unsafe {
|
||||
let type_ = ffi::gst_query_type_get_name((*self.as_ptr()).type_);
|
||||
CStr::from_ptr(type_).to_str().unwrap()
|
||||
|
@ -1647,9 +1647,7 @@ mod tests {
|
|||
QueryView::Position(p) => {
|
||||
let pos = p.result();
|
||||
assert_eq!(pos.try_into(), Ok(Some(3 * ClockTime::SECOND)));
|
||||
unsafe {
|
||||
assert!(!p.as_mut_ptr().is_null());
|
||||
}
|
||||
assert!(!p.as_mut_ptr().is_null());
|
||||
}
|
||||
_ => panic!("Wrong concrete Query in Query"),
|
||||
}
|
||||
|
@ -1701,8 +1699,6 @@ mod tests {
|
|||
crate::init().unwrap();
|
||||
|
||||
let p = Position::new(crate::Format::Time);
|
||||
unsafe {
|
||||
assert!(!p.as_mut_ptr().is_null());
|
||||
}
|
||||
assert!(!p.as_mut_ptr().is_null());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -367,11 +367,11 @@ impl StructureRef {
|
|||
&mut *(ptr as *mut StructureRef)
|
||||
}
|
||||
|
||||
pub unsafe fn as_ptr(&self) -> *const ffi::GstStructure {
|
||||
pub fn as_ptr(&self) -> *const ffi::GstStructure {
|
||||
self as *const Self as *const ffi::GstStructure
|
||||
}
|
||||
|
||||
pub unsafe fn as_mut_ptr(&self) -> *mut ffi::GstStructure {
|
||||
pub fn as_mut_ptr(&self) -> *mut ffi::GstStructure {
|
||||
self as *const Self as *mut ffi::GstStructure
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue