forked from qt-creator/qt-creator
Clang: Fix recovering on clangbackend crash
The translation unit was updated, but not re-registered.
Handle the editor documents this way:
1. Reset all ClangEditorDocumentProcessors (this will send an
unregister message, but that's not problematic).
2. For the visible editor documents, run their processors so that the
translation units will be re-registered.
3. For the invisible editor documents, mark them dirty. Once the user
makes an invisible document visible again, the processor will run
and also re-register the translation unit.
Change-Id: I23693ac197bd34a183f3a0020eb5372268636599
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
This commit is contained in:
@@ -91,6 +91,7 @@ public:
|
||||
|
||||
QFuture<void> updateSourceFiles(const QSet<QString> &sourceFiles,
|
||||
ProgressNotificationMode mode = ReservedProgressNotification);
|
||||
void updateCppEditorDocuments() const;
|
||||
WorkingCopy workingCopy() const;
|
||||
QByteArray codeModelConfiguration() const;
|
||||
|
||||
@@ -209,7 +210,6 @@ private:
|
||||
void initializeModelManagerSupports();
|
||||
void delayedGC();
|
||||
void recalculateProjectPartMappings();
|
||||
void updateCppEditorDocuments() const;
|
||||
|
||||
void replaceSnapshot(const CPlusPlus::Snapshot &newSnapshot);
|
||||
void removeFilesFromSnapshot(const QSet<QString> &removedFiles);
|
||||
|
||||
Reference in New Issue
Block a user