[PATCH 1/5] strmbase: Simplify copying PIN_INFO.
Zebediah Figura
z.figura12 at gmail.com
Tue Jul 3 16:56:49 CDT 2018
It is unlikely that using strcpy() instead of memcpy() amounts to an
optimization.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/strmbase/pin.c | 27 ++++++++-------------------
1 file changed, 8 insertions(+), 19 deletions(-)
diff --git a/dlls/strmbase/pin.c b/dlls/strmbase/pin.c
index ef22a57..f3ce7d0 100644
--- a/dlls/strmbase/pin.c
+++ b/dlls/strmbase/pin.c
@@ -143,17 +143,6 @@ out:
return hr;
}
-static void Copy_PinInfo(PIN_INFO * pDest, const PIN_INFO * pSrc)
-{
- /* Tempting to just do a memcpy, but the name field is
- 128 characters long! We will probably never exceed 10
- most of the time, so we are better off copying
- each field manually */
- strcpyW(pDest->achName, pSrc->achName);
- pDest->dir = pSrc->dir;
- pDest->pFilter = pSrc->pFilter;
-}
-
static void dump_AM_MEDIA_TYPE(const AM_MEDIA_TYPE * pmt)
{
if (!pmt)
@@ -270,14 +259,14 @@ HRESULT WINAPI BasePinImpl_ConnectionMediaType(IPin * iface, AM_MEDIA_TYPE * pmt
return hr;
}
-HRESULT WINAPI BasePinImpl_QueryPinInfo(IPin * iface, PIN_INFO * pInfo)
+HRESULT WINAPI BasePinImpl_QueryPinInfo(IPin *iface, PIN_INFO *info)
{
BasePin *This = impl_from_IPin(iface);
- TRACE("(%p)->(%p)\n", This, pInfo);
+ TRACE("(%p)->(%p)\n", This, info);
- Copy_PinInfo(pInfo, &This->pinInfo);
- IBaseFilter_AddRef(pInfo->pFilter);
+ memcpy(info, &This->pinInfo, sizeof(*info));
+ IBaseFilter_AddRef(info->pFilter);
return S_OK;
}
@@ -766,7 +755,7 @@ HRESULT WINAPI BaseOutputPinImpl_AttemptConnection(BasePin* iface, IPin * pRecei
return hr;
}
-static HRESULT OutputPin_Init(const IPinVtbl *OutputPin_Vtbl, const PIN_INFO * pPinInfo, const BaseOutputPinFuncTable* vtbl, LPCRITICAL_SECTION pCritSec, BaseOutputPin * pPinImpl)
+static HRESULT OutputPin_Init(const IPinVtbl *OutputPin_Vtbl, const PIN_INFO *info, const BaseOutputPinFuncTable *vtbl, LPCRITICAL_SECTION pCritSec, BaseOutputPin *pPinImpl)
{
TRACE("(%p)\n", pPinImpl);
@@ -778,7 +767,7 @@ static HRESULT OutputPin_Init(const IPinVtbl *OutputPin_Vtbl, const PIN_INFO * p
pPinImpl->pin.tStart = 0;
pPinImpl->pin.tStop = 0;
pPinImpl->pin.dRate = 1.0;
- Copy_PinInfo(&pPinImpl->pin.pinInfo, pPinInfo);
+ memcpy(&pPinImpl->pin.pinInfo, info, sizeof(*info));
pPinImpl->pin.pFuncsTable = &vtbl->base;
ZeroMemory(&pPinImpl->pin.mtCurrent, sizeof(AM_MEDIA_TYPE));
@@ -1149,7 +1138,7 @@ static const IMemInputPinVtbl MemInputPin_Vtbl =
MemInputPin_ReceiveCanBlock
};
-static HRESULT InputPin_Init(const IPinVtbl *InputPin_Vtbl, const PIN_INFO * pPinInfo,
+static HRESULT InputPin_Init(const IPinVtbl *InputPin_Vtbl, const PIN_INFO *info,
const BaseInputPinFuncTable* vtbl,
LPCRITICAL_SECTION pCritSec, IMemAllocator *allocator, BaseInputPin * pPinImpl)
{
@@ -1162,7 +1151,7 @@ static HRESULT InputPin_Init(const IPinVtbl *InputPin_Vtbl, const PIN_INFO * pPi
pPinImpl->pin.tStart = 0;
pPinImpl->pin.tStop = 0;
pPinImpl->pin.dRate = 1.0;
- Copy_PinInfo(&pPinImpl->pin.pinInfo, pPinInfo);
+ memcpy(&pPinImpl->pin.pinInfo, info, sizeof(*info));
ZeroMemory(&pPinImpl->pin.mtCurrent, sizeof(AM_MEDIA_TYPE));
pPinImpl->pin.pFuncsTable = &vtbl->base;
--
2.7.4
More information about the wine-devel
mailing list