diff --git a/Core/HLE/sceKernelThread.cpp b/Core/HLE/sceKernelThread.cpp index d594443130..3602fdbce0 100644 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -487,7 +487,8 @@ public: currentStack.start = 0; } - ~Thread() + // Can't use a destructor since savestates will call that too. + void Cleanup() { // Callbacks are automatically deleted when their owning thread is deleted. for (auto it = callbacks.begin(), end = callbacks.end(); it != end; ++it) @@ -1798,6 +1799,8 @@ u32 __KernelDeleteThread(SceUID threadID, int exitStatus, const char *reason) if (callback && callback->nc.notifyCount != 0) readyCallbacksCount--; } + + t->Cleanup(); } return kernelObjects.Destroy(threadID); diff --git a/GPU/Directx9/helper/global.cpp b/GPU/Directx9/helper/global.cpp index 47ed09701c..0a48fa6bda 100644 --- a/GPU/Directx9/helper/global.cpp +++ b/GPU/Directx9/helper/global.cpp @@ -74,8 +74,8 @@ LPDIRECT3DPIXELSHADER9 pFramebufferPixelShader = NULL; // Pixel Shader bool CompilePixelShader(const char * code, LPDIRECT3DPIXELSHADER9 * pShader, LPD3DXCONSTANTTABLE * pShaderTable) { LPD3DXCONSTANTTABLE shaderTable = *pShaderTable; - ID3DXBuffer* pShaderCode; - ID3DXBuffer* pErrorMsg; + ID3DXBuffer* pShaderCode = NULL; + ID3DXBuffer* pErrorMsg = NULL; HRESULT hr = -1; @@ -111,8 +111,8 @@ bool CompilePixelShader(const char * code, LPDIRECT3DPIXELSHADER9 * pShader, LPD bool CompileVertexShader(const char * code, LPDIRECT3DVERTEXSHADER9 * pShader, LPD3DXCONSTANTTABLE * pShaderTable) { LPD3DXCONSTANTTABLE shaderTable = *pShaderTable; - ID3DXBuffer* pShaderCode; - ID3DXBuffer* pErrorMsg; + ID3DXBuffer* pShaderCode = NULL; + ID3DXBuffer* pErrorMsg = NULL; HRESULT hr = -1; @@ -146,8 +146,8 @@ bool CompileVertexShader(const char * code, LPDIRECT3DVERTEXSHADER9 * pShader, L } void CompileShaders() { - ID3DXBuffer* pShaderCode; - ID3DXBuffer* pErrorMsg; + ID3DXBuffer* pShaderCode = NULL; + ID3DXBuffer* pErrorMsg = NULL; HRESULT hr = -1; #ifdef _XBOX diff --git a/Windows/Debugger/CtrlDisAsmView.cpp b/Windows/Debugger/CtrlDisAsmView.cpp index 36036360ba..5caa60abbf 100644 --- a/Windows/Debugger/CtrlDisAsmView.cpp +++ b/Windows/Debugger/CtrlDisAsmView.cpp @@ -1141,7 +1141,7 @@ void CtrlDisAsmView::search(bool continueSearch) return; } - for (int i = 0; i < searchQuery.size(); i++) + for (size_t i = 0; i < searchQuery.size(); i++) { searchQuery[i] = tolower(searchQuery[i]); }