diff options
-rw-r--r-- | src/core/element.c | 14 |
1 files changed, 13 insertions, 1 deletions
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; |