[llvm] r243094 - [dsymutil] Refactor BinaryHolder internals. NFC
Frederic Riss
friss at apple.com
Thu Jul 23 23:41:00 PDT 2015
Author: friss
Date: Fri Jul 24 01:40:59 2015
New Revision: 243094
URL: http://llvm.org/viewvc/llvm-project?rev=243094&view=rev
Log:
[dsymutil] Refactor BinaryHolder internals. NFC
Call a helper that resets all the internal state of the BinaryHolder
when we change the underlying memory buffer. Makes a followup patch
a tiny bit smaller.
Modified:
llvm/trunk/tools/dsymutil/BinaryHolder.cpp
llvm/trunk/tools/dsymutil/BinaryHolder.h
Modified: llvm/trunk/tools/dsymutil/BinaryHolder.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/dsymutil/BinaryHolder.cpp?rev=243094&r1=243093&r2=243094&view=diff
==============================================================================
--- llvm/trunk/tools/dsymutil/BinaryHolder.cpp (original)
+++ llvm/trunk/tools/dsymutil/BinaryHolder.cpp Fri Jul 24 01:40:59 2015
@@ -18,6 +18,14 @@
namespace llvm {
namespace dsymutil {
+void BinaryHolder::changeBackingMemoryBuffer(
+ std::unique_ptr<MemoryBuffer> &&Buf) {
+ CurrentArchive.reset();
+ CurrentObjectFile.reset();
+
+ CurrentMemoryBuffer = std::move(Buf);
+}
+
ErrorOr<MemoryBufferRef>
BinaryHolder::GetMemoryBufferForFile(StringRef Filename,
sys::TimeValue Timestamp) {
@@ -44,10 +52,9 @@ BinaryHolder::GetMemoryBufferForFile(Str
if (auto Err = ErrOrFile.getError())
return Err;
+ changeBackingMemoryBuffer(std::move(*ErrOrFile));
if (Verbose)
outs() << "\tloaded file.\n";
- CurrentArchive.reset();
- CurrentMemoryBuffer = std::move(ErrOrFile.get());
return CurrentMemoryBuffer->getMemBufferRef();
}
@@ -93,12 +100,14 @@ BinaryHolder::MapArchiveAndGetMemberBuff
if (Verbose)
outs() << "\topened new archive '" << ArchiveFilename << "'\n";
- auto ErrOrArchive = object::Archive::create((*ErrOrBuff)->getMemBufferRef());
+
+ changeBackingMemoryBuffer(std::move(*ErrOrBuff));
+ auto ErrOrArchive =
+ object::Archive::create(CurrentMemoryBuffer->getMemBufferRef());
if (auto Err = ErrOrArchive.getError())
return Err;
CurrentArchive = std::move(*ErrOrArchive);
- CurrentMemoryBuffer = std::move(*ErrOrBuff);
return GetArchiveMemberBuffer(Filename, Timestamp);
}
Modified: llvm/trunk/tools/dsymutil/BinaryHolder.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/dsymutil/BinaryHolder.h?rev=243094&r1=243093&r2=243094&view=diff
==============================================================================
--- llvm/trunk/tools/dsymutil/BinaryHolder.h (original)
+++ llvm/trunk/tools/dsymutil/BinaryHolder.h Fri Jul 24 01:40:59 2015
@@ -67,6 +67,8 @@ class BinaryHolder {
ErrorOr<MemoryBufferRef> GetMemoryBufferForFile(StringRef Filename,
sys::TimeValue Timestamp);
+ void changeBackingMemoryBuffer(std::unique_ptr<MemoryBuffer> &&MemBuf);
+
public:
BinaryHolder(bool Verbose) : Verbose(Verbose) {}
More information about the llvm-commits
mailing list