summaryrefslogtreecommitdiff
path: root/src/events/event_target.c
diff options
context:
space:
mode:
authorBo Yang <struggleyb.nku@gmail.com>2009-08-13 11:51:54 +0000
committerBo Yang <struggleyb.nku@gmail.com>2009-08-13 11:51:54 +0000
commitf7d7c296398ef6cee6025ff4d8484a74bca2d554 (patch)
treecf82ae5aa5e8ca0c459dab0deea6ed0a4034505d /src/events/event_target.c
parente02d9eb6661546a13b4caad8f1c03e38354ece3d (diff)
downloadlibdom-f7d7c296398ef6cee6025ff4d8484a74bca2d554.tar.gz
libdom-f7d7c296398ef6cee6025ff4d8484a74bca2d554.tar.bz2
1. Fix a string intern bug.
2. Reset the fields when finalise a dom_event. svn path=/trunk/dom/; revision=9247
Diffstat (limited to 'src/events/event_target.c')
-rw-r--r--src/events/event_target.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/events/event_target.c b/src/events/event_target.c
index e17aa9c..69f4dd6 100644
--- a/src/events/event_target.c
+++ b/src/events/event_target.c
@@ -624,7 +624,8 @@ dom_exception _dom_dispatch_node_change_event(struct dom_document *doc,
if (err != DOM_NO_ERR)
goto cleanup;
- dom_event_target *target = et;
+ /* Dispatch the events for its children */
+ dom_event_target *target = et->first_child;
while (target != NULL) {
err = dom_mutation_event_init(evt, t, true, false, NULL,
NULL, NULL, NULL, change);
@@ -641,7 +642,7 @@ dom_exception _dom_dispatch_node_change_event(struct dom_document *doc,
} else if (target->next != NULL) {
target = target->next;
} else {
- while (p != et && target == p->first_child) {
+ while (p != et && target == p->last_child) {
target = p;
p = dom_node_get_parent(p);
}