Don't implicitly construct an Archive::child_iterator.
llvm-svn: 252166
This commit is contained in:
parent
537b6090d1
commit
543f29d1a9
|
|
@ -74,15 +74,14 @@ void ArchiveFile::parse() {
|
||||||
// Returns a buffer pointing to a member file containing a given symbol.
|
// Returns a buffer pointing to a member file containing a given symbol.
|
||||||
// This function is thread-safe.
|
// This function is thread-safe.
|
||||||
MemoryBufferRef ArchiveFile::getMember(const Archive::Symbol *Sym) {
|
MemoryBufferRef ArchiveFile::getMember(const Archive::Symbol *Sym) {
|
||||||
auto ItOrErr = Sym->getMember();
|
auto COrErr = Sym->getMember();
|
||||||
error(ItOrErr,
|
error(COrErr, Twine("Could not get the member for symbol ") + Sym->getName());
|
||||||
Twine("Could not get the member for symbol ") + Sym->getName());
|
const Archive::Child &C = *COrErr;
|
||||||
Archive::child_iterator It = *ItOrErr;
|
|
||||||
|
|
||||||
// Return an empty buffer if we have already returned the same buffer.
|
// Return an empty buffer if we have already returned the same buffer.
|
||||||
if (Seen[It->getChildOffset()].test_and_set())
|
if (Seen[C.getChildOffset()].test_and_set())
|
||||||
return MemoryBufferRef();
|
return MemoryBufferRef();
|
||||||
ErrorOr<MemoryBufferRef> Ret = It->getMemoryBufferRef();
|
ErrorOr<MemoryBufferRef> Ret = C.getMemoryBufferRef();
|
||||||
error(Ret, Twine("Could not get the buffer for the member defining symbol ") +
|
error(Ret, Twine("Could not get the buffer for the member defining symbol ") +
|
||||||
Sym->getName());
|
Sym->getName());
|
||||||
return *Ret;
|
return *Ret;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue