From: David Blaikie Date: Fri, 29 Aug 2014 19:51:32 +0000 (+0000) Subject: unique_ptrify HeaderMap::FileBuffer X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=38717be3c251e52b8091f21b90aada82196d9f30;p=clang unique_ptrify HeaderMap::FileBuffer git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216758 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Lex/HeaderMap.h b/include/clang/Lex/HeaderMap.h index 8e78b5ac98..5dac9b7c35 100644 --- a/include/clang/Lex/HeaderMap.h +++ b/include/clang/Lex/HeaderMap.h @@ -17,6 +17,8 @@ #include "clang/Basic/LLVM.h" #include "llvm/Support/Compiler.h" +#include + namespace llvm { class MemoryBuffer; } @@ -34,15 +36,12 @@ class HeaderMap { HeaderMap(const HeaderMap &) LLVM_DELETED_FUNCTION; void operator=(const HeaderMap &) LLVM_DELETED_FUNCTION; - const llvm::MemoryBuffer *FileBuffer; + std::unique_ptr FileBuffer; bool NeedsBSwap; - HeaderMap(const llvm::MemoryBuffer *File, bool BSwap) - : FileBuffer(File), NeedsBSwap(BSwap) { - } + HeaderMap(std::unique_ptr File, bool BSwap) + : FileBuffer(std::move(File)), NeedsBSwap(BSwap) {} public: - ~HeaderMap(); - /// HeaderMap::Create - This attempts to load the specified file as a header /// map. If it doesn't look like a HeaderMap, it gives up and returns null. static const HeaderMap *Create(const FileEntry *FE, FileManager &FM); diff --git a/lib/Lex/HeaderMap.cpp b/lib/Lex/HeaderMap.cpp index f6c658e119..c86569f74a 100644 --- a/lib/Lex/HeaderMap.cpp +++ b/lib/Lex/HeaderMap.cpp @@ -81,7 +81,8 @@ const HeaderMap *HeaderMap::Create(const FileEntry *FE, FileManager &FM) { unsigned FileSize = FE->getSize(); if (FileSize <= sizeof(HMapHeader)) return nullptr; - std::unique_ptr FileBuffer(FM.getBufferForFile(FE)); + std::unique_ptr FileBuffer = + FM.getBufferForFile(FE); if (!FileBuffer) return nullptr; // Unreadable file? const char *FileStart = FileBuffer->getBufferStart(); @@ -103,11 +104,7 @@ const HeaderMap *HeaderMap::Create(const FileEntry *FE, FileManager &FM) { if (Header->Reserved != 0) return nullptr; // Okay, everything looks good, create the header map. - return new HeaderMap(FileBuffer.release(), NeedsByteSwap); -} - -HeaderMap::~HeaderMap() { - delete FileBuffer; + return new HeaderMap(std::move(FileBuffer), NeedsByteSwap); } //===----------------------------------------------------------------------===//