sim: fix overflow check in simulate because Tick is now unsigned

This commit is contained in:
Anthony Gutierrez 2012-08-27 20:53:20 -04:00
parent 85c7352462
commit 5b1614de02

View file

@ -49,12 +49,10 @@ simulate(Tick num_cycles)
{
inform("Entering event queue @ %d. Starting simulation...\n", curTick());
if (num_cycles < 0)
fatal("simulate: num_cycles must be >= 0 (was %d)\n", num_cycles);
else if (curTick() + num_cycles < 0) //Overflow
num_cycles = MaxTick;
else
if (num_cycles < MaxTick - curTick())
num_cycles = curTick() + num_cycles;
else // counter would roll over or be set to MaxTick anyhow
num_cycles = MaxTick;
Event *limit_event =
new SimLoopExitEvent("simulate() limit reached", 0);