added ir_quit
[henge/webcc.git] / src / apc / irmem.c
index 28234d8..dc5cede 100644 (file)
@@ -51,7 +51,7 @@ inc_posts(void);
 #define CURR_QUAD (CURR_ODAT->quad_list[CURR_ODAT->num_quads])
 
 
-int num_cdats = -1;
+int num_cdats = 0;
 int curr_max_cdats = PTRS_IN_PAGE;
 
 struct cdat* cdat_buf[PTRS_IN_PAGE];
@@ -93,7 +93,7 @@ ir_init()
   char root[4] = "root";
 
   cdat_buf[num_cdats] = (struct cdat*) malloc(sizeof(struct cdat) );
-  cdat_buf[num_cdats]->idx = 0;
+  cdat_buf[num_cdats]->idx = num_cdats;
   memmove(cdat_buf[num_cdats]->name, root, 4);
 
   cdat_stackp = cdat_stack;
@@ -101,6 +101,34 @@ ir_init()
 
 }
 
+void
+ir_quit()
+{
+  int i;
+
+  for(i = 0; i <= num_odats ; i++)
+    {
+      free(odat_buf[i]);
+    }
+  for(i = 0; i <= num_cdats; i++)
+    {
+      free(cdat_buf[i]);
+    }
+  for(i = 0; i <= num_vdats; i++)
+    {
+      free(vdat_buf[i]);
+    }
+  for(i = 0; i <= num_refs; i++)
+    {
+      free(ref_buf[i]);
+    }
+  for(i = 0; i<= num_links; i++)
+    {
+      free(link_buf[i]);
+    }
+
+}
+
 //TODO: FREE MEMORY!
 struct cdat*
 alloc_cdat()