Rafael Espindola <[email protected]> writes: > Author: rafael > Date: Wed Aug 13 11:47:00 2014 > New Revision: 215559 > > URL: http://llvm.org/viewvc/llvm-project?rev=215559&view=rev > Log: > Use std::unique_ptr to simplify memory management a bit. > > Modified: > cfe/trunk/include/clang/Frontend/ASTUnit.h > cfe/trunk/lib/Frontend/ASTUnit.cpp > > Modified: cfe/trunk/include/clang/Frontend/ASTUnit.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/ASTUnit.h?rev=215559&r1=215558&r2=215559&view=diff============================================================================== > --- cfe/trunk/include/clang/Frontend/ASTUnit.h (original) > +++ cfe/trunk/include/clang/Frontend/ASTUnit.h Wed Aug 13 11:47:00 2014 > @@ -272,12 +272,12 @@ private: > /// \brief When non-NULL, this is the buffer used to store the contents of > /// the main file when it has been padded for use with the precompiled > /// preamble. > - llvm::MemoryBuffer *SavedMainFileBuffer; > + std::unique_ptr<llvm::MemoryBuffer> SavedMainFileBuffer; > > /// \brief When non-NULL, this is the buffer used to store the > /// contents of the preamble when it has been padded to build the > /// precompiled preamble. > - llvm::MemoryBuffer *PreambleBuffer; > + std::unique_ptr<llvm::MemoryBuffer >PreambleBuffer;
Minor whitespace issue here. > /// \brief The number of warnings that occurred while parsing the preamble. > /// > > Modified: cfe/trunk/lib/Frontend/ASTUnit.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ASTUnit.cpp?rev=215559&r1=215558&r2=215559&view=diff============================================================================== > --- cfe/trunk/lib/Frontend/ASTUnit.cpp (original) > +++ cfe/trunk/lib/Frontend/ASTUnit.cpp Wed Aug 13 11:47:00 2014 > @@ -220,7 +220,7 @@ ASTUnit::ASTUnit(bool _MainFileIsAST) > OwnsRemappedFileBuffers(true), > NumStoredDiagnosticsFromDriver(0), > PreambleRebuildCounter(0), SavedMainFileBuffer(nullptr), > - PreambleBuffer(nullptr), NumWarningsInPreamble(0), > + NumWarningsInPreamble(0), > ShouldCacheCodeCompletionResults(false), > IncludeBriefCommentsInCodeCompletion(false), UserFilesAreVolatile(false), > CompletionCacheTopLevelHashValue(0), > @@ -251,9 +251,6 @@ ASTUnit::~ASTUnit() { > for (const auto &RB : PPOpts.RemappedFileBuffers) > delete RB.second; > } > - > - delete SavedMainFileBuffer; > - delete PreambleBuffer; > > ClearCachedCompletionResults(); > > @@ -1029,8 +1026,7 @@ static void checkAndSanitizeDiags(SmallV > /// \returns True if a failure occurred that causes the ASTUnit not to > /// contain any translation-unit information, false otherwise. > bool ASTUnit::Parse(llvm::MemoryBuffer *OverrideMainBuffer) { > - delete SavedMainFileBuffer; > - SavedMainFileBuffer = nullptr; > + SavedMainFileBuffer.reset(nullptr); > > if (!Invocation) { > delete OverrideMainBuffer; > @@ -1127,7 +1123,7 @@ bool ASTUnit::Parse(llvm::MemoryBuffer * > checkAndSanitizeDiags(StoredDiagnostics, getSourceManager()); > > // Keep track of the override buffer; > - SavedMainFileBuffer = OverrideMainBuffer; > + SavedMainFileBuffer.reset(OverrideMainBuffer); > } > > std::unique_ptr<TopLevelDeclTrackerAction> Act( > @@ -1514,14 +1510,12 @@ llvm::MemoryBuffer *ASTUnit::getMainBuff > + > NewPreamble.second.first); > PreambleEndsAtStartOfLine = NewPreamble.second.second; > > - delete PreambleBuffer; > - PreambleBuffer > - = llvm::MemoryBuffer::getMemBufferCopy( > - NewPreamble.first->getBuffer().slice(0, Preamble.size()), > MainFilename); > + PreambleBuffer.reset(llvm::MemoryBuffer::getMemBufferCopy( > + NewPreamble.first->getBuffer().slice(0, Preamble.size()), > MainFilename)); > > // Remap the main source file to the preamble buffer. > StringRef MainFilePath = FrontendOpts.Inputs[0].getFile(); > - PreprocessorOpts.addRemappedFile(MainFilePath, PreambleBuffer); > + PreprocessorOpts.addRemappedFile(MainFilePath, PreambleBuffer.get()); > > // Tell the compiler invocation to generate a temporary precompiled header. > FrontendOpts.ProgramAction = frontend::GeneratePCH; > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
