diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2019-12-08 16:28:27 +0000 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2019-12-08 16:28:27 +0000 |
commit | c1f2e1c8919ab58000657ac3f10710f558377101 (patch) | |
tree | 7364fb57b42b0c9c89535a247728181b76e257e5 /src/events | |
parent | 2e03245e39d2a410e251ba373f21e0bd9ce63586 (diff) | |
download | libdom-c1f2e1c8919ab58000657ac3f10710f558377101.tar.gz libdom-c1f2e1c8919ab58000657ac3f10710f558377101.tar.bz2 |
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 <dsilvers@digital-scurf.org>
Diffstat (limited to 'src/events')
-rw-r--r-- | src/events/dispatch.c | 12 |
1 files 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; } |