From b97b666c472fe6bd73ecd879806ad2b9ba50a2c5 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Fri, 20 Aug 2010 00:59:43 +0000 Subject: When performing code-completion in the presence of a preamble, make sure to (1) actually use the remapped files we were given rather than old data, and (2) keep the remapped files alive until the code-completion results are destroyed. Big thanks to Daniel for the test case. llvm-svn: 111597 --- clang/tools/libclang/CIndexCodeCompletion.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'clang/tools/libclang/CIndexCodeCompletion.cpp') diff --git a/clang/tools/libclang/CIndexCodeCompletion.cpp b/clang/tools/libclang/CIndexCodeCompletion.cpp index 53767c44677..c2febf9b722 100644 --- a/clang/tools/libclang/CIndexCodeCompletion.cpp +++ b/clang/tools/libclang/CIndexCodeCompletion.cpp @@ -624,11 +624,6 @@ void clang_codeCompleteAt_Impl(void *UserData) { // Create a code-completion consumer to capture the results. CaptureCompletionResults Capture(*Results); - // Make sure that we free the temporary buffers when the - // code-completion constructor is freed. - for (unsigned I = 0, N = RemappedFiles.size(); I != N; ++I) - Results->TemporaryBuffers.push_back(RemappedFiles[I].second); - // Perform completion. AST->CodeComplete(complete_filename, complete_line, complete_column, RemappedFiles.data(), RemappedFiles.size(), @@ -636,7 +631,8 @@ void clang_codeCompleteAt_Impl(void *UserData) { (options & CXCodeComplete_IncludeCodePatterns), Capture, *Results->Diag, Results->LangOpts, Results->SourceMgr, - Results->FileMgr, Results->Diagnostics); + Results->FileMgr, Results->Diagnostics, + Results->TemporaryBuffers); -- cgit v1.2.3