From 3689337c8e26fee4dcbdda478ebb6a88ce904069 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Mon, 31 Oct 2011 21:25:31 +0000 Subject: Revert r143342. Caching of code-completion results was intentionally placed in "reparse" because we don't want to take this performance hit when doing code completion Log of r143342: Move caching of code-completion results from ASTUnit::Reparse to ASTUnit::CodeComplete, so that it will happen when we are doing code-completion, not reparsing. llvm-svn: 143367 --- clang/lib/Frontend/ASTUnit.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'clang/lib/Frontend') diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp index cb52a2f3496..7211ca6dce2 100644 --- a/clang/lib/Frontend/ASTUnit.cpp +++ b/clang/lib/Frontend/ASTUnit.cpp @@ -1942,6 +1942,12 @@ bool ASTUnit::Reparse(RemappedFile *RemappedFiles, unsigned NumRemappedFiles) { // Parse the sources bool Result = Parse(OverrideMainBuffer); + + // If we're caching global code-completion results, and the top-level + // declarations have changed, clear out the code-completion cache. + if (!Result && ShouldCacheCodeCompletionResults && + CurrentTopLevelHashValue != CompletionCacheTopLevelHashValue) + CacheCodeCompletionResults(); // We now need to clear out the completion allocator for // clang_getCursorCompletionString; it'll be recreated if necessary. @@ -2201,12 +2207,6 @@ void ASTUnit::CodeComplete(StringRef File, unsigned Line, unsigned Column, SmallVectorImpl &OwnedBuffers) { if (!Invocation) return; - - // If we're caching global code-completion results, and the top-level - // declarations have changed, clear out the code-completion cache. - if (ShouldCacheCodeCompletionResults && - CurrentTopLevelHashValue != CompletionCacheTopLevelHashValue) - CacheCodeCompletionResults(); SimpleTimer CompletionTimer(WantTiming); CompletionTimer.setOutput("Code completion @ " + File + ":" + -- cgit v1.2.3