diff options
author | Bo Yang <struggleyb.nku@gmail.com> | 2009-08-13 11:51:54 +0000 |
---|---|---|
committer | Bo Yang <struggleyb.nku@gmail.com> | 2009-08-13 11:51:54 +0000 |
commit | 9ae25975dc45474fa15b2afe50a1da12b1bcb164 (patch) | |
tree | cf82ae5aa5e8ca0c459dab0deea6ed0a4034505d /src/events/event_target.c | |
parent | b8155a1d4fd834d8ca59aacae0e212df092adec7 (diff) | |
download | libdom-9ae25975dc45474fa15b2afe50a1da12b1bcb164.tar.gz libdom-9ae25975dc45474fa15b2afe50a1da12b1bcb164.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.c | 5 |
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); } |