From ab9ee0ab630dcab85b5fd8d5a2a00ccb5dce2473 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Sun, 25 Mar 2012 10:13:44 +0000 Subject: Take copy of classes array, for client to free. svn path=/trunk/libdom/; revision=13663 --- src/core/element.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/core/element.c b/src/core/element.c index 7611e8f..df1654b 100644 --- a/src/core/element.c +++ b/src/core/element.c @@ -1155,8 +1155,17 @@ dom_exception _dom_element_set_id_attribute_node(struct dom_element *element, dom_exception _dom_element_get_classes(struct dom_element *element, lwc_string ***classes, uint32_t *n_classes) { - *classes = element->classes; - *n_classes = element->n_classes; + if (element->n_classes > 0) { + uint32_t classnr; + *n_classes = element->n_classes; + *classes = malloc(sizeof(lwc_string *) * element->n_classes); + for (classnr = 0; classnr < element->n_classes; ++classnr) + *classes[classnr] = lwc_string_ref( + element->classes[classnr]); + } else { + *n_classes = 0; + *classes = NULL; + } return DOM_NO_ERR; } -- cgit v1.2.3