mirror of
git://source.winehq.org/git/wine.git
synced 2024-07-25 09:56:23 +00:00
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:
parent
73f80669c6
commit
08193ed72b
|
@ -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))
|
||||||
|
|
Loading…
Reference in a new issue