From c1f2e1c8919ab58000657ac3f10710f558377101 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sun, 8 Dec 2019 16:28:27 +0000 Subject: dispatch: Do not blindly destroy events We used to destroy events after dispatching them. The client *can* hold refs to those events which makes this blind destruction unsafe. Instead unref them and let the refcnt deal with things. Signed-off-by: Daniel Silverstone --- src/events/dispatch.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/events/dispatch.c b/src/events/dispatch.c index 0e0048d..a8b8ad7 100644 --- a/src/events/dispatch.c +++ b/src/events/dispatch.c @@ -56,7 +56,7 @@ dom_exception __dom_dispatch_node_change_event(dom_document *doc, goto cleanup; cleanup: - _dom_mutation_event_destroy(evt); + dom_event_unref(evt); return err; } @@ -101,7 +101,7 @@ dom_exception __dom_dispatch_node_change_document_event(dom_document *doc, goto cleanup; cleanup: - _dom_mutation_event_destroy(evt); + dom_event_unref(evt); return err; } @@ -145,7 +145,7 @@ dom_exception __dom_dispatch_attr_modified_event(dom_document *doc, err = dom_event_target_dispatch_event(et, evt, success); cleanup: - _dom_mutation_event_destroy(evt); + dom_event_unref(evt); return err; } @@ -188,7 +188,7 @@ dom_exception __dom_dispatch_characterdata_modified_event( err = dom_event_target_dispatch_event(et, evt, success); cleanup: - _dom_mutation_event_destroy(evt); + dom_event_unref(evt); return err; } @@ -224,7 +224,7 @@ dom_exception __dom_dispatch_subtree_modified_event(dom_document *doc, err = dom_event_target_dispatch_event(et, evt, success); cleanup: - _dom_mutation_event_destroy(evt); + dom_event_unref(evt); return err; } @@ -263,7 +263,7 @@ dom_exception _dom_dispatch_generic_event(dom_document *doc, err = dom_event_target_dispatch_event(et, evt, success); cleanup: - _dom_event_destroy(evt); + dom_event_unref(evt); return err; } -- cgit v1.2.3