From c9b2423aaed459c68dd8f43b1de0edee4eb287c8 Mon Sep 17 00:00:00 2001 From: Neil Date: Fri, 28 May 2021 14:46:21 +1000 Subject: Better exception handling for noexcept methods. More accurate noexcept marking. --- src/Document.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/Document.h') diff --git a/src/Document.h b/src/Document.h index 5c9840463..09d5841ed 100644 --- a/src/Document.h +++ b/src/Document.h @@ -489,7 +489,7 @@ public: void EOLAnnotationClearAll(); bool AddWatcher(DocWatcher *watcher, void *userData); - bool RemoveWatcher(DocWatcher *watcher, void *userData); + bool RemoveWatcher(DocWatcher *watcher, void *userData) noexcept; CharacterClass WordCharacterClass(unsigned int ch) const; bool IsWordPartSeparator(unsigned int ch) const; @@ -525,6 +525,9 @@ public: UndoGroup &operator=(UndoGroup &&) = delete; ~UndoGroup() { if (groupNeeded) { + // EndUndoAction can throw as it allocates but throw in destructor is fatal. + // To fix this UndoHistory should allocate any memory needed by EndUndoAction + // beforehand or change EndUndoAction to not require allocation. pdoc->EndUndoAction(); } } -- cgit v1.2.3