diff options
Diffstat (limited to 'source/modest/finder')
-rw-r--r-- | source/modest/finder/finder.c | 42 | ||||
-rw-r--r-- | source/modest/finder/finder.h | 5 | ||||
-rw-r--r-- | source/modest/finder/myosi.h | 2 | ||||
-rw-r--r-- | source/modest/finder/pseudo_class.c | 2 | ||||
-rw-r--r-- | source/modest/finder/thread.c | 4 | ||||
-rw-r--r-- | source/modest/finder/thread.h | 2 | ||||
-rw-r--r-- | source/modest/finder/type.c | 12 |
7 files changed, 17 insertions, 52 deletions
diff --git a/source/modest/finder/finder.c b/source/modest/finder/finder.c index e7f69d4..57b7e7b 100644 --- a/source/modest/finder/finder.c +++ b/source/modest/finder/finder.c @@ -28,9 +28,6 @@ modest_finder_t * modest_finder_create(void) modest_status_t modest_finder_init(modest_finder_t* finder) { - //finder->tree = NULL; - //finder->stylesheet = NULL; - return MODEST_STATUS_OK; } @@ -65,16 +62,6 @@ modest_finder_t * modest_finder_create_simple(void) return finder; } -myhtml_tree_t * modest_finder_html_tree(modest_finder_t* finder) -{ - return finder->html_tree; -} - -void modest_finder_html_tree_set(modest_finder_t* finder, myhtml_tree_t* myhtml_tree) -{ - finder->html_tree = myhtml_tree; -} - void modest_finder_callback_found_with_collection(modest_finder_t* finder, myhtml_tree_node_t* node, mycss_selectors_list_t* selector_list, mycss_selectors_entry_t* selector, mycss_selectors_specificity_t* spec, void* ctx) { myhtml_collection_t* collection = (myhtml_collection_t*)ctx; @@ -117,11 +104,9 @@ void modest_finder_specificity_inc(mycss_selectors_entry_t* selector, mycss_sele } } -modest_finder_t * modest_finder_by_stylesheet(myhtml_tree_t* myhtml_tree, mycss_stylesheet_t *stylesheet, - myhtml_collection_t** collection, myhtml_tree_node_t* base_node, - mycss_selectors_list_t* selector_list) +modest_finder_t * modest_finder_by_stylesheet(mycss_stylesheet_t *stylesheet, myhtml_collection_t** collection, myhtml_tree_node_t* base_node) { - if(collection == NULL) + if(collection == NULL || base_node == NULL || stylesheet == NULL) return NULL; modest_finder_t *finder = modest_finder_create(); @@ -148,21 +133,7 @@ modest_finder_t * modest_finder_by_stylesheet(myhtml_tree_t* myhtml_tree, mycss_ else myhtml_collection_clean(*collection); - if(base_node == NULL) { - if(myhtml_tree->node_html) - base_node = myhtml_tree->node_html; - else - return finder; - } - - if(selector_list == NULL) { - if(stylesheet->sel_list_first) - selector_list = stylesheet->sel_list_first; - else - return finder; - } - - finder->html_tree = myhtml_tree; + mycss_selectors_list_t *selector_list = stylesheet->sel_list_first; while(selector_list) { for(size_t i = 0; i < selector_list->entries_list_length; i++) { @@ -177,11 +148,10 @@ modest_finder_t * modest_finder_by_stylesheet(myhtml_tree_t* myhtml_tree, mycss_ return finder; } -modest_status_t modest_finder_by_selectors_list(modest_finder_t* finder, - myhtml_tree_t* myhtml_tree, myhtml_tree_node_t* scope_node, +modest_status_t modest_finder_by_selectors_list(modest_finder_t* finder, myhtml_tree_node_t* scope_node, mycss_selectors_list_t* selector_list, myhtml_collection_t** collection) { - if(finder == NULL || myhtml_tree == NULL || selector_list == NULL || scope_node == NULL || collection == NULL) + if(finder == NULL || selector_list == NULL || scope_node == NULL || collection == NULL) return MODEST_STATUS_ERROR; if(*collection == NULL) { @@ -192,8 +162,6 @@ modest_status_t modest_finder_by_selectors_list(modest_finder_t* finder, return MODEST_STATUS_ERROR_MEMORY_ALLOCATION; } - finder->html_tree = myhtml_tree; - for(size_t i = 0; i < selector_list->entries_list_length; i++) { mycss_selectors_specificity_t spec = selector_list->entries_list[i].specificity; diff --git a/source/modest/finder/finder.h b/source/modest/finder/finder.h index 51070c7..dd29d87 100644 --- a/source/modest/finder/finder.h +++ b/source/modest/finder/finder.h @@ -57,10 +57,9 @@ void modest_finder_callback_found_with_bool(modest_finder_t* finder, myhtml_tree void modest_finder_specificity_inc(mycss_selectors_entry_t* selector, mycss_selectors_specificity_t* spec); /* base api */ -modest_finder_t * modest_finder_by_stylesheet(myhtml_tree_t* myhtml_tree, mycss_stylesheet_t *stylesheet, - myhtml_collection_t** collection, myhtml_tree_node_t* base_node, mycss_selectors_list_t* selector_list); +modest_finder_t * modest_finder_by_stylesheet(mycss_stylesheet_t *stylesheet, myhtml_collection_t** collection, myhtml_tree_node_t* base_node); -modest_status_t modest_finder_by_selectors_list(modest_finder_t* finder, myhtml_tree_t* myhtml_tree, myhtml_tree_node_t* scope_node, +modest_status_t modest_finder_by_selectors_list(modest_finder_t* finder, myhtml_tree_node_t* scope_node, mycss_selectors_list_t* selector_list, myhtml_collection_t** collection); /* process */ diff --git a/source/modest/finder/myosi.h b/source/modest/finder/myosi.h index 468f1a0..eaf769d 100644 --- a/source/modest/finder/myosi.h +++ b/source/modest/finder/myosi.h @@ -37,7 +37,7 @@ typedef void (*modest_finder_callback_f)(modest_finder_t* finder, myhtml_tree_no typedef bool (*modest_finder_match_f)(myhtml_token_attr_t* attr, const char* key, size_t key_len, const char* value, size_t value_len, bool case_sensitive); struct modest_finder { - myhtml_tree_t* html_tree; + void* ctx; }; typedef struct modest_finder_thread_declaration modest_finder_thread_declaration_t; diff --git a/source/modest/finder/pseudo_class.c b/source/modest/finder/pseudo_class.c index 8e5bc80..807996e 100644 --- a/source/modest/finder/pseudo_class.c +++ b/source/modest/finder/pseudo_class.c @@ -759,7 +759,7 @@ bool modest_finder_selector_sub_type_pseudo_class_required(modest_finder_t* find bool modest_finder_selector_sub_type_pseudo_class_root(modest_finder_t* finder, myhtml_tree_node_t* base_node, mycss_selectors_entry_t* selector, mycss_selectors_specificity_t* spec) { - if(finder->html_tree && finder->html_tree->node_html == base_node) + if(base_node->tree && base_node->tree->node_html == base_node) return true; return false; diff --git a/source/modest/finder/thread.c b/source/modest/finder/thread.c index 9ca10a2..1d03b09 100644 --- a/source/modest/finder/thread.c +++ b/source/modest/finder/thread.c @@ -133,7 +133,7 @@ void modest_finder_thread_collate_node(modest_t* modest, myhtml_tree_node_t* nod } } -modest_status_t modest_finder_thread_process(modest_t* modest, modest_finder_thread_t* finder_thread, myhtml_tree_t* myhtml_tree, +modest_status_t modest_finder_thread_process(modest_t* modest, modest_finder_thread_t* finder_thread, myhtml_tree_node_t* scope_node, mycss_selectors_list_t* selector_list) { finder_thread->base_node = scope_node; @@ -142,8 +142,6 @@ modest_status_t modest_finder_thread_process(modest_t* modest, modest_finder_thr if(finder_thread->finder == NULL) return MODEST_STATUS_ERROR; - finder_thread->finder->html_tree = myhtml_tree; - mythread_resume_all(finder_thread->thread); modest_finder_thread_wait_for_all_done(finder_thread); diff --git a/source/modest/finder/thread.h b/source/modest/finder/thread.h index 607c15e..7db18fb 100644 --- a/source/modest/finder/thread.h +++ b/source/modest/finder/thread.h @@ -89,7 +89,7 @@ modest_status_t modest_finder_thread_init(modest_finder_t* finder, modest_finder void modest_finder_thread_clean(modest_finder_thread_t* finder_thread, bool self_destroy); modest_finder_thread_t * modest_finder_thread_destroy(modest_finder_thread_t* finder_thread, bool self_destroy); -modest_status_t modest_finder_thread_process(modest_t* modest, modest_finder_thread_t* finder_thread, myhtml_tree_t* myhtml_tree, myhtml_tree_node_t* scope_node, mycss_selectors_list_t* selector_list); +modest_status_t modest_finder_thread_process(modest_t* modest, modest_finder_thread_t* finder_thread, myhtml_tree_node_t* scope_node, mycss_selectors_list_t* selector_list); void modest_finder_thread_wait_for_all_done(modest_finder_thread_t* finder_thread); bool modest_finder_thread_spec_is_up(modest_style_raw_specificity_t* spec_f, modest_style_raw_specificity_t* spec_t); diff --git a/source/modest/finder/type.c b/source/modest/finder/type.c index 068ae55..0de5ad5 100644 --- a/source/modest/finder/type.c +++ b/source/modest/finder/type.c @@ -39,8 +39,8 @@ bool modest_finder_selector_type_element(modest_finder_t* finder, myhtml_tree_no if(str->length == 1 && *str->data == '*') return true; - if(finder->html_tree) { - myhtml_tag_id_t tag_id = myhtml_tag_id_by_name(finder->html_tree, str->data, str->length); + if(node->tree) { + myhtml_tag_id_t tag_id = myhtml_tag_id_by_name(node->tree, str->data, str->length); if(tag_id == node->tag_id) return true; @@ -54,11 +54,11 @@ bool modest_finder_selector_type_id(modest_finder_t* finder, myhtml_tree_node_t* if(node->token == NULL) return false; - if(finder->html_tree) { + if(node->tree) { return modest_finder_match_attribute_eq(node->token->attr_first, "id", 2, selector->key->data, selector->key->length, - (finder->html_tree->compat_mode != MyHTML_TREE_COMPAT_MODE_QUIRKS)); + (node->tree->compat_mode != MyHTML_TREE_COMPAT_MODE_QUIRKS)); } return false; @@ -69,11 +69,11 @@ bool modest_finder_selector_type_class(modest_finder_t* finder, myhtml_tree_node if(node->token == NULL) return false; - if(finder->html_tree) { + if(node->tree) { return modest_finder_match_attribute_ws(node->token->attr_first, "class", 5, selector->key->data, selector->key->length, - (finder->html_tree->compat_mode != MyHTML_TREE_COMPAT_MODE_QUIRKS)); + (node->tree->compat_mode != MyHTML_TREE_COMPAT_MODE_QUIRKS)); } return false; |