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) };