From e0f1048bbeb7dfff28d32edba4a7944a411f6299 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Thu, 6 Oct 2011 18:32:37 +0000 Subject: Avoid interning propstrings table for every stylesheet, style tag and style attribute. svn path=/trunk/libcss/; revision=12972 --- src/parse/language.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'src/parse/language.c') diff --git a/src/parse/language.c b/src/parse/language.c index 5e550b1..f541514 100644 --- a/src/parse/language.c +++ b/src/parse/language.c @@ -120,9 +120,7 @@ css_error css__language_create(css_stylesheet *sheet, css_parser *parser, css_language *c; css_parser_optparams params; parserutils_error perror; - lwc_error lerror; css_error error; - int i; if (sheet == NULL || parser == NULL || alloc == NULL || language == NULL) @@ -141,15 +139,11 @@ css_error css__language_create(css_stylesheet *sheet, css_parser *parser, } /* Intern all known strings */ - for (i = 0; i < LAST_KNOWN; i++) { - lerror = lwc_intern_string(stringmap[i].data, - stringmap[i].len, - &(c->strings[i])); - if (lerror != lwc_error_ok) { - parserutils_stack_destroy(c->context); - alloc(c, 0, pw); - return CSS_NOMEM; - } + error = css__propstrings_get(&c->strings); + if (error != CSS_OK) { + parserutils_stack_destroy(c->context); + alloc(c, 0, pw); + return error; } params.event_handler.handler = language_handle_event; @@ -201,9 +195,7 @@ css_error css__language_destroy(css_language *language) parserutils_stack_destroy(language->context); - for (i = 0; i < LAST_KNOWN; ++i) { - lwc_string_unref(language->strings[i]); - } + css__propstrings_unref(); language->alloc(language, 0, language->pw); -- cgit v1.2.3