diff options
-rw-r--r-- | content/content.c | 2 | ||||
-rw-r--r-- | css/css.c | 13 |
2 files changed, 9 insertions, 6 deletions
diff --git a/content/content.c b/content/content.c index f56d842ce..5b7d783e3 100644 --- a/content/content.c +++ b/content/content.c @@ -348,7 +348,7 @@ struct content * content_create(const char *url) struct content *c; struct content_user *user_sentinel; - c = talloc(0, struct content); + c = talloc_zero(0, struct content); if (!c) return 0; @@ -470,13 +470,16 @@ void css_destroy(struct content *c) unsigned int i; struct css_selector *r; - for (i = 0; i != HASH_SIZE; i++) { - for (r = c->data.css.css->rule[i]; r != 0; r = r->next) { - css_deep_free_style(r->style); + if (c->data.css.css) { + for (i = 0; i != HASH_SIZE; i++) { + for (r = c->data.css.css->rule[i]; r != 0; + r = r->next) { + css_deep_free_style(r->style); + } + css_free_selector(c->data.css.css->rule[i]); } - css_free_selector(c->data.css.css->rule[i]); + free(c->data.css.css); } - free(c->data.css.css); /* imported stylesheets */ for (i = 0; i != c->data.css.import_count; i++) |