Skip to content

Commit

Permalink
Avoid transmute for direct return values where no translation occurs (
Browse files Browse the repository at this point in the history
  • Loading branch information
kennykerr authored Jul 14, 2022
1 parent 56f7799 commit 623f66b
Show file tree
Hide file tree
Showing 194 changed files with 13,706 additions and 13,837 deletions.
2 changes: 1 addition & 1 deletion crates/libs/bindgen/src/com_methods.rs
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ pub fn gen(gen: &Gen, def: TypeDef, kind: InterfaceKind, method: MethodDef, meth
#doc
#features
pub unsafe fn #name<#generics>(&self, #params) #return_type #where_clause {
::core::mem::transmute((::windows::core::Interface::vtable(self)#bases.#vname)(::windows::core::Interface::as_raw(self), #args))
(::windows::core::Interface::vtable(self)#bases.#vname)(::windows::core::Interface::as_raw(self), #args)
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion crates/libs/bindgen/src/functions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ fn gen_win_function(gen: &Gen, def: MethodDef) -> TokenStream {
extern "system" {
fn #name(#(#abi_params),*) #abi_return_type;
}
::core::mem::transmute(#name(#args))
#name(#args)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -225,16 +225,16 @@ impl IMLOperatorKernelCreationContext {
(::windows::core::Interface::vtable(self).base__.GetStringAttributeElement)(::windows::core::Interface::as_raw(self), name.into(), elementindex, attributeelement.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(attributeelement))).ok()
}
pub unsafe fn GetInputCount(&self) -> u32 {
::core::mem::transmute((::windows::core::Interface::vtable(self).GetInputCount)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).GetInputCount)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn GetOutputCount(&self) -> u32 {
::core::mem::transmute((::windows::core::Interface::vtable(self).GetOutputCount)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).GetOutputCount)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn IsInputValid(&self, inputindex: u32) -> bool {
::core::mem::transmute((::windows::core::Interface::vtable(self).IsInputValid)(::windows::core::Interface::as_raw(self), inputindex))
(::windows::core::Interface::vtable(self).IsInputValid)(::windows::core::Interface::as_raw(self), inputindex)
}
pub unsafe fn IsOutputValid(&self, outputindex: u32) -> bool {
::core::mem::transmute((::windows::core::Interface::vtable(self).IsOutputValid)(::windows::core::Interface::as_raw(self), outputindex))
(::windows::core::Interface::vtable(self).IsOutputValid)(::windows::core::Interface::as_raw(self), outputindex)
}
pub unsafe fn GetInputEdgeDescription(&self, inputindex: u32) -> ::windows::core::Result<MLOperatorEdgeDescription> {
let mut result__ = ::core::mem::MaybeUninit::zeroed();
Expand All @@ -245,7 +245,7 @@ impl IMLOperatorKernelCreationContext {
(::windows::core::Interface::vtable(self).GetOutputEdgeDescription)(::windows::core::Interface::as_raw(self), outputindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<MLOperatorEdgeDescription>(result__)
}
pub unsafe fn HasTensorShapeDescription(&self) -> bool {
::core::mem::transmute((::windows::core::Interface::vtable(self).HasTensorShapeDescription)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).HasTensorShapeDescription)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn GetTensorShapeDescription(&self) -> ::windows::core::Result<IMLOperatorTensorShapeDescription> {
let mut result__ = ::core::mem::MaybeUninit::zeroed();
Expand Down Expand Up @@ -464,16 +464,16 @@ impl IMLOperatorShapeInferenceContext {
(::windows::core::Interface::vtable(self).base__.GetStringAttributeElement)(::windows::core::Interface::as_raw(self), name.into(), elementindex, attributeelement.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(attributeelement))).ok()
}
pub unsafe fn GetInputCount(&self) -> u32 {
::core::mem::transmute((::windows::core::Interface::vtable(self).GetInputCount)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).GetInputCount)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn GetOutputCount(&self) -> u32 {
::core::mem::transmute((::windows::core::Interface::vtable(self).GetOutputCount)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).GetOutputCount)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn IsInputValid(&self, inputindex: u32) -> bool {
::core::mem::transmute((::windows::core::Interface::vtable(self).IsInputValid)(::windows::core::Interface::as_raw(self), inputindex))
(::windows::core::Interface::vtable(self).IsInputValid)(::windows::core::Interface::as_raw(self), inputindex)
}
pub unsafe fn IsOutputValid(&self, outputindex: u32) -> bool {
::core::mem::transmute((::windows::core::Interface::vtable(self).IsOutputValid)(::windows::core::Interface::as_raw(self), outputindex))
(::windows::core::Interface::vtable(self).IsOutputValid)(::windows::core::Interface::as_raw(self), outputindex)
}
pub unsafe fn GetInputEdgeDescription(&self, inputindex: u32) -> ::windows::core::Result<MLOperatorEdgeDescription> {
let mut result__ = ::core::mem::MaybeUninit::zeroed();
Expand Down Expand Up @@ -610,22 +610,22 @@ pub struct IMLOperatorShapeInferrer_Vtbl {
pub struct IMLOperatorTensor(::windows::core::IUnknown);
impl IMLOperatorTensor {
pub unsafe fn GetDimensionCount(&self) -> u32 {
::core::mem::transmute((::windows::core::Interface::vtable(self).GetDimensionCount)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).GetDimensionCount)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn GetShape(&self, dimensions: &mut [u32]) -> ::windows::core::Result<()> {
(::windows::core::Interface::vtable(self).GetShape)(::windows::core::Interface::as_raw(self), dimensions.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dimensions))).ok()
}
pub unsafe fn GetTensorDataType(&self) -> MLOperatorTensorDataType {
::core::mem::transmute((::windows::core::Interface::vtable(self).GetTensorDataType)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).GetTensorDataType)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn IsCpuData(&self) -> bool {
::core::mem::transmute((::windows::core::Interface::vtable(self).IsCpuData)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).IsCpuData)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn IsDataInterface(&self) -> bool {
::core::mem::transmute((::windows::core::Interface::vtable(self).IsDataInterface)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).IsDataInterface)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn GetData(&self) -> *mut ::core::ffi::c_void {
::core::mem::transmute((::windows::core::Interface::vtable(self).GetData)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).GetData)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn GetDataInterface(&self, datainterface: *mut ::core::option::Option<::windows::core::IUnknown>) {
(::windows::core::Interface::vtable(self).GetDataInterface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(datainterface))
Expand Down Expand Up @@ -690,7 +690,7 @@ impl IMLOperatorTensorShapeDescription {
(::windows::core::Interface::vtable(self).GetInputTensorShape)(::windows::core::Interface::as_raw(self), inputindex, dimensions.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dimensions))).ok()
}
pub unsafe fn HasOutputShapeDescription(&self) -> bool {
::core::mem::transmute((::windows::core::Interface::vtable(self).HasOutputShapeDescription)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).HasOutputShapeDescription)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn GetOutputTensorDimensionCount(&self, outputindex: u32) -> ::windows::core::Result<u32> {
let mut result__ = ::core::mem::MaybeUninit::zeroed();
Expand Down Expand Up @@ -776,16 +776,16 @@ impl IMLOperatorTypeInferenceContext {
(::windows::core::Interface::vtable(self).base__.GetStringAttributeElement)(::windows::core::Interface::as_raw(self), name.into(), elementindex, attributeelement.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(attributeelement))).ok()
}
pub unsafe fn GetInputCount(&self) -> u32 {
::core::mem::transmute((::windows::core::Interface::vtable(self).GetInputCount)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).GetInputCount)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn GetOutputCount(&self) -> u32 {
::core::mem::transmute((::windows::core::Interface::vtable(self).GetOutputCount)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).GetOutputCount)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn IsInputValid(&self, inputindex: u32) -> bool {
::core::mem::transmute((::windows::core::Interface::vtable(self).IsInputValid)(::windows::core::Interface::as_raw(self), inputindex))
(::windows::core::Interface::vtable(self).IsInputValid)(::windows::core::Interface::as_raw(self), inputindex)
}
pub unsafe fn IsOutputValid(&self, outputindex: u32) -> bool {
::core::mem::transmute((::windows::core::Interface::vtable(self).IsOutputValid)(::windows::core::Interface::as_raw(self), outputindex))
(::windows::core::Interface::vtable(self).IsOutputValid)(::windows::core::Interface::as_raw(self), outputindex)
}
pub unsafe fn GetInputEdgeDescription(&self, inputindex: u32) -> ::windows::core::Result<MLOperatorEdgeDescription> {
let mut result__ = ::core::mem::MaybeUninit::zeroed();
Expand Down
2 changes: 1 addition & 1 deletion crates/libs/windows/src/Windows/Win32/Data/HtmlHelp/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1150,7 +1150,7 @@ impl IITPropList {
#[doc = "*Required features: `\"Win32_System_Com\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn IsDirty(&self) -> ::windows::core::HRESULT {
::core::mem::transmute((::windows::core::Interface::vtable(self).base__.IsDirty)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).base__.IsDirty)(::windows::core::Interface::as_raw(self))
}
#[doc = "*Required features: `\"Win32_System_Com\"`*"]
#[cfg(feature = "Win32_System_Com")]
Expand Down
16 changes: 8 additions & 8 deletions crates/libs/windows/src/Windows/Win32/Data/Xml/XmlLite/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -137,24 +137,24 @@ impl IXmlReader {
(::windows::core::Interface::vtable(self).SetProperty)(::windows::core::Interface::as_raw(self), nproperty, pvalue).ok()
}
pub unsafe fn Read(&self, pnodetype: *mut XmlNodeType) -> ::windows::core::HRESULT {
::core::mem::transmute((::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnodetype)))
(::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnodetype))
}
pub unsafe fn GetNodeType(&self) -> ::windows::core::Result<XmlNodeType> {
let mut result__ = ::core::mem::MaybeUninit::zeroed();
(::windows::core::Interface::vtable(self).GetNodeType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<XmlNodeType>(result__)
}
pub unsafe fn MoveToFirstAttribute(&self) -> ::windows::core::HRESULT {
::core::mem::transmute((::windows::core::Interface::vtable(self).MoveToFirstAttribute)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).MoveToFirstAttribute)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn MoveToNextAttribute(&self) -> ::windows::core::HRESULT {
::core::mem::transmute((::windows::core::Interface::vtable(self).MoveToNextAttribute)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).MoveToNextAttribute)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn MoveToAttributeByName<'a, P0, P1>(&self, pwszlocalname: P0, pwsznamespaceuri: P1) -> ::windows::core::HRESULT
where
P0: ::std::convert::Into<::windows::core::PCWSTR>,
P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
::core::mem::transmute((::windows::core::Interface::vtable(self).MoveToAttributeByName)(::windows::core::Interface::as_raw(self), pwszlocalname.into(), pwsznamespaceuri.into()))
(::windows::core::Interface::vtable(self).MoveToAttributeByName)(::windows::core::Interface::as_raw(self), pwszlocalname.into(), pwsznamespaceuri.into())
}
pub unsafe fn MoveToElement(&self) -> ::windows::core::Result<()> {
(::windows::core::Interface::vtable(self).MoveToElement)(::windows::core::Interface::as_raw(self)).ok()
Expand All @@ -175,20 +175,20 @@ impl IXmlReader {
(::windows::core::Interface::vtable(self).GetValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcwchvalue)).ok()
}
pub unsafe fn ReadValueChunk(&self, pwchbuffer: &mut [u16], pcwchread: *mut u32) -> ::windows::core::HRESULT {
::core::mem::transmute((::windows::core::Interface::vtable(self).ReadValueChunk)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwchbuffer)), pwchbuffer.len() as _, ::core::mem::transmute(pcwchread)))
(::windows::core::Interface::vtable(self).ReadValueChunk)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwchbuffer)), pwchbuffer.len() as _, ::core::mem::transmute(pcwchread))
}
pub unsafe fn GetBaseUri(&self, ppwszbaseuri: *mut ::windows::core::PWSTR, pcwchbaseuri: *mut u32) -> ::windows::core::Result<()> {
(::windows::core::Interface::vtable(self).GetBaseUri)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppwszbaseuri), ::core::mem::transmute(pcwchbaseuri)).ok()
}
#[doc = "*Required features: `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn IsDefault(&self) -> super::super::super::Foundation::BOOL {
::core::mem::transmute((::windows::core::Interface::vtable(self).IsDefault)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).IsDefault)(::windows::core::Interface::as_raw(self))
}
#[doc = "*Required features: `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn IsEmptyElement(&self) -> super::super::super::Foundation::BOOL {
::core::mem::transmute((::windows::core::Interface::vtable(self).IsEmptyElement)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).IsEmptyElement)(::windows::core::Interface::as_raw(self))
}
pub unsafe fn GetLineNumber(&self) -> ::windows::core::Result<u32> {
let mut result__ = ::core::mem::MaybeUninit::zeroed();
Expand All @@ -209,7 +209,7 @@ impl IXmlReader {
#[doc = "*Required features: `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn IsEOF(&self) -> super::super::super::Foundation::BOOL {
::core::mem::transmute((::windows::core::Interface::vtable(self).IsEOF)(::windows::core::Interface::as_raw(self)))
(::windows::core::Interface::vtable(self).IsEOF)(::windows::core::Interface::as_raw(self))
}
}
impl ::core::convert::From<IXmlReader> for ::windows::core::IUnknown {
Expand Down
Loading

0 comments on commit 623f66b

Please sign in to comment.