From 3c8a80d968755f0097366616fa26e281c4279ae5 Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Sun, 29 May 2011 18:44:15 +0200 Subject: [PATCH] Deterministic loading sequence for Nasal scripts Avoid loading Nasal scripts in (random) file system order --- src/Scripting/NasalSys.cxx | 9 +++++++++ 1 file changed, 9 insertions(+) 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