Browse Source

Apply a patch from Aleksey Morozov to fix a bug that he identified

and reproduced.  It is the same as Bug #331 -
"XSpice skips digital output point" except that it applies to the
instance queue, not the event queue.
pre-master-46
Giles Atkinson 3 years ago
committed by Holger Vogt
parent
commit
9099a922fd
  1. 21
      src/xspice/evt/evtbackup.c

21
src/xspice/evt/evtbackup.c

@ -479,17 +479,26 @@ static void EVTbackup_inst_queue(
}
inst_queue->next_time = next_time;
/* Update the modified list by looking for any queued events */
/* with posted time > last_time */
/* Update the modified list by looking for events that were processed
* or queued in the current timestep.
*/
for(i = 0, j = 0; i < num_modified; i++) {
inst_index = inst_queue->modified_index[i];
inst = *(inst_queue->last_step[inst_index]);
while(inst) {
if(inst->posted_time > inst_queue->last_time)
break;
inst = inst->next;
if (inst_queue->current[inst_index] ==
inst_queue->last_step[inst_index]) {
/* Nothing now removed from the queue,
* but it may have been modified by an addition.
*/
while (inst) {
if (inst->posted_time > inst_queue->last_time)
break;
inst = inst->next;
}
}
if(! inst) {

Loading…
Cancel
Save