From 0e905dbd36bb8117ff321e40862849ab414df405 Mon Sep 17 00:00:00 2001
From: triton <ripzonetriton@gmail.com>
Date: Tue, 18 Feb 2014 17:01:29 +0000
Subject: [PATCH] Clean up the file path when finding translation units since
 they might differ between calls.

---
 src/CppParser/AST.cpp | 5 ++++-
 src/CppParser/AST.h   | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/CppParser/AST.cpp b/src/CppParser/AST.cpp
index 55e4b6b9..d90f3845 100644
--- a/src/CppParser/AST.cpp
+++ b/src/CppParser/AST.cpp
@@ -444,8 +444,11 @@ ClassTemplate::FindPartialSpecialization(TemplateSpecializationType type)
     return 0;
 }
 
-TranslationUnit* ASTContext::FindOrCreateModule(const std::string& File)
+TranslationUnit* ASTContext::FindOrCreateModule(std::string File)
 {
+    // Clean up the file path.
+    std::replace(File.begin(), File.end(), '/', '\\');
+
     auto existingUnit = std::find_if(TranslationUnits.begin(),
         TranslationUnits.end(), [&](TranslationUnit* unit) {
             return unit && unit->FileName == File;
diff --git a/src/CppParser/AST.h b/src/CppParser/AST.h
index 526cbb74..6452ec8f 100644
--- a/src/CppParser/AST.h
+++ b/src/CppParser/AST.h
@@ -710,7 +710,7 @@ struct CS_API NativeLibrary
 
 struct CS_API ASTContext
 {
-    TranslationUnit* FindOrCreateModule(const std::string& File);
+    TranslationUnit* FindOrCreateModule(std::string File);
     VECTOR(TranslationUnit*, TranslationUnits)
 };