memory leak on large imports

This commit is contained in:
Brian Quinion
2011-05-16 14:46:57 +00:00
parent 6ff987322b
commit 588a3a5702

View File

@@ -441,6 +441,9 @@ void EndElement(xmlTextReaderPtr reader, const xmlChar *name)
strcpy(featureNameString+namePos, (char *) featureName[i].value); strcpy(featureNameString+namePos, (char *) featureName[i].value);
namePos += lineValueLen; namePos += lineValueLen;
strcpy(featureNameString+(namePos++), "\""); strcpy(featureNameString+(namePos++), "\"");
xmlFree(featureName[i].type);
xmlFree(featureName[i].value);
} }
} }
paramValues[5] = (const char *)featureNameString; paramValues[5] = (const char *)featureNameString;
@@ -471,6 +474,9 @@ void EndElement(xmlTextReaderPtr reader, const xmlChar *name)
strcpy(featureExtraTagString+namePos, (char *) featureExtraTag[i].value); strcpy(featureExtraTagString+namePos, (char *) featureExtraTag[i].value);
namePos += lineValueLen; namePos += lineValueLen;
strcpy(featureExtraTagString+(namePos++), "\""); strcpy(featureExtraTagString+(namePos++), "\"");
xmlFree(featureExtraTag[i].type);
xmlFree(featureExtraTag[i].value);
} }
} }
paramValues[7] = (const char *)featureExtraTagString; paramValues[7] = (const char *)featureExtraTagString;
@@ -537,7 +543,7 @@ void EndElement(xmlTextReaderPtr reader, const xmlChar *name)
PQclear(res); PQclear(res);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
PQclear(res); PQclear(res);
} }
else else
{ {
@@ -589,11 +595,11 @@ void EndElement(xmlTextReaderPtr reader, const xmlChar *name)
xmlFree(feature.value); xmlFree(feature.value);
xmlFree(feature.rankAddress); xmlFree(feature.rankAddress);
xmlFree(feature.rankSearch); xmlFree(feature.rankSearch);
if (feature.countryCode) xmlFree(feature.countryCode);
if (feature.parentPlaceID) xmlFree(feature.parentPlaceID); if (feature.parentPlaceID) xmlFree(feature.parentPlaceID);
if (feature.parentType) xmlFree(feature.parentType); if (feature.parentType) xmlFree(feature.parentType);
if (feature.parentID) xmlFree(feature.parentID); if (feature.parentID) xmlFree(feature.parentID);
// if (feature.name) xmlFree(feature.name); // if (feature.name) xmlFree(feature.name);
if (feature.countryCode) xmlFree(feature.countryCode);
if (feature.adminLevel) xmlFree(feature.adminLevel); if (feature.adminLevel) xmlFree(feature.adminLevel);
if (feature.houseNumber) xmlFree(feature.houseNumber); if (feature.houseNumber) xmlFree(feature.houseNumber);
if (feature.geometry) xmlFree(feature.geometry); if (feature.geometry) xmlFree(feature.geometry);