summaryrefslogtreecommitdiff
path: root/src/events/event.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.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.c')
-rw-r--r--src/events/event.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/events/event.c b/src/events/event.c
index f9caa0b..9330edf 100644
--- a/src/events/event.c
+++ b/src/events/event.c
@@ -59,8 +59,6 @@ dom_exception _dom_event_initialise(struct dom_document *doc,
evt->namespace = NULL;
- evt->timestamp = time(NULL);
-
evt->refcnt = 1;
evt->in_dispatch = false;
@@ -78,6 +76,17 @@ void _dom_event_finalise(struct dom_document *doc, struct dom_event *evt)
lwc_context_string_unref(ctx, evt->type);
if (evt->namespace != NULL)
lwc_context_string_unref(ctx, evt->namespace);
+
+ evt->stop = false;
+ evt->stop_now = false;
+ evt->prevent_default = false;
+ evt->custom = false;
+
+ evt->type = NULL;
+
+ evt->namespace = NULL;
+
+ evt->in_dispatch = false;
}
/* The virtual destroy function */
@@ -253,6 +262,8 @@ dom_exception _dom_event_init(dom_event *evt, struct dom_string *type,
evt->bubble = bubble;
evt->cancelable = cancelable;
+ evt->timestamp = time(NULL);
+
return DOM_NO_ERR;
}