summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2019-12-08 16:28:27 +0000
committerDaniel Silverstone <dsilvers@digital-scurf.org>2019-12-08 16:28:27 +0000
commitc1f2e1c8919ab58000657ac3f10710f558377101 (patch)
tree7364fb57b42b0c9c89535a247728181b76e257e5 /src
parent2e03245e39d2a410e251ba373f21e0bd9ce63586 (diff)
downloadlibdom-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')
-rw-r--r--src/events/dispatch.c12
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;
}