From 86f5e72cbecb70197e77fb5e411874d6b015ebdd Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Thu, 06 Mar 2014 08:45:36 +0000
Subject: [PATCH] Dump and restore complete and debugged. Still, use with caution

---
 src/io.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/io.c b/src/io.c
index b4e879f..547c51c 100644
--- a/src/io.c
+++ b/src/io.c
@@ -22,7 +22,7 @@
     FILE *fh=fopen("dump.bin","wb");
 
     /* dump vesicle */
-    fwrite(vesicle, sizeof(vesicle),1,fh);
+    fwrite(vesicle, sizeof(ts_vesicle),1,fh);
     /* dump vertex list */
     fwrite(vesicle->vlist, sizeof(ts_vertex_list),1,fh);
     /* dump bond list */
@@ -144,7 +144,9 @@
 /* we restore all the data from the dump */
     /* restore vesicle */
     ts_vesicle *vesicle=(ts_vesicle *)calloc(1,sizeof(ts_vesicle));
-    retval=fread(vesicle, sizeof(vesicle),1,fh);
+    retval=fread(vesicle, sizeof(ts_vesicle),1,fh);
+//	fprintf(stderr,"was here! %e\n",vesicle->dmax);
+
     /* restore vertex list */
     vesicle->vlist=(ts_vertex_list *)malloc(sizeof(ts_vertex_list));
     retval=fread(vesicle->vlist, sizeof(ts_vertex_list),1,fh);
@@ -172,11 +174,13 @@
     for(i=0;i<vesicle->tlist->n;i++){
         vesicle->tlist->tria[i]=(ts_triangle *)malloc(sizeof(ts_triangle));
 }
-
-  /*restore vertices*/
+/* prerequisity. Vertices must be malloced before vertexes are recreated */
     vesicle->vlist->vtx=(ts_vertex **)calloc(vesicle->vlist->n,sizeof(ts_vertex *));
-    for(i=0;i<vesicle->vlist->n;i++){
+ for(i=0;i<vesicle->vlist->n;i++){
         vesicle->vlist->vtx[i]=(ts_vertex *)malloc(sizeof(ts_vertex));
+ }
+  /*restore vertices*/
+    for(i=0;i<vesicle->vlist->n;i++){
         retval=fread(vesicle->vlist->vtx[i],sizeof(ts_vertex),1,fh);
         /*restore neigh, bond, tristar. Ignoring cell */
         vesicle->vlist->vtx[i]->neigh=(ts_vertex **)calloc(vesicle->vlist->vtx[i]->neigh_no, sizeof(ts_vertex *));

--
Gitblit v1.9.3