gameux: Avoid freeing uninitialized interfaces (Coverity).

Signed-off-by: Marcus Meissner <marcus@jet.franken.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Marcus Meissner 2017-07-15 10:16:12 +02:00 committed by Alexandre Julliard
parent 73f80669c6
commit 08193ed72b

View file

@ -111,9 +111,9 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
static const WCHAR sValue[] = {'V','a','l','u','e',0}; static const WCHAR sValue[] = {'V','a','l','u','e',0};
HRESULT hr = S_OK; HRESULT hr = S_OK;
IXMLDOMDocument *document; IXMLDOMDocument *document = NULL;
IXMLDOMElement *root, *statisticsElement; IXMLDOMElement *root = NULL, *statisticsElement = NULL;
IXMLDOMNode *categoryNode, *statisticsNode; IXMLDOMNode *categoryNode = NULL, *statisticsNode = NULL;
VARIANT vStatsFilePath, vValue; VARIANT vStatsFilePath, vValue;
BSTR bstrStatistics = NULL, bstrCategory = NULL, bstrIndex = NULL, BSTR bstrStatistics = NULL, bstrCategory = NULL, bstrIndex = NULL,
bstrStatistic = NULL, bstrName = NULL, bstrValue = NULL; bstrStatistic = NULL, bstrName = NULL, bstrValue = NULL;
@ -209,8 +209,7 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
hr = IXMLDOMElement_setAttribute(categoryElement, bstrName, vValue); hr = IXMLDOMElement_setAttribute(categoryElement, bstrName, vValue);
} }
if (categoryElement) if (categoryElement) IXMLDOMElement_Release(categoryElement);
IXMLDOMElement_Release(categoryElement);
SysFreeString(V_BSTR(&vValue)); SysFreeString(V_BSTR(&vValue));
@ -266,15 +265,16 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
hr = IXMLDOMNode_appendChild(categoryNode, statisticsNode, NULL); hr = IXMLDOMNode_appendChild(categoryNode, statisticsNode, NULL);
IXMLDOMElement_Release(statisticsElement); if (statisticsElement) IXMLDOMElement_Release(statisticsElement);
IXMLDOMNode_Release(statisticsNode); if (statisticsNode) IXMLDOMNode_Release(statisticsNode);
} }
} }
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
hr = IXMLDOMElement_appendChild(root, categoryNode, &categoryNode); hr = IXMLDOMElement_appendChild(root, categoryNode, &categoryNode);
IXMLDOMNode_Release(categoryNode); if (categoryNode)
IXMLDOMNode_Release(categoryNode);
if(FAILED(hr)) if(FAILED(hr))
break; break;
@ -283,7 +283,7 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
hr = IXMLDOMDocument_putref_documentElement(document, root); hr = IXMLDOMDocument_putref_documentElement(document, root);
IXMLDOMElement_Release(root); if (root) IXMLDOMElement_Release(root);
TRACE("saving game statistics in %s file\n", debugstr_w(stats->sStatsFile)); TRACE("saving game statistics in %s file\n", debugstr_w(stats->sStatsFile));
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
@ -292,7 +292,7 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
hr = IXMLDOMDocument_save(document, vStatsFilePath); hr = IXMLDOMDocument_save(document, vStatsFilePath);
IXMLDOMDocument_Release(document); if (document) IXMLDOMDocument_Release(document);
SysFreeString(bstrValue); SysFreeString(bstrValue);
SysFreeString(bstrName); SysFreeString(bstrName);
@ -426,9 +426,9 @@ static HRESULT GAMEUX_loadStatisticsFromFile(struct GAMEUX_STATS *data)
HRESULT hr = S_OK; HRESULT hr = S_OK;
IXMLDOMDocument *document = NULL; IXMLDOMDocument *document = NULL;
IXMLDOMElement *root = NULL, *categoryElement, *statisticElement; IXMLDOMElement *root = NULL, *categoryElement = NULL, *statisticElement = NULL;
IXMLDOMNode *categoryNode, *statisticNode; IXMLDOMNode *categoryNode = NULL, *statisticNode = NULL;
IXMLDOMNodeList *rootChildren = NULL, *categoryChildren; IXMLDOMNodeList *rootChildren = NULL, *categoryChildren = NULL;
VARIANT vStatsFilePath, vValue; VARIANT vStatsFilePath, vValue;
BSTR bstrStatistics = NULL, bstrCategory = NULL, bstrIndex = NULL, BSTR bstrStatistics = NULL, bstrCategory = NULL, bstrIndex = NULL,
bstrStatistic = NULL, bstrName = NULL, bstrValue = NULL; bstrStatistic = NULL, bstrName = NULL, bstrValue = NULL;
@ -571,22 +571,22 @@ static HRESULT GAMEUX_loadStatisticsFromFile(struct GAMEUX_STATS *data)
debugstr_w(data->categories[i].stats[j].sName), debugstr_w(data->categories[i].stats[j].sName),
debugstr_w(data->categories[i].stats[j].sValue)); debugstr_w(data->categories[i].stats[j].sValue));
} }
IXMLDOMElement_Release(statisticElement); if (statisticElement) IXMLDOMElement_Release(statisticElement);
} }
IXMLDOMNode_Release(statisticNode); if (statisticNode) IXMLDOMNode_Release(statisticNode);
} }
} }
IXMLDOMNodeList_Release(categoryChildren); if (categoryChildren) IXMLDOMNodeList_Release(categoryChildren);
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
hr = S_OK; hr = S_OK;
} }
IXMLDOMElement_Release(categoryElement); if (categoryElement) IXMLDOMElement_Release(categoryElement);
} }
IXMLDOMNode_Release(categoryNode); if (categoryNode) IXMLDOMNode_Release(categoryNode);
} }
} }
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))