Jacek Caban : mshtml: Remove selection and range objects from document list when detaching.

Alexandre Julliard julliard at winehq.org
Thu Mar 21 17:21:20 CDT 2019


Module: wine
Branch: master
Commit: a124117f40c1c69f68959244bd2f390a617b0fd0
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=a124117f40c1c69f68959244bd2f390a617b0fd0

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Mar 21 14:40:44 2019 +0100

mshtml: Remove selection and range objects from document list when detaching.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/selection.c | 5 +++--
 dlls/mshtml/txtrange.c  | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/dlls/mshtml/selection.c b/dlls/mshtml/selection.c
index dfbb386..da8fbfa 100644
--- a/dlls/mshtml/selection.c
+++ b/dlls/mshtml/selection.c
@@ -364,9 +364,10 @@ HRESULT HTMLSelectionObject_Create(HTMLDocumentNode *doc, nsISelection *nsselect
 
 void detach_selection(HTMLDocumentNode *This)
 {
-    HTMLSelectionObject *iter;
+    HTMLSelectionObject *iter, *next;
 
-    LIST_FOR_EACH_ENTRY(iter, &This->selection_list, HTMLSelectionObject, entry) {
+    LIST_FOR_EACH_ENTRY_SAFE(iter, next, &This->selection_list, HTMLSelectionObject, entry) {
         iter->doc = NULL;
+        list_remove(&iter->entry);
     }
 }
diff --git a/dlls/mshtml/txtrange.c b/dlls/mshtml/txtrange.c
index bfabbf4..b377fad 100644
--- a/dlls/mshtml/txtrange.c
+++ b/dlls/mshtml/txtrange.c
@@ -1760,9 +1760,10 @@ HRESULT HTMLTxtRange_Create(HTMLDocumentNode *doc, nsIDOMRange *nsrange, IHTMLTx
 
 void detach_ranges(HTMLDocumentNode *This)
 {
-    HTMLTxtRange *iter;
+    HTMLTxtRange *iter, *next;
 
-    LIST_FOR_EACH_ENTRY(iter, &This->range_list, HTMLTxtRange, entry) {
+    LIST_FOR_EACH_ENTRY_SAFE(iter, next, &This->range_list, HTMLTxtRange, entry) {
         iter->doc = NULL;
+        list_remove(&iter->entry);
     }
 }




More information about the wine-cvs mailing list