From bb40336eb8a2acc9f2e3d2e9059b7d90afe5c0c4 Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@fe.uni-lj.si>
Date: Mon, 29 Feb 2016 09:14:58 +0000
Subject: [PATCH] Some leaks still present in xml parsing library.

---
 src/restore.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/restore.c b/src/restore.c
index bf9877f..aae6cb0 100644
--- a/src/restore.c
+++ b/src/restore.c
@@ -12,6 +12,7 @@
 #include "triangle.h"
 #include "bond.h"
 #include "energy.h"
+#include "poly.h"
 #include "initial_distribution.h"
 
 ts_bool parseDump(char *dumpfname) {
@@ -68,13 +69,16 @@
 	}
 	
 	xmlFreeDoc(doc);
+
+	vesicle->poly_list=init_poly_list(0, 0, vesicle->vlist, vesicle);
+
 	init_normal_vectors(vesicle->tlist);
 	mean_curvature_and_energy(vesicle);
 
 /* TODO: cells, polymeres, filaments, core, tape */
 
 	fprintf(stderr,"Restoration completed\n");
-	write_vertex_xml_file(vesicle,999);
+//	write_vertex_xml_file(vesicle,999);
 	vesicle_free(vesicle);
 	exit(0);
 	return TS_SUCCESS;
@@ -294,12 +298,13 @@
 }
 ts_bool parseXMLBonds(ts_vesicle *vesicle,xmlDocPtr doc, xmlNodePtr cur){
 	xmlNodePtr child = cur->xmlChildrenNode;
-	xmlChar *bonds;
+	xmlChar *bonds, *conname;
 	char *b;
 	int idx;
 	char *token[2];
 	while (child != NULL) {
-		if ((!xmlStrcmp(child->name, (const xmlChar *)"DataArray")) && !xmlStrcmp(xmlGetProp(child, (xmlChar *)"Name"), (const xmlChar *)"connectivity") ){
+		conname=xmlGetProp(child, (xmlChar *)"Name");
+		if ((!xmlStrcmp(child->name, (const xmlChar *)"DataArray")) && !xmlStrcmp(conname, (const xmlChar *)"connectivity") ){
 			bonds = xmlNodeListGetString(doc, child->xmlChildrenNode, 1);
 			b=(char *)bonds;
 			token[0]=strtok(b," ");
@@ -313,6 +318,7 @@
 			}
 			xmlFree(bonds);
 		}
+		xmlFree(conname);
 		child=child->next;
 	}
 	fprintf(stderr,"Bond data j=%d\n",idx);	

--
Gitblit v1.9.3