queueExec update in-place.

Maintains load order for files that are overridden by queueExec.
This commit is contained in:
OTHGMars 2020-08-07 04:40:14 -04:00
parent 2b686bf713
commit 840ad6d385

View file

@ -222,14 +222,16 @@ function SimSet::queueExec(%scopeSet, %execFilePath, %isExclusive)
if ((!%locked && !%isExclusive)&&($reportModuleFileConflicts))
error("found" SPC %execFilePath SPC "duplicate file!");
if (!%locked || (%locked && %isExclusive))
{
ExecFilesList.erase(%i);
{ // Replacing an existing entry, update in-place
ExecFilesList.setKey(%fullPath, %i);
ExecFilesList.setValue(%isExclusive, %i);
%locked = true; //Done, but don't return and bypass trace logging below
}
break;
}
}
//if we're not locked, or we are exclusive, go ahead and add it to the pile
//(ensures exclusives get re-added after that erasure)
if (!%locked || %isExclusive)
//if we're not locked, go ahead and add it to the pile
if (!%locked)
ExecFilesList.add(%fullPath,%isExclusive);
if ($traceModuleCalls)
ExecFilesList.echo();