aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/TextAPI
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/TextAPI')
-rw-r--r--llvm/lib/TextAPI/InterfaceFile.cpp14
-rw-r--r--llvm/lib/TextAPI/TextStub.cpp2
2 files changed, 9 insertions, 7 deletions
diff --git a/llvm/lib/TextAPI/InterfaceFile.cpp b/llvm/lib/TextAPI/InterfaceFile.cpp
index d324e30..f1c6add 100644
--- a/llvm/lib/TextAPI/InterfaceFile.cpp
+++ b/llvm/lib/TextAPI/InterfaceFile.cpp
@@ -48,16 +48,16 @@ void InterfaceFile::addParentUmbrella(const Target &Target_, StringRef Parent) {
}
void InterfaceFile::addRPath(const Target &InputTarget, StringRef RPath) {
- auto Iter = lower_bound(RPaths, InputTarget,
- [](const std::pair<Target, std::string> &LHS,
- Target RHS) { return LHS.first < RHS; });
+ using RPathEntryT = const std::pair<Target, std::string>;
+ RPathEntryT Entry(InputTarget, RPath);
+ auto Iter =
+ lower_bound(RPaths, Entry,
+ [](RPathEntryT &LHS, RPathEntryT &RHS) { return LHS < RHS; });
- if ((Iter != RPaths.end()) && !(InputTarget < Iter->first)) {
- Iter->second = std::string(RPath);
+ if ((Iter != RPaths.end()) && (*Iter == Entry))
return;
- }
- RPaths.emplace(Iter, InputTarget, std::string(RPath));
+ RPaths.emplace(Iter, Entry);
}
void InterfaceFile::addTarget(const Target &Target) {
diff --git a/llvm/lib/TextAPI/TextStub.cpp b/llvm/lib/TextAPI/TextStub.cpp
index e6dc0a4..b9b6061 100644
--- a/llvm/lib/TextAPI/TextStub.cpp
+++ b/llvm/lib/TextAPI/TextStub.cpp
@@ -1119,6 +1119,8 @@ TextAPIReader::get(MemoryBufferRef InputBuffer) {
auto FileOrErr = getInterfaceFileFromJSON(InputBuffer.getBuffer());
if (!FileOrErr)
return FileOrErr.takeError();
+
+ (*FileOrErr)->setPath(Ctx.Path);
return std::move(*FileOrErr);
}
yaml::Input YAMLIn(InputBuffer.getBuffer(), &Ctx, DiagHandler, &Ctx);