summaryrefslogtreecommitdiff
path: root/src/stylesheet.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2008-11-30 16:43:37 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2008-11-30 16:43:37 +0000
commit79a34e5d5a9a93d9232efd595291bc5ebea2f2c5 (patch)
treec35e7cc49699420e01a973f4bccb639931e9cc1d /src/stylesheet.c
parent7dad1d392d1c380648f6de13f81ade48ce958be1 (diff)
downloadlibcss-79a34e5d5a9a93d9232efd595291bc5ebea2f2c5.tar.gz
libcss-79a34e5d5a9a93d9232efd595291bc5ebea2f2c5.tar.bz2
Use parserutils_hash instead of parserutils_dict.
This approximately halves the size of the interned string table. We now have the following for allzengarden.css: 5507 slots used (of 8192 => 67.224121%) Data: 3 full blocks: 12288 bytes 10 partial blocks: 38946 bytes (of 40960 => 95.083008%) Total: 53488 (4112) (32) Entries: 21 full blocks: 86016 bytes 1 partial blocks: 2096 bytes (of 4096 => 51.171875%) Total: 90496 (4112) (32) Hash structures: 65592 Which gives a total dictionary size of 209,576 bytes. Note that 43% of this is parserutils_hash_entry structures (length-pointer pairs). It would be good, therefore, to be able to purge these. svn path=/trunk/libcss/; revision=5852
Diffstat (limited to 'src/stylesheet.c')
-rw-r--r--src/stylesheet.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/stylesheet.c b/src/stylesheet.c
index 5c6e68d..b2e1c0e 100644
--- a/src/stylesheet.c
+++ b/src/stylesheet.c
@@ -51,7 +51,7 @@ css_error css_stylesheet_create(css_language_level level,
memset(sheet, 0, sizeof(css_stylesheet));
- perror = parserutils_dict_create((parserutils_alloc) alloc, alloc_pw,
+ perror = parserutils_hash_create((parserutils_alloc) alloc, alloc_pw,
&sheet->dictionary);
if (perror != PARSERUTILS_OK) {
alloc(sheet, 0, alloc_pw);
@@ -62,7 +62,7 @@ css_error css_stylesheet_create(css_language_level level,
charset ? CSS_CHARSET_DICTATED : CSS_CHARSET_DEFAULT,
sheet->dictionary, alloc, alloc_pw, &sheet->parser);
if (error != CSS_OK) {
- parserutils_dict_destroy(sheet->dictionary);
+ parserutils_hash_destroy(sheet->dictionary);
alloc(sheet, 0, alloc_pw);
return error;
}
@@ -72,7 +72,7 @@ css_error css_stylesheet_create(css_language_level level,
&sheet->parser_frontend);
if (error != CSS_OK) {
css_parser_destroy(sheet->parser);
- parserutils_dict_destroy(sheet->dictionary);
+ parserutils_hash_destroy(sheet->dictionary);
alloc(sheet, 0, alloc_pw);
return error;
}
@@ -84,7 +84,7 @@ css_error css_stylesheet_create(css_language_level level,
if (sheet->url == NULL) {
css_language_destroy(sheet->parser_frontend);
css_parser_destroy(sheet->parser);
- parserutils_dict_destroy(sheet->dictionary);
+ parserutils_hash_destroy(sheet->dictionary);
alloc(sheet, 0, alloc_pw);
return CSS_NOMEM;
}
@@ -97,7 +97,7 @@ css_error css_stylesheet_create(css_language_level level,
alloc(sheet->url, 0, alloc_pw);
css_language_destroy(sheet->parser_frontend);
css_parser_destroy(sheet->parser);
- parserutils_dict_destroy(sheet->dictionary);
+ parserutils_hash_destroy(sheet->dictionary);
alloc(sheet, 0, alloc_pw);
return CSS_NOMEM;
}
@@ -129,7 +129,7 @@ css_error css_stylesheet_destroy(css_stylesheet *sheet)
if (sheet == NULL)
return CSS_BADPARM;
- parserutils_dict_destroy(sheet->dictionary);
+ parserutils_hash_destroy(sheet->dictionary);
if (sheet->title != NULL)
sheet->alloc(sheet->title, 0, sheet->pw);
@@ -376,7 +376,7 @@ css_error css_stylesheet_selector_create(css_stylesheet *sheet,
* the dictionary, it would be more efficient to pass a pointer to the
* dictionary entry around rather than re-discovering it here. The same
* applies for value, and in css_stylesheet_selector_detail_create() */
- perror = parserutils_dict_insert(sheet->dictionary, name->data,
+ perror = parserutils_hash_insert(sheet->dictionary, name->data,
name->len, &iname);
if (perror != PARSERUTILS_OK) {
sheet->alloc(sel, 0, sheet->pw);
@@ -385,7 +385,7 @@ css_error css_stylesheet_selector_create(css_stylesheet *sheet,
sel->data.name = iname;
if (value != NULL) {
- perror = parserutils_dict_insert(sheet->dictionary,
+ perror = parserutils_hash_insert(sheet->dictionary,
value->data, value->len, &ivalue);
if (perror != PARSERUTILS_OK) {
sheet->alloc(sel, 0, sheet->pw);
@@ -454,7 +454,7 @@ css_error css_stylesheet_selector_detail_create(css_stylesheet *sheet,
det->type = type;
- perror = parserutils_dict_insert(sheet->dictionary, name->data,
+ perror = parserutils_hash_insert(sheet->dictionary, name->data,
name->len, &iname);
if (perror != PARSERUTILS_OK) {
sheet->alloc(det, 0, sheet->pw);
@@ -463,7 +463,7 @@ css_error css_stylesheet_selector_detail_create(css_stylesheet *sheet,
det->name = iname;
if (value != NULL) {
- perror = parserutils_dict_insert(sheet->dictionary,
+ perror = parserutils_hash_insert(sheet->dictionary,
value->data, value->len, &ivalue);
if (perror != PARSERUTILS_OK) {
sheet->alloc(det, 0, sheet->pw);