diff options
author | David Blaikie <dblaikie@gmail.com> | 2020-04-28 17:45:07 -0700 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2020-04-28 17:45:07 -0700 |
commit | c98a7e9bcc26a13d5e0b3fd199a7d0298777d85e (patch) | |
tree | 098f905273615af99f8104173c2509bb865be0b3 /clang/tools/libclang/CIndexCodeCompletion.cpp | |
parent | f6d5320ebe95857bbff01e977dfcfc1971aef4a3 (diff) | |
download | llvm-c98a7e9bcc26a13d5e0b3fd199a7d0298777d85e.zip llvm-c98a7e9bcc26a13d5e0b3fd199a7d0298777d85e.tar.gz llvm-c98a7e9bcc26a13d5e0b3fd199a7d0298777d85e.tar.bz2 |
AllocatedCXCodeCompleteResults::DiagnosticWrappers: use unique_ptr to simplify memory management
Diffstat (limited to 'clang/tools/libclang/CIndexCodeCompletion.cpp')
-rw-r--r-- | clang/tools/libclang/CIndexCodeCompletion.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/clang/tools/libclang/CIndexCodeCompletion.cpp b/clang/tools/libclang/CIndexCodeCompletion.cpp index 1311f66..6685c89 100644 --- a/clang/tools/libclang/CIndexCodeCompletion.cpp +++ b/clang/tools/libclang/CIndexCodeCompletion.cpp @@ -254,7 +254,7 @@ struct AllocatedCXCodeCompleteResults : public CXCodeCompleteResults { SmallVector<StoredDiagnostic, 8> Diagnostics; /// Allocated API-exposed wrappters for Diagnostics. - SmallVector<CXStoredDiagnostic *, 8> DiagnosticsWrappers; + SmallVector<std::unique_ptr<CXStoredDiagnostic>, 8> DiagnosticsWrappers; IntrusiveRefCntPtr<DiagnosticOptions> 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<CXStoredDiagnostic>( + Results->Diagnostics[Index], Results->LangOpts)) + .get(); return Diag; } |