From efbc27909c593f0a963da5fb36eea99cc170676b Mon Sep 17 00:00:00 2001 From: baldurk Date: Sun, 5 Oct 2014 16:32:14 +0100 Subject: [PATCH] [Refs #87: Static Analysis] Couple of cases that confused the analyser --- renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp | 6 ++++-- renderdoc/hooks/dxgi_hooks.cpp | 2 ++ renderdoc/hooks/sys_win32_hooks.cpp | 8 ++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp index 7bf50e371..dd9b137f1 100644 --- a/renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp @@ -103,8 +103,10 @@ bool WrappedOpenGL::Serialise_glShaderSource(GLuint shader, GLsizei count, const if(m_State == READING) { - const char **strings = new const char*[srcs.size()]; - for(size_t i=0; i < srcs.size(); i++) + size_t numStrings = srcs.size(); + + const char **strings = new const char*[numStrings]; + for(size_t i=0; i < numStrings; i++) strings[i] = srcs[i].c_str(); ResourceId liveId = GetResourceManager()->GetLiveID(id); diff --git a/renderdoc/hooks/dxgi_hooks.cpp b/renderdoc/hooks/dxgi_hooks.cpp index 1238f79ed..5fbb67510 100644 --- a/renderdoc/hooks/dxgi_hooks.cpp +++ b/renderdoc/hooks/dxgi_hooks.cpp @@ -93,6 +93,7 @@ private: static HRESULT WINAPI CreateDXGIFactory_hook(__in REFIID riid, __out void **ppFactory) { + if(ppFactory) *ppFactory = NULL; HRESULT ret = dxgihooks.CreateDXGIFactory()(riid, ppFactory); if(SUCCEEDED(ret) && dxgihooks.m_EnabledHooks) @@ -103,6 +104,7 @@ private: static HRESULT WINAPI CreateDXGIFactory1_hook(__in REFIID riid, __out void **ppFactory) { + if(ppFactory) *ppFactory = NULL; HRESULT ret = dxgihooks.CreateDXGIFactory1()(riid, ppFactory); if(SUCCEEDED(ret) && dxgihooks.m_EnabledHooks) diff --git a/renderdoc/hooks/sys_win32_hooks.cpp b/renderdoc/hooks/sys_win32_hooks.cpp index da388e709..5e18663a1 100644 --- a/renderdoc/hooks/sys_win32_hooks.cpp +++ b/renderdoc/hooks/sys_win32_hooks.cpp @@ -112,6 +112,10 @@ class SysHook : LibraryHook { lpProcessInformation = &dummy; } + else + { + *lpProcessInformation = dummy; + } dwCreationFlags |= CREATE_SUSPENDED; @@ -164,6 +168,10 @@ class SysHook : LibraryHook { lpProcessInformation = &dummy; } + else + { + *lpProcessInformation = dummy; + } dwCreationFlags |= CREATE_SUSPENDED;