From 3a03e4be1a744d37c66ea97651ca082ee4eb39d4 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Mon, 1 Dec 2008 03:23:25 +0000 Subject: Divorce css_string from whatever gets stored in lpu hashes. Use pointers to parserutils_hash_entry directly in stylesheet datastructures. The upshot of this for allzengarden.css is: 5506 slots used (of 8192 => 67.211914%) Data: 8 full blocks: 32768 bytes 9 partial blocks: 35124 bytes (of 36864 => 95.279945%) Total: 69936 (4112) (32) Hash structures: 65584 i.e. a total string dictionary size of 135,520 bytes, which is some 74,056 bytes less than before. svn path=/trunk/libcss/; revision=5859 --- src/parse/parse.c | 7 ++++--- src/stylesheet.c | 10 ++++++---- src/stylesheet.h | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/parse/parse.c b/src/parse/parse.c index 54b37d8..ff8c813 100644 --- a/src/parse/parse.c +++ b/src/parse/parse.c @@ -639,7 +639,8 @@ css_error getToken(css_parser *parser, const css_token **token) perror); } - t->lower.data = interned->data; + t->lower.data = + (uint8_t *) interned->data; t->lower.len = interned->len; } } @@ -650,14 +651,14 @@ css_error getToken(css_parser *parser, const css_token **token) &interned); if (t->lower.data == NULL) { - t->lower.data = interned->data; + t->lower.data = (uint8_t *) interned->data; t->lower.len = interned->len; } if (perror != PARSERUTILS_OK) return css_error_from_parserutils_error(perror); - t->data.data = interned->data; + t->data.data = (uint8_t *) interned->data; t->data.len = interned->len; } else { t->data.data = t->lower.data = NULL; diff --git a/src/stylesheet.c b/src/stylesheet.c index b2e1c0e..f700a63 100644 --- a/src/stylesheet.c +++ b/src/stylesheet.c @@ -357,7 +357,7 @@ css_error css_stylesheet_selector_create(css_stylesheet *sheet, css_selector_type type, const css_string *name, const css_string *value, css_selector **selector) { - const css_string *iname, *ivalue; + const parserutils_hash_entry *iname, *ivalue; css_selector *sel; parserutils_error perror; @@ -440,7 +440,7 @@ css_error css_stylesheet_selector_detail_create(css_stylesheet *sheet, const css_string *value, css_selector_detail **detail) { parserutils_error perror; - const css_string *iname, *ivalue; + const parserutils_hash_entry *iname, *ivalue; css_selector_detail *det; if (sheet == NULL || name == NULL || detail == NULL) @@ -808,7 +808,8 @@ static void css_stylesheet_dump_selector(css_selector *selector, FILE *target, size_t *size); static void css_stylesheet_dump_selector_detail(css_selector_detail *detail, FILE *target, size_t *size); -static void css_stylesheet_dump_string(const css_string *string, FILE *target); +static void css_stylesheet_dump_string(const parserutils_hash_entry *string, + FILE *target); /** * Dump a stylesheet @@ -1025,7 +1026,8 @@ void css_stylesheet_dump_selector_detail(css_selector_detail *detail, * \param string The string to dump * \param target The file handle to output to */ -void css_stylesheet_dump_string(const css_string *string, FILE *target) +void css_stylesheet_dump_string(const parserutils_hash_entry *string, + FILE *target) { fprintf(target, "%.*s", (int) string->len, string->data); } diff --git a/src/stylesheet.h b/src/stylesheet.h index 1ab3939..487f408 100644 --- a/src/stylesheet.h +++ b/src/stylesheet.h @@ -48,8 +48,8 @@ typedef enum css_combinator { } css_combinator; typedef struct css_selector_detail { - const css_string *name; /**< Interned name */ - const css_string *value; /**< Interned value, or NULL */ + const parserutils_hash_entry *name; /**< Interned name */ + const parserutils_hash_entry *value; /**< Interned value, or NULL */ uint32_t type : 4, /**< Type of selector */ comb : 2, /**< Type of combinator */ -- cgit v1.2.3