]> git.mxchange.org Git - simgear.git/commitdiff
minor fix to ModelRegistry and syntax changes for Windows
authortimoore <timoore>
Tue, 11 Dec 2007 11:07:21 +0000 (11:07 +0000)
committertimoore <timoore>
Tue, 11 Dec 2007 11:07:21 +0000 (11:07 +0000)
Create the local path in the right order in OptionsPusher. When
OptionsPusher is used, put it inside a new code block so the order of
destruction with respect to the mutex on reader functions id clear.

Add #include <algorithm> to top of ModelRegistry.cxx.

Change include syntax in PathOptions.cxx

simgear/misc/PathOptions.cxx
simgear/scene/model/ModelRegistry.cxx

index a74ae94a8d442c730a11a4726c4c443df11b34ca..32c719d63c4ffb36fc674a5bbbbbfffa461d613f 100644 (file)
@@ -19,7 +19,7 @@
 
 #include <osgDB/Registry>
 
-#include <PathOptions.hxx>
+#include "PathOptions.hxx"
 
 using namespace simgear;
 
index 0ac69685acfeeb9b744e60f3e6ea77cbe8233f9c..1b9eebeb3817d89f7fd6e0b2d3cc49008f50db8a 100644 (file)
@@ -18,6 +18,8 @@
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 #include "ModelRegistry.hxx"
 
+#include <algorithm>
+
 #include <OpenThreads/ScopedLock>
 
 #include <osg/observer_ptr>
@@ -219,7 +221,7 @@ struct OptionsPusher {
              ++iter) {
             if (find(regPathList.begin(), regPathList.end(), *iter)
                 == regPathList.end())
-                localPathList.push_front(*iter);
+                localPathList.push_back(*iter);
         }
         // Save the current Registry path list and install the augmented one.
         localPathList.swap(registry->getDataFilePathList());
@@ -242,27 +244,29 @@ ModelRegistry::readImage(const string& fileName,
     CallbackMap::iterator iter
         = imageCallbackMap.find(getFileExtension(fileName));
     // XXX Workaround for OSG plugin bug
-    OptionsPusher pusher(opt);
-    if (iter != imageCallbackMap.end() && iter->second.valid())
-        return iter->second->readImage(fileName, opt);
-    string absFileName = findDataFile(fileName);
-    if (!fileExists(absFileName)) {
-        SG_LOG(SG_IO, SG_ALERT, "Cannot find image file \""
-               << fileName << "\"");
-        return ReaderWriter::ReadResult::FILE_NOT_FOUND;
-    }
-
-    Registry* registry = Registry::instance();
-    ReaderWriter::ReadResult res;
-    res = registry->readImageImplementation(absFileName, opt);
-    if (res.loadedFromCache())
-        SG_LOG(SG_IO, SG_INFO, "Returning cached image \""
-               << res.getImage()->getFileName() << "\"");
-    else
-        SG_LOG(SG_IO, SG_INFO, "Reading image \""
-               << res.getImage()->getFileName() << "\"");
+    {
+        OptionsPusher pusher(opt);
+        if (iter != imageCallbackMap.end() && iter->second.valid())
+            return iter->second->readImage(fileName, opt);
+        string absFileName = findDataFile(fileName);
+        if (!fileExists(absFileName)) {
+            SG_LOG(SG_IO, SG_ALERT, "Cannot find image file \""
+                   << fileName << "\"");
+            return ReaderWriter::ReadResult::FILE_NOT_FOUND;
+        }
 
-    return res;
+        Registry* registry = Registry::instance();
+        ReaderWriter::ReadResult res;
+        res = registry->readImageImplementation(absFileName, opt);
+        if (res.loadedFromCache())
+            SG_LOG(SG_IO, SG_INFO, "Returning cached image \""
+                   << res.getImage()->getFileName() << "\"");
+        else
+            SG_LOG(SG_IO, SG_INFO, "Reading image \""
+                   << res.getImage()->getFileName() << "\"");
+
+        return res;
+    }
 }