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; }
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; }
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; }