Exemple #1
0
static PLI_INT32 finish_cb(p_cb_data cause)
{
      struct vcd_info *cur, *next;

      if (finish_status != 0) return 0;

      finish_status = 1;

      dumpvars_time = timerec_to_time64(cause->time);

      if (!dump_is_off && !dump_is_full && dumpvars_time != vcd_cur_time) {
	    fstWriterEmitTimeChange(dump_file, dumpvars_time);
      }

      fstWriterClose(dump_file);

      for (cur = vcd_list ;  cur ;  cur = next) {
	    next = cur->next;
	    free(cur);
      }
      vcd_list = 0;
      vcd_names_delete(&fst_tab);
      vcd_names_delete(&fst_var);
      nexus_ident_delete();
      free(dump_path);
      dump_path = 0;

      return 0;
}
Exemple #2
0
static void fst_close(void)
{
   fstWriterEmitTimeChange(fst_ctx, rt_now(NULL));
   fstWriterClose(fst_ctx);
}