From c16e3fe11247f531b31b05482734acc516e96ce4 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sun, 25 Jan 2009 22:07:01 +0000 Subject: Clean up rules when destroying sheet svn path=/trunk/libcss/; revision=6271 --- src/stylesheet.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/stylesheet.c') diff --git a/src/stylesheet.c b/src/stylesheet.c index 56556e8..78f51a8 100644 --- a/src/stylesheet.c +++ b/src/stylesheet.c @@ -135,6 +135,8 @@ css_error css_stylesheet_create(css_language_level level, */ css_error css_stylesheet_destroy(css_stylesheet *sheet) { + css_rule *r, *s; + if (sheet == NULL) return CSS_BADPARM; @@ -143,7 +145,16 @@ css_error css_stylesheet_destroy(css_stylesheet *sheet) sheet->alloc(sheet->url, 0, sheet->pw); - /** \todo destroy other data */ + for (r = sheet->rule_list; r != NULL; r = s) { + s = r->next; + + /* Detach from list */ + r->parent = NULL; + r->prev = NULL; + r->next = NULL; + + css_stylesheet_rule_destroy(sheet, r); + } css_selector_hash_destroy(sheet->selectors); -- cgit v1.2.3