From: ThorstenB Date: Sun, 29 May 2011 16:44:15 +0000 (+0200) Subject: Deterministic loading sequence for Nasal scripts X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=3c8a80d968755f0097366616fa26e281c4279ae5;p=flightgear.git Deterministic loading sequence for Nasal scripts Avoid loading Nasal scripts in (random) file system order --- diff --git a/src/Scripting/NasalSys.cxx b/src/Scripting/NasalSys.cxx index 62a2b261c..2690bda6d 100644 --- a/src/Scripting/NasalSys.cxx +++ b/src/Scripting/NasalSys.cxx @@ -805,10 +805,19 @@ void FGNasalSys::update(double) _context = naNewContext(); } +bool pathSortPredicate(const SGPath& p1, const SGPath& p2) +{ + return p1.file() < p2.file(); +} + // Loads all scripts in given directory void FGNasalSys::loadScriptDirectory(simgear::Dir nasalDir) { simgear::PathList scripts = nasalDir.children(simgear::Dir::TYPE_FILE, ".nas"); + // sort scripts, avoid loading sequence effects due to file system's + // random directory order + std::sort(scripts.begin(), scripts.end(), pathSortPredicate); + for (unsigned int i=0; i