Update from_glib calls and put them in unsafe blocks

This commit is contained in:
Guillaume Gomez 2020-12-08 15:07:12 +01:00
parent 959568f124
commit fb56af8d84
27 changed files with 83 additions and 82 deletions

View file

@ -25,8 +25,6 @@ use gio::prelude::*;
use gtk::prelude::*; use gtk::prelude::*;
use gdk::prelude::*;
use std::env; use std::env;
use std::os::raw::c_void; use std::os::raw::c_void;

View file

@ -82,7 +82,7 @@ impl AudioChannelPosition {
if valid { if valid {
for (d, s) in positions.iter_mut().zip(positions_raw.iter()) { for (d, s) in positions.iter_mut().zip(positions_raw.iter()) {
*d = from_glib(*s); *d = unsafe { from_glib(*s) };
} }
Ok(()) Ok(())
} else { } else {
@ -119,7 +119,7 @@ impl AudioChannelPosition {
if valid { if valid {
for (d, s) in positions.iter_mut().zip(positions_raw.iter()) { for (d, s) in positions.iter_mut().zip(positions_raw.iter()) {
*d = from_glib(*s); *d = unsafe { from_glib(*s) };
} }
Ok(()) Ok(())
} else { } else {

View file

@ -21,7 +21,8 @@ pub enum AudioEndianness {
} }
impl FromGlib<i32> for AudioEndianness { impl FromGlib<i32> for AudioEndianness {
fn from_glib(value: i32) -> Self { #[allow(unused_unsafe)]
unsafe fn from_glib(value: i32) -> Self {
assert_initialized_main_thread!(); assert_initialized_main_thread!();
match value { match value {
@ -59,7 +60,7 @@ impl AudioFormatInfo {
} }
pub fn format(&self) -> crate::AudioFormat { pub fn format(&self) -> crate::AudioFormat {
from_glib(self.0.format) unsafe { from_glib(self.0.format) }
} }
pub fn name<'a>(&self) -> &'a str { pub fn name<'a>(&self) -> &'a str {
@ -71,11 +72,11 @@ impl AudioFormatInfo {
} }
pub fn flags(&self) -> crate::AudioFormatFlags { pub fn flags(&self) -> crate::AudioFormatFlags {
from_glib(self.0.flags) unsafe { from_glib(self.0.flags) }
} }
pub fn endianness(&self) -> AudioEndianness { pub fn endianness(&self) -> AudioEndianness {
from_glib(self.0.endianness) unsafe { from_glib(self.0.endianness) }
} }
pub fn width(&self) -> u32 { pub fn width(&self) -> u32 {
@ -87,7 +88,7 @@ impl AudioFormatInfo {
} }
pub fn unpack_format(&self) -> crate::AudioFormat { pub fn unpack_format(&self) -> crate::AudioFormat {
from_glib(self.0.unpack_format) unsafe { from_glib(self.0.unpack_format) }
} }
pub fn silence<'a>(&self) -> &'a [u8] { pub fn silence<'a>(&self) -> &'a [u8] {

View file

@ -243,11 +243,11 @@ impl AudioInfo {
} }
pub fn layout(&self) -> crate::AudioLayout { pub fn layout(&self) -> crate::AudioLayout {
from_glib(self.0.layout) unsafe { from_glib(self.0.layout) }
} }
pub fn flags(&self) -> crate::AudioFlags { pub fn flags(&self) -> crate::AudioFlags {
from_glib(self.0.flags) unsafe { from_glib(self.0.flags) }
} }
pub fn rate(&self) -> u32 { pub fn rate(&self) -> u32 {

View file

@ -50,11 +50,11 @@ impl AudioClippingMeta {
} }
pub fn get_start(&self) -> gst::GenericFormattedValue { pub fn get_start(&self) -> gst::GenericFormattedValue {
gst::GenericFormattedValue::new(from_glib(self.0.format), self.0.start as i64) unsafe { gst::GenericFormattedValue::new(from_glib(self.0.format), self.0.start as i64) }
} }
pub fn get_end(&self) -> gst::GenericFormattedValue { pub fn get_end(&self) -> gst::GenericFormattedValue {
gst::GenericFormattedValue::new(from_glib(self.0.format), self.0.end as i64) unsafe { gst::GenericFormattedValue::new(from_glib(self.0.format), self.0.end as i64) }
} }
} }

View file

@ -12,7 +12,7 @@ pub struct AudioRingBufferSpec(pub(crate) GstAudioRingBufferSpec);
impl AudioRingBufferSpec { impl AudioRingBufferSpec {
pub fn get_type(&self) -> AudioRingBufferFormatType { pub fn get_type(&self) -> AudioRingBufferFormatType {
AudioRingBufferFormatType::from_glib(self.0.type_) unsafe { AudioRingBufferFormatType::from_glib(self.0.type_) }
} }
pub fn set_type(&mut self, value: AudioRingBufferFormatType) { pub fn set_type(&mut self, value: AudioRingBufferFormatType) {

View file

@ -45,7 +45,7 @@ impl ToGlib for Overhead {
impl FromGlib<i32> for Overhead { impl FromGlib<i32> for Overhead {
#[inline] #[inline]
fn from_glib(val: i32) -> Overhead { unsafe fn from_glib(val: i32) -> Overhead {
skip_assert_initialized!(); skip_assert_initialized!();
match val { match val {
0 => Overhead::None, 0 => Overhead::None,

View file

@ -264,7 +264,7 @@ pub enum VideoEndianness {
} }
impl FromGlib<i32> for VideoEndianness { impl FromGlib<i32> for VideoEndianness {
fn from_glib(value: i32) -> Self { unsafe fn from_glib(value: i32) -> Self {
skip_assert_initialized!(); skip_assert_initialized!();
match value { match value {

View file

@ -28,7 +28,7 @@ impl VideoFormatInfo {
} }
pub fn format(&self) -> crate::VideoFormat { pub fn format(&self) -> crate::VideoFormat {
from_glib(self.0.format) unsafe { from_glib(self.0.format) }
} }
pub fn name<'a>(&self) -> &'a str { pub fn name<'a>(&self) -> &'a str {
@ -40,7 +40,7 @@ impl VideoFormatInfo {
} }
pub fn flags(&self) -> crate::VideoFormatFlags { pub fn flags(&self) -> crate::VideoFormatFlags {
from_glib(self.0.flags) unsafe { from_glib(self.0.flags) }
} }
pub fn bits(&self) -> u32 { pub fn bits(&self) -> u32 {
@ -84,7 +84,7 @@ impl VideoFormatInfo {
} }
pub fn tile_mode(&self) -> crate::VideoTileMode { pub fn tile_mode(&self) -> crate::VideoTileMode {
from_glib(self.0.tile_mode) unsafe { from_glib(self.0.tile_mode) }
} }
pub fn tile_ws(&self) -> u32 { pub fn tile_ws(&self) -> u32 {
@ -96,7 +96,7 @@ impl VideoFormatInfo {
} }
pub fn unpack_format(&self) -> crate::VideoFormat { pub fn unpack_format(&self) -> crate::VideoFormat {
from_glib(self.0.unpack_format) unsafe { from_glib(self.0.unpack_format) }
} }
pub fn pack_lines(&self) -> i32 { pub fn pack_lines(&self) -> i32 {

View file

@ -45,7 +45,7 @@ impl<T> VideoFrame<T> {
} }
pub fn flags(&self) -> crate::VideoFrameFlags { pub fn flags(&self) -> crate::VideoFrameFlags {
from_glib(self.frame.flags) unsafe { from_glib(self.frame.flags) }
} }
pub fn id(&self) -> i32 { pub fn id(&self) -> i32 {
@ -420,7 +420,7 @@ impl<T> VideoFrameRef<T> {
} }
pub fn flags(&self) -> crate::VideoFrameFlags { pub fn flags(&self) -> crate::VideoFrameFlags {
from_glib(self.frame.flags) unsafe { from_glib(self.frame.flags) }
} }
pub fn id(&self) -> i32 { pub fn id(&self) -> i32 {

View file

@ -48,7 +48,7 @@ impl ToGlib for VideoColorRange {
#[doc(hidden)] #[doc(hidden)]
impl FromGlib<ffi::GstVideoColorRange> for VideoColorRange { impl FromGlib<ffi::GstVideoColorRange> for VideoColorRange {
fn from_glib(value: ffi::GstVideoColorRange) -> Self { unsafe fn from_glib(value: ffi::GstVideoColorRange) -> Self {
skip_assert_initialized!(); skip_assert_initialized!();
match value as i32 { match value as i32 {
0 => VideoColorRange::Unknown, 0 => VideoColorRange::Unknown,
@ -109,19 +109,19 @@ impl VideoColorimetry {
} }
pub fn range(&self) -> crate::VideoColorRange { pub fn range(&self) -> crate::VideoColorRange {
from_glib(self.0.range) unsafe { from_glib(self.0.range) }
} }
pub fn matrix(&self) -> crate::VideoColorMatrix { pub fn matrix(&self) -> crate::VideoColorMatrix {
from_glib(self.0.matrix) unsafe { from_glib(self.0.matrix) }
} }
pub fn transfer(&self) -> crate::VideoTransferFunction { pub fn transfer(&self) -> crate::VideoTransferFunction {
from_glib(self.0.transfer) unsafe { from_glib(self.0.transfer) }
} }
pub fn primaries(&self) -> crate::VideoColorPrimaries { pub fn primaries(&self) -> crate::VideoColorPrimaries {
from_glib(self.0.primaries) unsafe { from_glib(self.0.primaries) }
} }
} }
@ -209,7 +209,7 @@ impl fmt::Display for crate::VideoChromaSite {
impl From<crate::VideoMultiviewFramePacking> for crate::VideoMultiviewMode { impl From<crate::VideoMultiviewFramePacking> for crate::VideoMultiviewMode {
fn from(v: crate::VideoMultiviewFramePacking) -> Self { fn from(v: crate::VideoMultiviewFramePacking) -> Self {
skip_assert_initialized!(); skip_assert_initialized!();
from_glib(v.to_glib()) unsafe { from_glib(v.to_glib()) }
} }
} }
@ -221,7 +221,7 @@ impl std::convert::TryFrom<crate::VideoMultiviewMode> for crate::VideoMultiviewF
) -> Result<crate::VideoMultiviewFramePacking, glib::BoolError> { ) -> Result<crate::VideoMultiviewFramePacking, glib::BoolError> {
skip_assert_initialized!(); skip_assert_initialized!();
let v2 = from_glib(v.to_glib()); let v2 = unsafe { from_glib(v.to_glib()) };
if let crate::VideoMultiviewFramePacking::__Unknown(_) = v2 { if let crate::VideoMultiviewFramePacking::__Unknown(_) = v2 {
Err(glib::glib_bool_error!("Invalid frame packing mode")) Err(glib::glib_bool_error!("Invalid frame packing mode"))
@ -647,11 +647,11 @@ impl VideoInfo {
} }
pub fn interlace_mode(&self) -> crate::VideoInterlaceMode { pub fn interlace_mode(&self) -> crate::VideoInterlaceMode {
from_glib(self.0.interlace_mode) unsafe { from_glib(self.0.interlace_mode) }
} }
pub fn flags(&self) -> crate::VideoFlags { pub fn flags(&self) -> crate::VideoFlags {
from_glib(self.0.flags) unsafe { from_glib(self.0.flags) }
} }
pub fn size(&self) -> usize { pub fn size(&self) -> usize {
@ -663,7 +663,7 @@ impl VideoInfo {
} }
pub fn chroma_site(&self) -> crate::VideoChromaSite { pub fn chroma_site(&self) -> crate::VideoChromaSite {
from_glib(self.0.chroma_site) unsafe { from_glib(self.0.chroma_site) }
} }
pub fn colorimetry(&self) -> VideoColorimetry { pub fn colorimetry(&self) -> VideoColorimetry {

View file

@ -123,11 +123,11 @@ impl VideoMeta {
} }
pub fn get_flags(&self) -> crate::VideoFrameFlags { pub fn get_flags(&self) -> crate::VideoFrameFlags {
from_glib(self.0.flags) unsafe { from_glib(self.0.flags) }
} }
pub fn get_format(&self) -> crate::VideoFormat { pub fn get_format(&self) -> crate::VideoFormat {
from_glib(self.0.format) unsafe { from_glib(self.0.format) }
} }
pub fn get_id(&self) -> i32 { pub fn get_id(&self) -> i32 {
@ -339,7 +339,7 @@ impl VideoRegionOfInterestMeta {
} }
pub fn get_roi_type<'a>(&self) -> &'a str { pub fn get_roi_type<'a>(&self) -> &'a str {
glib::Quark::from_glib(self.0.roi_type).to_string() unsafe { glib::Quark::from_glib(self.0.roi_type).to_string() }
} }
#[cfg(feature = "v1_14")] #[cfg(feature = "v1_14")]
@ -581,7 +581,7 @@ impl VideoCaptionMeta {
} }
pub fn get_caption_type(&self) -> crate::VideoCaptionType { pub fn get_caption_type(&self) -> crate::VideoCaptionType {
from_glib(self.0.caption_type) unsafe { from_glib(self.0.caption_type) }
} }
pub fn get_data(&self) -> &[u8] { pub fn get_data(&self) -> &[u8] {
@ -654,11 +654,11 @@ impl VideoAFDMeta {
} }
pub fn get_spec(&self) -> crate::VideoAFDSpec { pub fn get_spec(&self) -> crate::VideoAFDSpec {
from_glib(self.0.spec) unsafe { from_glib(self.0.spec) }
} }
pub fn get_afd(&self) -> crate::VideoAFDValue { pub fn get_afd(&self) -> crate::VideoAFDValue {
from_glib(self.0.afd) unsafe { from_glib(self.0.afd) }
} }
} }
@ -726,7 +726,7 @@ impl VideoBarMeta {
} }
pub fn is_letterbox(&self) -> bool { pub fn is_letterbox(&self) -> bool {
from_glib(self.0.is_letterbox) unsafe { from_glib(self.0.is_letterbox) }
} }
pub fn get_bar_data1(&self) -> u32 { pub fn get_bar_data1(&self) -> u32 {

View file

@ -272,7 +272,7 @@ macro_rules! generic_impl {
} }
pub fn get_flags(&self) -> VideoTimeCodeFlags { pub fn get_flags(&self) -> VideoTimeCodeFlags {
from_glib(self.0.config.flags) unsafe { from_glib(self.0.config.flags) }
} }
pub fn get_latest_daily_jam(&self) -> Option<glib::DateTime> { pub fn get_latest_daily_jam(&self) -> Option<glib::DateTime> {

View file

@ -20,7 +20,7 @@ unsafe impl Sync for AllocationParams {}
impl AllocationParams { impl AllocationParams {
pub fn get_flags(&self) -> MemoryFlags { pub fn get_flags(&self) -> MemoryFlags {
from_glib(self.0.flags) unsafe { from_glib(self.0.flags) }
} }
pub fn get_align(&self) -> usize { pub fn get_align(&self) -> usize {

View file

@ -346,7 +346,7 @@ impl BufferRef {
} }
pub fn get_pts(&self) -> ClockTime { pub fn get_pts(&self) -> ClockTime {
from_glib(self.0.pts) unsafe { from_glib(self.0.pts) }
} }
pub fn set_pts(&mut self, pts: ClockTime) { pub fn set_pts(&mut self, pts: ClockTime) {
@ -354,7 +354,7 @@ impl BufferRef {
} }
pub fn get_dts(&self) -> ClockTime { pub fn get_dts(&self) -> ClockTime {
from_glib(self.0.dts) unsafe { from_glib(self.0.dts) }
} }
pub fn set_dts(&mut self, dts: ClockTime) { pub fn set_dts(&mut self, dts: ClockTime) {
@ -371,7 +371,7 @@ impl BufferRef {
} }
pub fn get_duration(&self) -> ClockTime { pub fn get_duration(&self) -> ClockTime {
from_glib(self.0.duration) unsafe { from_glib(self.0.duration) }
} }
pub fn set_duration(&mut self, duration: ClockTime) { pub fn set_duration(&mut self, duration: ClockTime) {

View file

@ -217,19 +217,19 @@ impl BufferPoolAcquireParams {
} }
pub fn flags(&self) -> crate::BufferPoolAcquireFlags { pub fn flags(&self) -> crate::BufferPoolAcquireFlags {
from_glib(self.0.flags) unsafe { from_glib(self.0.flags) }
} }
pub fn format(&self) -> crate::Format { pub fn format(&self) -> crate::Format {
from_glib(self.0.format) unsafe { from_glib(self.0.format) }
} }
pub fn start(&self) -> crate::GenericFormattedValue { pub fn start(&self) -> crate::GenericFormattedValue {
crate::GenericFormattedValue::new(from_glib(self.0.format), self.0.start) unsafe { crate::GenericFormattedValue::new(from_glib(self.0.format), self.0.start) }
} }
pub fn stop(&self) -> crate::GenericFormattedValue { pub fn stop(&self) -> crate::GenericFormattedValue {
crate::GenericFormattedValue::new(from_glib(self.0.format), self.0.stop) unsafe { crate::GenericFormattedValue::new(from_glib(self.0.format), self.0.stop) }
} }
} }

View file

@ -313,7 +313,7 @@ pub struct AtomicClockReturn(AtomicI32);
impl AtomicClockReturn { impl AtomicClockReturn {
pub fn load(&self) -> ClockReturn { pub fn load(&self) -> ClockReturn {
from_glib(self.0.load(atomic::Ordering::SeqCst)) unsafe { from_glib(self.0.load(atomic::Ordering::SeqCst)) }
} }
pub fn store(&self, val: ClockReturn) { pub fn store(&self, val: ClockReturn) {
@ -321,15 +321,17 @@ impl AtomicClockReturn {
} }
pub fn swap(&self, val: ClockReturn) -> ClockReturn { pub fn swap(&self, val: ClockReturn) -> ClockReturn {
from_glib(self.0.swap(val.to_glib(), atomic::Ordering::SeqCst)) unsafe { from_glib(self.0.swap(val.to_glib(), atomic::Ordering::SeqCst)) }
} }
pub fn compare_and_swap(&self, current: ClockReturn, new: ClockReturn) -> ClockReturn { pub fn compare_and_swap(&self, current: ClockReturn, new: ClockReturn) -> ClockReturn {
from_glib(self.0.compare_and_swap( unsafe {
current.to_glib(), from_glib(self.0.compare_and_swap(
new.to_glib(), current.to_glib(),
atomic::Ordering::SeqCst, new.to_glib(),
)) atomic::Ordering::SeqCst,
))
}
} }
} }

View file

@ -192,7 +192,7 @@ impl ToGlib for ClockTime {
#[doc(hidden)] #[doc(hidden)]
impl FromGlib<ffi::GstClockTime> for ClockTime { impl FromGlib<ffi::GstClockTime> for ClockTime {
fn from_glib(value: ffi::GstClockTime) -> Self { unsafe fn from_glib(value: ffi::GstClockTime) -> Self {
skip_assert_initialized!(); skip_assert_initialized!();
match value { match value {
ffi::GST_CLOCK_TIME_NONE => ClockTime(None), ffi::GST_CLOCK_TIME_NONE => ClockTime(None),
@ -205,7 +205,7 @@ impl FromGlib<ffi::GstClockTime> for ClockTime {
impl<'a> glib::value::FromValueOptional<'a> for ClockTime { impl<'a> glib::value::FromValueOptional<'a> for ClockTime {
unsafe fn from_value_optional(value: &'a glib::Value) -> Option<Self> { unsafe fn from_value_optional(value: &'a glib::Value) -> Option<Self> {
<u64 as glib::value::FromValueOptional>::from_value_optional(value) <u64 as glib::value::FromValueOptional>::from_value_optional(value)
.map(ClockTime::from_glib) .map(|x| ClockTime::from_glib(x))
} }
} }

View file

@ -118,7 +118,7 @@ impl TryFrom<DateTimeVariants> for Date {
skip_assert_initialized!(); skip_assert_initialized!();
match dt_variant { match dt_variant {
DateTimeVariants::YMD(y, m, d) => { DateTimeVariants::YMD(y, m, d) => {
let month = glib::DateMonth::from_glib(m); let month = unsafe { glib::DateMonth::from_glib(m) };
if let glib::DateMonth::__Unknown(_) = month { if let glib::DateMonth::__Unknown(_) = month {
return Err(glib::glib_bool_error!("Out of range `month` for `Date`")); return Err(glib::glib_bool_error!("Out of range `month` for `Date`"));
} }

View file

@ -45,10 +45,10 @@ impl ToGlib for DeviceMonitorFilterId {
} }
impl FromGlib<libc::c_uint> for DeviceMonitorFilterId { impl FromGlib<libc::c_uint> for DeviceMonitorFilterId {
fn from_glib(val: libc::c_uint) -> DeviceMonitorFilterId { unsafe fn from_glib(val: libc::c_uint) -> DeviceMonitorFilterId {
skip_assert_initialized!(); skip_assert_initialized!();
assert_ne!(val, 0); assert_ne!(val, 0);
DeviceMonitorFilterId(unsafe { NonZeroU32::new_unchecked(val) }) DeviceMonitorFilterId(NonZeroU32::new_unchecked(val))
} }
} }
@ -80,7 +80,7 @@ impl<O: IsA<DeviceMonitor>> DeviceMonitorExtManual for O {
if id == 0 { if id == 0 {
None None
} else { } else {
Some(from_glib(id)) Some(unsafe { from_glib(id) })
} }
} }

View file

@ -121,10 +121,10 @@ impl ToGlib for NotifyWatchId {
} }
impl FromGlib<libc::c_ulong> for NotifyWatchId { impl FromGlib<libc::c_ulong> for NotifyWatchId {
fn from_glib(val: libc::c_ulong) -> NotifyWatchId { unsafe fn from_glib(val: libc::c_ulong) -> NotifyWatchId {
skip_assert_initialized!(); skip_assert_initialized!();
assert_ne!(val, 0); assert_ne!(val, 0);
NotifyWatchId(unsafe { NonZeroU64::new_unchecked(val as u64) }) NotifyWatchId(NonZeroU64::new_unchecked(val as u64))
} }
} }

View file

@ -377,14 +377,14 @@ impl ops::Add<u32> for crate::TypeFindProbability {
fn add(self, rhs: u32) -> crate::TypeFindProbability { fn add(self, rhs: u32) -> crate::TypeFindProbability {
let res = (self.to_glib() as u32).saturating_add(rhs); let res = (self.to_glib() as u32).saturating_add(rhs);
from_glib(res as i32) unsafe { from_glib(res as i32) }
} }
} }
impl ops::AddAssign<u32> for crate::TypeFindProbability { impl ops::AddAssign<u32> for crate::TypeFindProbability {
fn add_assign(&mut self, rhs: u32) { fn add_assign(&mut self, rhs: u32) {
let res = (self.to_glib() as u32).saturating_add(rhs); let res = (self.to_glib() as u32).saturating_add(rhs);
*self = from_glib(res as i32); *self = unsafe { from_glib(res as i32) };
} }
} }
@ -393,14 +393,14 @@ impl ops::Sub<u32> for crate::TypeFindProbability {
fn sub(self, rhs: u32) -> crate::TypeFindProbability { fn sub(self, rhs: u32) -> crate::TypeFindProbability {
let res = (self.to_glib() as u32).saturating_sub(rhs); let res = (self.to_glib() as u32).saturating_sub(rhs);
from_glib(res as i32) unsafe { from_glib(res as i32) }
} }
} }
impl ops::SubAssign<u32> for crate::TypeFindProbability { impl ops::SubAssign<u32> for crate::TypeFindProbability {
fn sub_assign(&mut self, rhs: u32) { fn sub_assign(&mut self, rhs: u32) {
let res = (self.to_glib() as u32).saturating_sub(rhs); let res = (self.to_glib() as u32).saturating_sub(rhs);
*self = from_glib(res as i32); *self = unsafe { from_glib(res as i32) };
} }
} }
@ -429,14 +429,14 @@ impl ops::Add<u32> for crate::Rank {
fn add(self, rhs: u32) -> crate::Rank { fn add(self, rhs: u32) -> crate::Rank {
let res = (self.to_glib() as u32).saturating_add(rhs); let res = (self.to_glib() as u32).saturating_add(rhs);
from_glib(res as i32) unsafe { from_glib(res as i32) }
} }
} }
impl ops::AddAssign<u32> for crate::Rank { impl ops::AddAssign<u32> for crate::Rank {
fn add_assign(&mut self, rhs: u32) { fn add_assign(&mut self, rhs: u32) {
let res = (self.to_glib() as u32).saturating_add(rhs); let res = (self.to_glib() as u32).saturating_add(rhs);
*self = from_glib(res as i32); *self = unsafe { from_glib(res as i32) };
} }
} }
@ -445,14 +445,14 @@ impl ops::Sub<u32> for crate::Rank {
fn sub(self, rhs: u32) -> crate::Rank { fn sub(self, rhs: u32) -> crate::Rank {
let res = (self.to_glib() as u32).saturating_sub(rhs); let res = (self.to_glib() as u32).saturating_sub(rhs);
from_glib(res as i32) unsafe { from_glib(res as i32) }
} }
} }
impl ops::SubAssign<u32> for crate::Rank { impl ops::SubAssign<u32> for crate::Rank {
fn sub_assign(&mut self, rhs: u32) { fn sub_assign(&mut self, rhs: u32) {
let res = (self.to_glib() as u32).saturating_sub(rhs); let res = (self.to_glib() as u32).saturating_sub(rhs);
*self = from_glib(res as i32); *self = unsafe { from_glib(res as i32) };
} }
} }
@ -563,7 +563,7 @@ impl ToGlib for MessageType {
#[doc(hidden)] #[doc(hidden)]
impl FromGlib<ffi::GstMessageType> for MessageType { impl FromGlib<ffi::GstMessageType> for MessageType {
#[allow(clippy::unreadable_literal)] #[allow(clippy::unreadable_literal)]
fn from_glib(value: ffi::GstMessageType) -> Self { unsafe fn from_glib(value: ffi::GstMessageType) -> Self {
skip_assert_initialized!(); skip_assert_initialized!();
match value { match value {
0 => MessageType::Unknown, 0 => MessageType::Unknown,
@ -641,7 +641,7 @@ impl State {
let sign = (pending - current).signum(); let sign = (pending - current).signum();
from_glib(current + sign) unsafe { from_glib(current + sign) }
} }
} }
@ -650,7 +650,7 @@ impl StateChange {
skip_assert_initialized!(); skip_assert_initialized!();
let current = current.to_glib(); let current = current.to_glib();
let next = next.to_glib(); let next = next.to_glib();
from_glib((current << 3) | next) unsafe { from_glib((current << 3) | next) }
} }
pub fn current(self) -> State { pub fn current(self) -> State {

View file

@ -91,7 +91,7 @@ impl DebugCategory {
} }
pub fn get_threshold(self) -> crate::DebugLevel { pub fn get_threshold(self) -> crate::DebugLevel {
from_glib(unsafe { ffi::gst_debug_category_get_threshold(self.0.as_ptr()) }) unsafe { from_glib(ffi::gst_debug_category_get_threshold(self.0.as_ptr())) }
} }
pub fn set_threshold(self, threshold: crate::DebugLevel) { pub fn set_threshold(self, threshold: crate::DebugLevel) {

View file

@ -203,7 +203,7 @@ impl MemoryRef {
} }
pub fn get_flags(&self) -> MemoryFlags { pub fn get_flags(&self) -> MemoryFlags {
from_glib(self.0.mini_object.flags) unsafe { from_glib(self.0.mini_object.flags) }
} }
pub fn copy_part(&self, offset: isize, size: Option<usize>) -> Memory { pub fn copy_part(&self, offset: isize, size: Option<usize>) -> Memory {

View file

@ -387,11 +387,11 @@ impl ReferenceTimestampMeta {
} }
pub fn get_timestamp(&self) -> ClockTime { pub fn get_timestamp(&self) -> ClockTime {
from_glib(self.0.timestamp) unsafe { from_glib(self.0.timestamp) }
} }
pub fn get_duration(&self) -> ClockTime { pub fn get_duration(&self) -> ClockTime {
from_glib(self.0.duration) unsafe { from_glib(self.0.duration) }
} }
} }

View file

@ -53,10 +53,10 @@ impl ToGlib for PadProbeId {
} }
impl FromGlib<libc::c_ulong> for PadProbeId { impl FromGlib<libc::c_ulong> for PadProbeId {
fn from_glib(val: libc::c_ulong) -> PadProbeId { unsafe fn from_glib(val: libc::c_ulong) -> PadProbeId {
skip_assert_initialized!(); skip_assert_initialized!();
assert_ne!(val, 0); assert_ne!(val, 0);
PadProbeId(unsafe { NonZeroU64::new_unchecked(val as u64) }) PadProbeId(NonZeroU64::new_unchecked(val as u64))
} }
} }

View file

@ -364,7 +364,7 @@ impl<T: FormattedValue> FormattedSegment<T> {
} }
pub fn get_flags(&self) -> crate::SegmentFlags { pub fn get_flags(&self) -> crate::SegmentFlags {
from_glib(self.0.flags) unsafe { from_glib(self.0.flags) }
} }
pub fn set_flags(&mut self, flags: crate::SegmentFlags) { pub fn set_flags(&mut self, flags: crate::SegmentFlags) {
@ -392,7 +392,7 @@ impl<T: FormattedValue> FormattedSegment<T> {
} }
pub fn get_format(&self) -> Format { pub fn get_format(&self) -> Format {
from_glib(self.0.format) unsafe { from_glib(self.0.format) }
} }
pub fn get_base(&self) -> T { pub fn get_base(&self) -> T {