From f8b0770275b36eb2f34daebfb6cc82a06aa43225 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Fri, 13 Dec 2013 20:14:01 +0000 Subject: Don't allocate array when client asks for element classes, just give pointer to internal array. --- src/core/element.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/core/element.c b/src/core/element.c index 6b3de9e..a86dc65 100644 --- a/src/core/element.c +++ b/src/core/element.c @@ -1157,7 +1157,7 @@ dom_exception _dom_element_set_id_attribute_node(struct dom_element *element, * Obtain a pre-parsed array of class names for an element * * \param element Element containing classes - * \param classes Pointer to location to receive client-owned allocated array + * \param classes Pointer to location to receive libdom-owned array * \param n_classes Pointer to location to receive number of classes * \return DOM_NO_ERR on success, * DOM_NO_MEM_ERR on memory exhaustion @@ -1166,20 +1166,14 @@ dom_exception _dom_element_get_classes(struct dom_element *element, lwc_string ***classes, uint32_t *n_classes) { if (element->n_classes > 0) { - lwc_string **classes_copy = NULL; uint32_t classnr; - classes_copy = malloc(sizeof(lwc_string *) * - element->n_classes); - if (classes_copy == NULL) - return DOM_NO_MEM_ERR; + *classes = element->classes; + *n_classes = element->n_classes; for (classnr = 0; classnr < element->n_classes; classnr++) - classes_copy[classnr] = lwc_string_ref( - element->classes[classnr]); + lwc_string_ref((*classes)[classnr]); - *classes = classes_copy; - *n_classes = element->n_classes; } else { *n_classes = 0; *classes = NULL; -- cgit v1.2.3