From e4b06e92e57faa2f43a72036e83fb956c200bc3c Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Sun, 17 Aug 2014 23:12:27 +0000 Subject: [PATCH] Use std::unique_ptr in a few methods that take ownership. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215864 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/ARCMigrate/FileRemapper.h | 4 ++-- lib/ARCMigrate/ARCMT.cpp | 7 ++++--- lib/ARCMigrate/FileRemapper.cpp | 10 ++++++---- lib/ARCMigrate/ObjCMT.cpp | 7 ++++--- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/include/clang/ARCMigrate/FileRemapper.h b/include/clang/ARCMigrate/FileRemapper.h index e094301ae6..53b88e9eb5 100644 --- a/include/clang/ARCMigrate/FileRemapper.h +++ b/include/clang/ARCMigrate/FileRemapper.h @@ -52,14 +52,14 @@ public: bool overwriteOriginal(DiagnosticsEngine &Diag, StringRef outputDir = StringRef()); - void remap(StringRef filePath, llvm::MemoryBuffer *memBuf); + void remap(StringRef filePath, std::unique_ptr memBuf); void applyMappings(PreprocessorOptions &PPOpts) const; void clear(StringRef outputDir = StringRef()); private: - void remap(const FileEntry *file, llvm::MemoryBuffer *memBuf); + void remap(const FileEntry *file, std::unique_ptr memBuf); void remap(const FileEntry *file, const FileEntry *newfile); const FileEntry *getOriginalFile(StringRef filePath); diff --git a/lib/ARCMigrate/ARCMT.cpp b/lib/ARCMigrate/ARCMT.cpp index 524c8d9cae..5d5aa93b6d 100644 --- a/lib/ARCMigrate/ARCMT.cpp +++ b/lib/ARCMigrate/ARCMT.cpp @@ -597,11 +597,12 @@ bool MigrationProcess::applyTransform(TransformFn trans, llvm::raw_svector_ostream vecOS(newText); buf.write(vecOS); vecOS.flush(); - llvm::MemoryBuffer *memBuf = llvm::MemoryBuffer::getMemBufferCopy( - StringRef(newText.data(), newText.size()), newFname); + std::unique_ptr memBuf( + llvm::MemoryBuffer::getMemBufferCopy( + StringRef(newText.data(), newText.size()), newFname)); SmallString<64> filePath(file->getName()); Unit->getFileManager().FixupRelativePath(filePath); - Remapper.remap(filePath.str(), memBuf); + Remapper.remap(filePath.str(), std::move(memBuf)); } return false; diff --git a/lib/ARCMigrate/FileRemapper.cpp b/lib/ARCMigrate/FileRemapper.cpp index 40e6060900..677ce413d1 100644 --- a/lib/ARCMigrate/FileRemapper.cpp +++ b/lib/ARCMigrate/FileRemapper.cpp @@ -207,15 +207,17 @@ void FileRemapper::applyMappings(PreprocessorOptions &PPOpts) const { PPOpts.RetainRemappedFileBuffers = true; } -void FileRemapper::remap(StringRef filePath, llvm::MemoryBuffer *memBuf) { - remap(getOriginalFile(filePath), memBuf); +void FileRemapper::remap(StringRef filePath, + std::unique_ptr memBuf) { + remap(getOriginalFile(filePath), std::move(memBuf)); } -void FileRemapper::remap(const FileEntry *file, llvm::MemoryBuffer *memBuf) { +void FileRemapper::remap(const FileEntry *file, + std::unique_ptr memBuf) { assert(file); Target &targ = FromToMappings[file]; resetTarget(targ); - targ = memBuf; + targ = memBuf.release(); } void FileRemapper::remap(const FileEntry *file, const FileEntry *newfile) { diff --git a/lib/ARCMigrate/ObjCMT.cpp b/lib/ARCMigrate/ObjCMT.cpp index 4cefae9c37..04d66f93b7 100644 --- a/lib/ARCMigrate/ObjCMT.cpp +++ b/lib/ARCMigrate/ObjCMT.cpp @@ -1821,11 +1821,12 @@ void ObjCMigrateASTConsumer::HandleTranslationUnit(ASTContext &Ctx) { llvm::raw_svector_ostream vecOS(newText); buf.write(vecOS); vecOS.flush(); - llvm::MemoryBuffer *memBuf = llvm::MemoryBuffer::getMemBufferCopy( - StringRef(newText.data(), newText.size()), file->getName()); + std::unique_ptr memBuf( + llvm::MemoryBuffer::getMemBufferCopy( + StringRef(newText.data(), newText.size()), file->getName())); SmallString<64> filePath(file->getName()); FileMgr.FixupRelativePath(filePath); - Remapper.remap(filePath.str(), memBuf); + Remapper.remap(filePath.str(), std::move(memBuf)); } if (IsOutputFile) { -- 2.40.0