Skip to content

Commit 4ded97b

Browse files
authored
Merge pull request #12978 from benlangmuir/sk-edit-race
[sourcekitd] Fix a race in EditableTextBuffer::getSnapshot()
2 parents b0827a5 + c58cc4e commit 4ded97b

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

Diff for: tools/SourceKit/include/SourceKit/Support/ImmutableTextBuffer.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ friend class EditableTextBuffer;
153153
};
154154

155155
class EditableTextBuffer : public ThreadSafeRefCountedBase<EditableTextBuffer> {
156-
llvm::sys::Mutex EditMtx;
156+
mutable llvm::sys::Mutex EditMtx;
157157
ImmutableTextBufferRef Root;
158158
ImmutableTextUpdateRef CurrUpd;
159159
std::string Filename;

Diff for: tools/SourceKit/lib/Support/ImmutableTextBuffer.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ EditableTextBuffer::EditableTextBuffer(StringRef Filename, StringRef Text) {
126126
}
127127

128128
ImmutableTextSnapshotRef EditableTextBuffer::getSnapshot() const {
129+
llvm::sys::ScopedLock L(EditMtx);
129130
return new ImmutableTextSnapshot(const_cast<EditableTextBuffer*>(this), Root,
130131
CurrUpd);
131132
}

0 commit comments

Comments
 (0)