From e3b42b56af43da03e3262d732b812b141a934855 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 7 Mar 2018 11:26:10 +0000 Subject: [PATCH] Handle NULL being passed to SetPrivateData/SetName --- renderdoc/driver/d3d11/d3d11_common.h | 2 +- renderdoc/driver/d3d11/d3d11_device.cpp | 2 +- renderdoc/driver/d3d12/d3d12_device.cpp | 6 +++--- renderdoc/driver/d3d12/d3d12_resources.h | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/renderdoc/driver/d3d11/d3d11_common.h b/renderdoc/driver/d3d11/d3d11_common.h index 7ec399e4b..800239ce8 100644 --- a/renderdoc/driver/d3d11/d3d11_common.h +++ b/renderdoc/driver/d3d11/d3d11_common.h @@ -182,7 +182,7 @@ template inline void SetDebugName(T *pObj, const char *name) { if(pObj) - pObj->SetPrivateData(WKPDID_D3DDebugObjectName, (UINT)strlen(name), name); + pObj->SetPrivateData(WKPDID_D3DDebugObjectName, name ? (UINT)strlen(name) : 0, name); } template diff --git a/renderdoc/driver/d3d11/d3d11_device.cpp b/renderdoc/driver/d3d11/d3d11_device.cpp index 4b4d7c027..fd7c57178 100644 --- a/renderdoc/driver/d3d11/d3d11_device.cpp +++ b/renderdoc/driver/d3d11/d3d11_device.cpp @@ -2224,7 +2224,7 @@ bool WrappedID3D11Device::Serialise_SetResourceName(SerialiserType &ser, { ResourceDescription &descr = GetReplay()->GetResourceDesc( GetResourceManager()->GetOriginalID(GetIDForResource(pResource))); - descr.SetCustomName(Name); + descr.SetCustomName(Name ? Name : ""); AddResourceCurChunk(descr); SetDebugName(pResource, Name); diff --git a/renderdoc/driver/d3d12/d3d12_device.cpp b/renderdoc/driver/d3d12/d3d12_device.cpp index 8791ae333..35dbe727f 100644 --- a/renderdoc/driver/d3d12/d3d12_device.cpp +++ b/renderdoc/driver/d3d12/d3d12_device.cpp @@ -1945,13 +1945,13 @@ bool WrappedID3D12Device::Serialise_SetName(SerialiserType &ser, ID3D12DeviceChi if(IsReplayingAndReading() && pResource) { ResourceId origId = GetResourceManager()->GetOriginalID(GetResID(pResource)); - m_ResourceNames[origId] = Name; + m_ResourceNames[origId] = Name ? Name : ""; ResourceDescription &descr = GetReplay()->GetResourceDesc(origId); - descr.SetCustomName(Name); + descr.SetCustomName(Name ? Name : ""); AddResourceCurChunk(descr); - pResource->SetName(StringFormat::UTF82Wide(Name).c_str()); + pResource->SetName(StringFormat::UTF82Wide(Name ? Name : "").c_str()); } return true; diff --git a/renderdoc/driver/d3d12/d3d12_resources.h b/renderdoc/driver/d3d12/d3d12_resources.h index 5833f178a..d171ee082 100644 --- a/renderdoc/driver/d3d12/d3d12_resources.h +++ b/renderdoc/driver/d3d12/d3d12_resources.h @@ -288,7 +288,7 @@ public: HRESULT STDMETHODCALLTYPE SetName(LPCWSTR Name) { - string utf8 = StringFormat::Wide2UTF8(Name); + string utf8 = Name ? StringFormat::Wide2UTF8(Name) : ""; m_pDevice->SetName(this, utf8.c_str()); if(!m_pReal)