From acbe40f820ba72dc924f88c674b8eabf681f9302 Mon Sep 17 00:00:00 2001 From: Unixian <48267798+notunixian@users.noreply.github.com> Date: Sun, 26 Jan 2025 16:07:55 -0500 Subject: [PATCH] heap-allocated arrays -> stack allocated prevents leaks down the road --- dlls/d3d11_x/device_context_x.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/dlls/d3d11_x/device_context_x.cpp b/dlls/d3d11_x/device_context_x.cpp index 9b0a2e5..022fddd 100644 --- a/dlls/d3d11_x/device_context_x.cpp +++ b/dlls/d3d11_x/device_context_x.cpp @@ -136,7 +136,7 @@ void wd::device_context_x::VSSetShaderResources(ID3D11ShaderResourceView* const* if (ppShaderResourceViews != NULL) { - ID3D11ShaderResourceView** modifiedViews = new ID3D11ShaderResourceView * [NumViews] {0}; + ID3D11ShaderResourceView* modifiedViews[ D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ]; for (UINT i = 0; i < NumViews; i++) { @@ -159,7 +159,7 @@ void wd::device_context_x::GSSetShaderResources(ID3D11ShaderResourceView* const* if (ppShaderResourceViews != NULL) { - ID3D11ShaderResourceView** modifiedViews = new ID3D11ShaderResourceView * [NumViews] {0}; + ID3D11ShaderResourceView* modifiedViews[ D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ]; for (UINT i = 0; i < NumViews; i++) { @@ -188,7 +188,7 @@ void wd::device_context_x::HSSetShaderResources(ID3D11ShaderResourceView* const* if (ppShaderResourceViews != NULL) { - ID3D11ShaderResourceView** modifiedViews = new ID3D11ShaderResourceView * [NumViews] {0}; + ID3D11ShaderResourceView* modifiedViews[ D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ]; for (UINT i = 0; i < NumViews; i++) { @@ -217,7 +217,7 @@ void wd::device_context_x::DSSetShaderResources(ID3D11ShaderResourceView* const* if (ppShaderResourceViews != NULL) { - ID3D11ShaderResourceView** modifiedViews = new ID3D11ShaderResourceView * [NumViews] {0}; + ID3D11ShaderResourceView* modifiedViews[ D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ]; for (UINT i = 0; i < NumViews; i++) { @@ -226,11 +226,11 @@ void wd::device_context_x::DSSetShaderResources(ID3D11ShaderResourceView* const* else modifiedViews[ i ] = reinterpret_cast(ppShaderResourceViews[ i ])->wrapped_interface; } - wrapped_interface->HSSetShaderResources(StartSlot, NumViews, modifiedViews); + wrapped_interface->DSSetShaderResources(StartSlot, NumViews, modifiedViews); } else { - wrapped_interface->HSSetShaderResources(StartSlot, NumViews, ppShaderResourceViews); + wrapped_interface->DSSetShaderResources(StartSlot, NumViews, ppShaderResourceViews); } } @@ -247,7 +247,7 @@ void wd::device_context_x::CSSetShaderResources(ID3D11ShaderResourceView* const* if (ppShaderResourceViews != NULL) { - ID3D11ShaderResourceView** modifiedViews = new ID3D11ShaderResourceView * [NumViews] {0}; + ID3D11ShaderResourceView* modifiedViews[ D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ]; for (UINT i = 0; i < NumViews; i++) { @@ -256,11 +256,11 @@ void wd::device_context_x::CSSetShaderResources(ID3D11ShaderResourceView* const* else modifiedViews[ i ] = reinterpret_cast(ppShaderResourceViews[ i ])->wrapped_interface; } - wrapped_interface->HSSetShaderResources(StartSlot, NumViews, modifiedViews); + wrapped_interface->CSSetShaderResources(StartSlot, NumViews, modifiedViews); } else { - wrapped_interface->HSSetShaderResources(StartSlot, NumViews, ppShaderResourceViews); + wrapped_interface->CSSetShaderResources(StartSlot, NumViews, ppShaderResourceViews); } } @@ -302,13 +302,13 @@ void wd::device_context_x::GSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D1 void wd::device_context_x::OMSetRenderTargets(UINT NumViews, ID3D11RenderTargetView* const* ppRenderTargetViews, ID3D11DepthStencilView* pDepthStencilView) { - auto* depthStencilView = reinterpret_cast(pDepthStencilView); + auto* depthStencilView = pDepthStencilView; if (depthStencilView != nullptr) depthStencilView = reinterpret_cast(pDepthStencilView)->wrapped_interface; if (ppRenderTargetViews != NULL) { - ID3D11RenderTargetView** modifiedViews = new ID3D11RenderTargetView * [NumViews] {0}; + ID3D11RenderTargetView* modifiedViews[ D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT ]; for (UINT i = 0; i < NumViews; i++) { if (ppRenderTargetViews[ i ] == nullptr) @@ -597,7 +597,7 @@ void wd::device_context_x::IAGetVertexBuffers(UINT StartSlot, UINT NumBuffers, I { if (ppVertexBuffers != NULL) { - ID3D11Buffer* unwrappedBuffers[ D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ]; + ID3D11Buffer* unwrappedBuffers[ D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ]; wrapped_interface->IAGetVertexBuffers(StartSlot, NumBuffers, unwrappedBuffers, pStrides, pOffsets);