diff options
| author | Lang Hames <lhames@gmail.com> | 2017-10-10 16:28:07 +0000 |
|---|---|---|
| committer | Lang Hames <lhames@gmail.com> | 2017-10-10 16:28:07 +0000 |
| commit | 60fbc7cc38cde63adac7b70391e46141270817ad (patch) | |
| tree | 75a5fa4eda963e134c27c8b7f277402e74c86ad5 /llvm/lib/MC/MCELFStreamer.cpp | |
| parent | 37af00e7d0febf397472c40c3b0df5e6ded7688c (diff) | |
| download | bcm5719-llvm-60fbc7cc38cde63adac7b70391e46141270817ad.tar.gz bcm5719-llvm-60fbc7cc38cde63adac7b70391e46141270817ad.zip | |
[MC] Thread unique_ptr<MCObjectWriter> through the create.*ObjectWriter
functions.
This makes the ownership of the resulting MCObjectWriter clear, and allows us
to remove one instance of MCObjectStreamer's bizarre "holding ownership via
someone else's reference" trick.
llvm-svn: 315327
Diffstat (limited to 'llvm/lib/MC/MCELFStreamer.cpp')
| -rw-r--r-- | llvm/lib/MC/MCELFStreamer.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/MC/MCELFStreamer.cpp b/llvm/lib/MC/MCELFStreamer.cpp index 50c1f6e79f8..76976cab466 100644 --- a/llvm/lib/MC/MCELFStreamer.cpp +++ b/llvm/lib/MC/MCELFStreamer.cpp @@ -62,12 +62,13 @@ void MCELFStreamer::mergeFragment(MCDataFragment *DF, if (RequiredBundlePadding > 0) { SmallString<256> Code; raw_svector_ostream VecOS(Code); - MCObjectWriter *OW = Assembler.getBackend().createObjectWriter(VecOS); + { + auto OW = Assembler.getBackend().createObjectWriter(VecOS); - EF->setBundlePadding(static_cast<uint8_t>(RequiredBundlePadding)); + EF->setBundlePadding(static_cast<uint8_t>(RequiredBundlePadding)); - Assembler.writeFragmentPadding(*EF, FSize, OW); - delete OW; + Assembler.writeFragmentPadding(*EF, FSize, OW.get()); + } DF->getContents().append(Code.begin(), Code.end()); } |

