Browse Source

spiceif.c: correct types being loaded by snload()

pre-master-46
h_vogt 14 years ago
parent
commit
d8d8cf147e
  1. 34
      src/frontend/spiceif.c

34
src/frontend/spiceif.c

@ -1400,7 +1400,8 @@ void com_snload(wordlist *wl)
*/ */
if (ft_curckt) {
if (ft_curckt && !strstr(ft_curckt->ci_name, "script")) {
/* Circuit, not a script */
fprintf(cp_err, "Error: there is already a circuit loaded.\n"); fprintf(cp_err, "Error: there is already a circuit loaded.\n");
return; return;
} }
@ -1564,8 +1565,9 @@ void com_snload(wordlist *wl)
_foo(ckt->CKTbreaks, double, ckt->CKTbreakSize); _foo(ckt->CKTbreaks, double, ckt->CKTbreakSize);
{ /* avoid invalid lvalue assignment errors in the macro _foo() */ { /* avoid invalid lvalue assignment errors in the macro _foo() */
TSKtask *lname = ft_curckt->ci_curTask;
TSKtask *lname = NULL;
_foo(lname, TSKtask, 1); _foo(lname, TSKtask, 1);
ft_curckt->ci_curTask = lname;
} }
/* To stop the Free */ /* To stop the Free */
@ -1574,26 +1576,20 @@ void com_snload(wordlist *wl)
_foo(ft_curckt->ci_curTask->TSKname, char, -1); _foo(ft_curckt->ci_curTask->TSKname, char, -1);
{ /* avoid invalid lvalue assignment errors in the macro _foo() */
// TRANan * lname = (TRANan *)ft_curckt->ci_curTask->jobs;
// _foo(lname, TRANan, 1);
_foo(ft_curckt->ci_curTask->jobs, JOB, -1);
{
TRANan *lname = NULL;
_foo(lname, TRANan, -1);
ft_curckt->ci_curTask->jobs = (JOB *)lname;
} }
ft_curckt->ci_curTask->jobs->JOBname = NULL; ft_curckt->ci_curTask->jobs->JOBname = NULL;
// ckt->CKTcurJob = (&(ft_curckt->ci_curTask->taskOptions)) -> jobs;
ckt->CKTcurJob = ft_curckt->ci_curTask->jobs;
_foo(ft_curckt->ci_curTask->jobs->JOBname, char, -1); _foo(ft_curckt->ci_curTask->jobs->JOBname, char, -1);
ft_curckt->ci_curTask->jobs->JOBnextJob = NULL; ft_curckt->ci_curTask->jobs->JOBnextJob = NULL;
ckt->CKTcurJob = ft_curckt->ci_curTask->jobs;
((TRANan *)ft_curckt->ci_curTask->jobs)->TRANplot = NULL; ((TRANan *)ft_curckt->ci_curTask->jobs)->TRANplot = NULL;
_foo(ckt->CKTstat, STATistics, 1); _foo(ckt->CKTstat, STATistics, 1);
/* cannot load STATdevNum, so set to zero (needed for 'reset' command) */
ckt->CKTstat->STATdevNum = NULL; ckt->CKTstat->STATdevNum = NULL;
_foo(ckt->CKTstat->STATdevNum, STATdevList, -1);
#ifdef XSPICE #ifdef XSPICE
_foo(ckt->evt, Evt_Ckt_Data_t, 1); _foo(ckt->evt, Evt_Ckt_Data_t, 1);
@ -1732,29 +1728,21 @@ void com_snsave(wordlist *wl)
// _foo(ckt->CKTdeltaList, double, ckt->CKTtimeListSize); // _foo(ckt->CKTdeltaList, double, ckt->CKTtimeListSize);
/* need to save the breakpoints, or something */ /* need to save the breakpoints, or something */
_foo(ckt->CKTbreaks, double, ckt->CKTbreakSize); _foo(ckt->CKTbreaks, double, ckt->CKTbreakSize);
/* now save the TSK struct, ft_curckt->ci_curTask*/ /* now save the TSK struct, ft_curckt->ci_curTask*/
_foo(task, TSKtask, 1); _foo(task, TSKtask, 1);
_foo(task->TSKname, char, ((int)strlen(task->TSKname)+1)); _foo(task->TSKname, char, ((int)strlen(task->TSKname)+1));
/* now save the JOB struct task->jobs */ /* now save the JOB struct task->jobs */
/* lol, only allow one job, tough! */ /* lol, only allow one job, tough! */
/* Note that JOB is a base class, need to save actual type!! */ /* Note that JOB is a base class, need to save actual type!! */
_foo(task->jobs, TRANan, 1); _foo(task->jobs, TRANan, 1);
_foo(task->jobs->JOBname, char, ((int)strlen(task->jobs->JOBname)+1)); _foo(task->jobs->JOBname, char, ((int)strlen(task->jobs->JOBname)+1));
/* Finally the stats */ /* Finally the stats */
_foo(ckt->CKTstat, STATistics, 1); _foo(ckt->CKTstat, STATistics, 1);
/* FIXME struct ckt->CKTstat->STATdevNum is not stored */
_foo(ckt->CKTstat->STATdevNum, STATdevList, 1);
#ifdef XSPICE #ifdef XSPICE
/* FIXME struct ckt->evt->data and others are not stored /* FIXME struct ckt->evt->data and others are not stored

Loading…
Cancel
Save