From fba4a540d3162c139a1d189283987fd7f1f2e19e Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sat, 24 Mar 2012 21:36:55 +0000 Subject: When copying elements, correctly copy the cached class list svn path=/trunk/libdom/; revision=13630 --- src/core/element.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core/element.c b/src/core/element.c index 1c76db3..3400192 100644 --- a/src/core/element.c +++ b/src/core/element.c @@ -1404,6 +1404,7 @@ dom_exception _dom_element_copy(dom_node_internal *old, dom_element *olde = (dom_element *) old; dom_element *e; dom_exception err; + uint32_t classnr; e = malloc(sizeof(dom_element)); if (e == NULL) @@ -1421,7 +1422,18 @@ dom_exception _dom_element_copy(dom_node_internal *old, } else { e->attributes = NULL; } - + + if (olde->n_classes > 0) { + e->n_classes = olde->n_classes; + e->classes = malloc(sizeof(lwc_string *) * e->n_classes); + for (classnr = 0; classnr < e->n_classes; ++classnr) + e->classes[classnr] = + lwc_string_ref(olde->classes[classnr]); + } else { + e->n_classes = 0; + e->classes = NULL; + } + e->id_ns = NULL; e->id_name = NULL; -- cgit v1.2.3