summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/FileArchive.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2015-03-04 02:12:55 +0000
committerRui Ueyama <ruiu@google.com>2015-03-04 02:12:55 +0000
commitcf8b00331486649039608596a9ed8ae9bef95513 (patch)
tree093d8115df9ef2939182bffca6d38e9fdaaf9e24 /lld/lib/ReaderWriter/FileArchive.cpp
parent0524acc7276ccd4c9c1c21a72176a44edf432619 (diff)
downloadbcm5719-llvm-cf8b00331486649039608596a9ed8ae9bef95513.tar.gz
bcm5719-llvm-cf8b00331486649039608596a9ed8ae9bef95513.zip
Revert "temporary"
This reverts accidental commit r231205. llvm-svn: 231208
Diffstat (limited to 'lld/lib/ReaderWriter/FileArchive.cpp')
-rw-r--r--lld/lib/ReaderWriter/FileArchive.cpp30
1 files changed, 8 insertions, 22 deletions
diff --git a/lld/lib/ReaderWriter/FileArchive.cpp b/lld/lib/ReaderWriter/FileArchive.cpp
index 1dfb17b6c46..87526ff2870 100644
--- a/lld/lib/ReaderWriter/FileArchive.cpp
+++ b/lld/lib/ReaderWriter/FileArchive.cpp
@@ -53,7 +53,7 @@ public:
const char *memberStart = ci->getBuffer().data();
if (_membersInstantiated.count(memberStart))
return nullptr;
- if (dataSymbolOnly && !isDataSymbol(*ci, name))
+ if (dataSymbolOnly && !isDataSymbol(ci, name))
return nullptr;
_membersInstantiated.insert(memberStart);
@@ -70,7 +70,7 @@ public:
}
std::unique_ptr<File> result;
- if (instantiateMember(*ci, result))
+ if (instantiateMember(ci, result))
return nullptr;
// give up the pointer so that this object no longer manages it
@@ -99,7 +99,7 @@ public:
group.spawn([=] {
std::unique_ptr<File> result;
- std::error_code ec = instantiateMember(*ci, result);
+ std::error_code ec = instantiateMember(ci, result);
future->set(ec ? nullptr : result.release());
});
}
@@ -112,7 +112,7 @@ public:
for (auto mf = _archive->child_begin(), me = _archive->child_end();
mf != me; ++mf) {
std::unique_ptr<File> file;
- if (std::error_code ec = instantiateMember(*mf, file))
+ if (std::error_code ec = instantiateMember(mf, file))
return ec;
result.push_back(std::move(file));
}
@@ -153,24 +153,14 @@ protected:
return ec;
if ((ec = buildTableOfContents()))
return ec;
- buildParallelArray();
return std::error_code();
}
private:
- void buildParallelArray() {
- size_t len = 0;
- for (const Archive::Child &child : _archive->children()) {
- _children.push_back(child);
- len++;
- }
- _futures.resize(len);
- }
-
std::error_code
- instantiateMember(const Archive::Child &member,
+ instantiateMember(Archive::child_iterator member,
std::unique_ptr<File> &result) const {
- ErrorOr<llvm::MemoryBufferRef> mbOrErr = member.getMemoryBufferRef();
+ ErrorOr<llvm::MemoryBufferRef> mbOrErr = member->getMemoryBufferRef();
if (std::error_code ec = mbOrErr.getError())
return ec;
llvm::MemoryBufferRef mb = mbOrErr.get();
@@ -201,8 +191,8 @@ private:
// Parses the given memory buffer as an object file, and returns true
// code if the given symbol is a data symbol. If the symbol is not a data
// symbol or does not exist, returns false.
- bool isDataSymbol(const Archive::Child &member, StringRef symbol) const {
- ErrorOr<llvm::MemoryBufferRef> buf = member.getMemoryBufferRef();
+ bool isDataSymbol(Archive::child_iterator member, StringRef symbol) const {
+ ErrorOr<llvm::MemoryBufferRef> buf = member->getMemoryBufferRef();
if (buf.getError())
return false;
std::unique_ptr<MemoryBuffer> mb(MemoryBuffer::getMemBuffer(
@@ -269,10 +259,6 @@ private:
mutable std::vector<std::unique_ptr<MemoryBuffer>> _memberBuffers;
mutable std::map<const char *, std::unique_ptr<Future<const File *>>> _preloaded;
mutable std::mutex _mutex;
-
- mutable std::vector<Archive::Child> _children;
- mutable std::vector<std::unique_ptr<Future<const File *>>> _futures;
-
};
class ArchiveReader : public Reader {
OpenPOWER on IntegriCloud