Exemplo n.º 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;
}
Exemplo n.º 2
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) {
	    fprintf(dump_file, "#%" PLI_UINT64_FMT "\n", dumpvars_time);
      }

      fclose(dump_file);

      for (cur = vcd_list ;  cur ;  cur = next) {
	    next = cur->next;
	    free((char *)cur->ident);
	    free(cur);
      }
      vcd_list = 0;
      vcd_names_delete(&vcd_tab);
      vcd_names_delete(&vcd_var);
      nexus_ident_delete();
      free(dump_path);
      dump_path = 0;

      return 0;
}
Exemplo n.º 3
0
static PLI_INT32 finish_cb(p_cb_data cause)
{
      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) {
	    vcd_work_set_time(dumpvars_time);
      }

      vcd_work_terminate();
      delete_all_vcd_info();

      vcd_scope_names_delete();
      nexus_ident_delete();
      free(dump_path);
      dump_path = 0;

      return 0;
}