gameux: Fix release/free of uninitialized pointers (Coverity).
This commit is contained in:
parent
ab8cc4acdb
commit
0bbd6cb050
|
@ -681,7 +681,7 @@ static HRESULT GAMEUX_UpdateGame(LPGUID InstanceID) {
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
GAME_INSTALL_SCOPE installScope;
|
GAME_INSTALL_SCOPE installScope;
|
||||||
LPWSTR lpRegistryPath;
|
LPWSTR lpRegistryPath;
|
||||||
LPWSTR lpGDFBinaryPath, lpGameInstallDirectory;
|
LPWSTR lpGDFBinaryPath;
|
||||||
|
|
||||||
TRACE("(%s)\n", debugstr_guid(InstanceID));
|
TRACE("(%s)\n", debugstr_guid(InstanceID));
|
||||||
|
|
||||||
|
@ -702,6 +702,8 @@ static HRESULT GAMEUX_UpdateGame(LPGUID InstanceID) {
|
||||||
|
|
||||||
if(SUCCEEDED(hr))
|
if(SUCCEEDED(hr))
|
||||||
{
|
{
|
||||||
|
WCHAR *lpGameInstallDirectory = NULL;
|
||||||
|
|
||||||
/* game found, it's registry path is in lpRegistryPath and install
|
/* game found, it's registry path is in lpRegistryPath and install
|
||||||
* scope in installScope */
|
* scope in installScope */
|
||||||
TRACE("game found in registry (path %s), updating\n", debugstr_w(lpRegistryPath));
|
TRACE("game found in registry (path %s), updating\n", debugstr_w(lpRegistryPath));
|
||||||
|
|
|
@ -112,7 +112,7 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
|
||||||
|
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
IXMLDOMDocument *document;
|
IXMLDOMDocument *document;
|
||||||
IXMLDOMElement *root, *categoryElement, *statisticsElement;
|
IXMLDOMElement *root, *statisticsElement;
|
||||||
IXMLDOMNode *categoryNode, *statisticsNode;
|
IXMLDOMNode *categoryNode, *statisticsNode;
|
||||||
VARIANT vStatsFilePath, vValue;
|
VARIANT vStatsFilePath, vValue;
|
||||||
BSTR bstrStatistics = NULL, bstrCategory = NULL, bstrIndex = NULL,
|
BSTR bstrStatistics = NULL, bstrCategory = NULL, bstrIndex = NULL,
|
||||||
|
@ -178,6 +178,8 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
|
||||||
if(SUCCEEDED(hr))
|
if(SUCCEEDED(hr))
|
||||||
for(i=0; i<MAX_CATEGORIES; ++i)
|
for(i=0; i<MAX_CATEGORIES; ++i)
|
||||||
{
|
{
|
||||||
|
IXMLDOMElement *categoryElement = NULL;
|
||||||
|
|
||||||
if(lstrlenW(stats->categories[i].sName)==0)
|
if(lstrlenW(stats->categories[i].sName)==0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -187,7 +189,7 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
|
||||||
hr = IXMLDOMDocument_createNode(document, vValue, bstrCategory, NULL, &categoryNode);
|
hr = IXMLDOMDocument_createNode(document, vValue, bstrCategory, NULL, &categoryNode);
|
||||||
|
|
||||||
if(SUCCEEDED(hr))
|
if(SUCCEEDED(hr))
|
||||||
hr = IXMLDOMNode_QueryInterface(categoryNode, &IID_IXMLDOMElement, (LPVOID*)&categoryElement);
|
hr = IXMLDOMNode_QueryInterface(categoryNode, &IID_IXMLDOMElement, (void**)&categoryElement);
|
||||||
|
|
||||||
V_INT(&vValue) = i;
|
V_INT(&vValue) = i;
|
||||||
if(SUCCEEDED(hr))
|
if(SUCCEEDED(hr))
|
||||||
|
@ -207,6 +209,9 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
|
||||||
hr = IXMLDOMElement_setAttribute(categoryElement, bstrName, vValue);
|
hr = IXMLDOMElement_setAttribute(categoryElement, bstrName, vValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (categoryElement)
|
||||||
|
IXMLDOMElement_Release(categoryElement);
|
||||||
|
|
||||||
SysFreeString(V_BSTR(&vValue));
|
SysFreeString(V_BSTR(&vValue));
|
||||||
|
|
||||||
if(SUCCEEDED(hr))
|
if(SUCCEEDED(hr))
|
||||||
|
@ -269,7 +274,6 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
|
||||||
if(SUCCEEDED(hr))
|
if(SUCCEEDED(hr))
|
||||||
hr = IXMLDOMElement_appendChild(root, categoryNode, &categoryNode);
|
hr = IXMLDOMElement_appendChild(root, categoryNode, &categoryNode);
|
||||||
|
|
||||||
IXMLDOMElement_Release(categoryElement);
|
|
||||||
IXMLDOMNode_Release(categoryNode);
|
IXMLDOMNode_Release(categoryNode);
|
||||||
|
|
||||||
if(FAILED(hr))
|
if(FAILED(hr))
|
||||||
|
@ -939,16 +943,13 @@ static HRESULT WINAPI GameStatisticsImpl_Save(
|
||||||
BOOL trackChanges)
|
BOOL trackChanges)
|
||||||
{
|
{
|
||||||
GameStatisticsImpl *This = impl_from_IGameStatistics(iface);
|
GameStatisticsImpl *This = impl_from_IGameStatistics(iface);
|
||||||
HRESULT hr = S_OK;
|
|
||||||
|
|
||||||
TRACE("(%p, %d)\n", This, trackChanges);
|
TRACE("(%p, %d)\n", This, trackChanges);
|
||||||
|
|
||||||
if(trackChanges)
|
if(trackChanges)
|
||||||
FIXME("tracking changes not yet implemented\n");
|
FIXME("tracking changes not yet implemented\n");
|
||||||
|
|
||||||
hr = GAMEUX_updateStatisticsFile(&This->stats);
|
return GAMEUX_updateStatisticsFile(&This->stats);
|
||||||
|
|
||||||
return hr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI GameStatisticsImpl_SetLastPlayedCategory(
|
static HRESULT WINAPI GameStatisticsImpl_SetLastPlayedCategory(
|
||||||
|
|
Loading…
Reference in New Issue