aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/libclang/CIndex.cpp10
-rw-r--r--tools/libclang/CIndexCodeCompletion.cpp2
2 files changed, 9 insertions, 3 deletions
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp
index 6d6938a158..d2d00571c1 100644
--- a/tools/libclang/CIndex.cpp
+++ b/tools/libclang/CIndex.cpp
@@ -2309,6 +2309,7 @@ struct ReparseTranslationUnitInfo {
unsigned options;
int result;
};
+
static void clang_reparseTranslationUnit_Impl(void *UserData) {
ReparseTranslationUnitInfo *RTUI =
static_cast<ReparseTranslationUnitInfo*>(UserData);
@@ -2321,6 +2322,9 @@ static void clang_reparseTranslationUnit_Impl(void *UserData) {
if (!TU)
return;
+
+ ASTUnit *CXXUnit = static_cast<ASTUnit *>(TU);
+ ASTUnit::ConcurrencyCheck Check(*CXXUnit);
llvm::SmallVector<ASTUnit::RemappedFile, 4> RemappedFiles;
for (unsigned I = 0; I != num_unsaved_files; ++I) {
@@ -2331,10 +2335,10 @@ static void clang_reparseTranslationUnit_Impl(void *UserData) {
Buffer));
}
- if (!static_cast<ASTUnit *>(TU)->Reparse(RemappedFiles.data(),
- RemappedFiles.size()))
- RTUI->result = 0;
+ if (!CXXUnit->Reparse(RemappedFiles.data(), RemappedFiles.size()))
+ RTUI->result = 0;
}
+
int clang_reparseTranslationUnit(CXTranslationUnit TU,
unsigned num_unsaved_files,
struct CXUnsavedFile *unsaved_files,
diff --git a/tools/libclang/CIndexCodeCompletion.cpp b/tools/libclang/CIndexCodeCompletion.cpp
index c15c1ad84b..e473384813 100644
--- a/tools/libclang/CIndexCodeCompletion.cpp
+++ b/tools/libclang/CIndexCodeCompletion.cpp
@@ -622,6 +622,8 @@ void clang_codeCompleteAt_Impl(void *UserData) {
if (!AST)
return;
+ ASTUnit::ConcurrencyCheck Check(*AST);
+
// Perform the remapping of source files.
llvm::SmallVector<ASTUnit::RemappedFile, 4> RemappedFiles;
for (unsigned I = 0; I != num_unsaved_files; ++I) {