From: David Blaikie Date: Wed, 29 Apr 2020 00:45:07 +0000 (-0700) Subject: AllocatedCXCodeCompleteResults::DiagnosticWrappers: use unique_ptr to simplify memory... X-Git-Tag: 2020.06-alpha~50^2~656 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c98a7e9bcc26a13d5e0b3fd199a7d0298777d85e;p=platform%2Fupstream%2Fllvm.git AllocatedCXCodeCompleteResults::DiagnosticWrappers: use unique_ptr to simplify memory management --- diff --git a/clang/tools/libclang/CIndexCodeCompletion.cpp b/clang/tools/libclang/CIndexCodeCompletion.cpp index 1311f66ce0bc..6685c892749e 100644 --- a/clang/tools/libclang/CIndexCodeCompletion.cpp +++ b/clang/tools/libclang/CIndexCodeCompletion.cpp @@ -254,7 +254,7 @@ struct AllocatedCXCodeCompleteResults : public CXCodeCompleteResults { SmallVector Diagnostics; /// Allocated API-exposed wrappters for Diagnostics. - SmallVector DiagnosticsWrappers; + SmallVector, 8> DiagnosticsWrappers; IntrusiveRefCntPtr DiagOpts; @@ -371,7 +371,6 @@ AllocatedCXCodeCompleteResults::AllocatedCXCodeCompleteResults( } AllocatedCXCodeCompleteResults::~AllocatedCXCodeCompleteResults() { - llvm::DeleteContainerPointers(DiagnosticsWrappers); delete [] Results; for (unsigned I = 0, N = TemporaryBuffers.size(); I != N; ++I) @@ -914,10 +913,12 @@ clang_codeCompleteGetDiagnostic(CXCodeCompleteResults *ResultsIn, if (!Results || Index >= Results->Diagnostics.size()) return nullptr; - CXStoredDiagnostic *Diag = Results->DiagnosticsWrappers[Index]; + CXStoredDiagnostic *Diag = Results->DiagnosticsWrappers[Index].get(); if (!Diag) - Results->DiagnosticsWrappers[Index] = Diag = - new CXStoredDiagnostic(Results->Diagnostics[Index], Results->LangOpts); + Diag = (Results->DiagnosticsWrappers[Index] = + std::make_unique( + Results->Diagnostics[Index], Results->LangOpts)) + .get(); return Diag; }