summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang/CIndexCodeCompletion.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-08-20 00:59:43 +0000
committerDouglas Gregor <dgregor@apple.com>2010-08-20 00:59:43 +0000
commitb97b666c472fe6bd73ecd879806ad2b9ba50a2c5 (patch)
treeaf3cb8c6b2e0f693affb668d546a003b6598c4d0 /clang/tools/libclang/CIndexCodeCompletion.cpp
parent12bb5054b32224beaf2d21c48bc096973b901fdd (diff)
downloadbcm5719-llvm-b97b666c472fe6bd73ecd879806ad2b9ba50a2c5.tar.gz
bcm5719-llvm-b97b666c472fe6bd73ecd879806ad2b9ba50a2c5.zip
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
Diffstat (limited to 'clang/tools/libclang/CIndexCodeCompletion.cpp')
-rw-r--r--clang/tools/libclang/CIndexCodeCompletion.cpp8
1 files changed, 2 insertions, 6 deletions
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);
OpenPOWER on IntegriCloud