Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/lexborisov/Modest.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/myhtml/myhtml.c')
-rw-r--r--source/myhtml/myhtml.c409
1 files changed, 236 insertions, 173 deletions
diff --git a/source/myhtml/myhtml.c b/source/myhtml/myhtml.c
index 767603e..479f33e 100644
--- a/source/myhtml/myhtml.c
+++ b/source/myhtml/myhtml.c
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2015-2016 Alexander Borisov
+ Copyright (C) 2015-2017 Alexander Borisov
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -22,7 +22,7 @@
void myhtml_init_marker(myhtml_t* myhtml)
{
- myhtml->marker = (myhtml_tree_node_t*)myhtml_malloc(sizeof(myhtml_tree_node_t));
+ myhtml->marker = (myhtml_tree_node_t*)mycore_malloc(sizeof(myhtml_tree_node_t));
if(myhtml->marker)
myhtml_tree_node_clean(myhtml->marker);
@@ -31,92 +31,152 @@ void myhtml_init_marker(myhtml_t* myhtml)
void myhtml_destroy_marker(myhtml_t* myhtml)
{
if(myhtml->marker)
- myhtml_free(myhtml->marker);
+ mycore_free(myhtml->marker);
}
-myhtml_t * myhtml_create(void)
+#ifndef MyCORE_BUILD_WITHOUT_THREADS
+mystatus_t myhtml_stream_create(myhtml_t* myhtml, mystatus_t* status, size_t count, size_t id_increase)
{
- return (myhtml_t*)myhtml_malloc(sizeof(myhtml_t));
+ if(count == 0) {
+ myhtml->thread_stream = NULL;
+
+ *status = MyHTML_STATUS_OK;
+ return *status;
+ }
+
+ myhtml->thread_stream = mythread_create();
+ if(myhtml->thread_stream == NULL)
+ *status = MyCORE_STATUS_THREAD_ERROR_MEMORY_ALLOCATION;
+
+ *status = mythread_init(myhtml->thread_stream, MyTHREAD_TYPE_STREAM, count, id_increase);
+
+ if(*status)
+ myhtml->thread_stream = mythread_destroy(myhtml->thread_stream, NULL, NULL, true);
+
+ return *status;
}
-myhtml_status_t myhtml_init(myhtml_t* myhtml, enum myhtml_options opt, size_t thread_count, size_t queue_size)
+mystatus_t myhtml_batch_create(myhtml_t* myhtml, mystatus_t* status, size_t count, size_t id_increase)
{
- myhtml_status_t status;
+ if(count == 0) {
+ myhtml->thread_batch = NULL;
+
+ *status = MyHTML_STATUS_OK;
+ return *status;
+ }
- myhtml_init_marker(myhtml);
+ myhtml->thread_batch = mythread_create();
+ if(myhtml->thread_stream == NULL) {
+ myhtml->thread_stream = mythread_destroy(myhtml->thread_stream, NULL, NULL, true);
+ *status = MyCORE_STATUS_THREAD_ERROR_MEMORY_ALLOCATION;
+ }
- status = myhtml_tokenizer_state_init(myhtml);
- if(status) {
- myhtml->insertion_func = NULL;
- myhtml->thread = NULL;
-
+ *status = mythread_init(myhtml->thread_batch, MyTHREAD_TYPE_BATCH, count, id_increase);
+
+ if(*status)
+ myhtml->thread_batch = mythread_destroy(myhtml->thread_batch , NULL, NULL, true);
+
+ return *status;
+}
+
+mystatus_t myhtml_create_stream_and_batch(myhtml_t* myhtml, size_t stream_count, size_t batch_count)
+{
+ mystatus_t status;
+
+ /* stream */
+ if(myhtml_stream_create(myhtml, &status, stream_count, 0)) {
return status;
}
- status = myhtml_rules_init(myhtml);
- if(status) {
- myhtml->thread = NULL;
-
+ /* batch */
+ if(myhtml_batch_create(myhtml, &status, batch_count, stream_count)) {
+ myhtml->thread_stream = mythread_destroy(myhtml->thread_stream, NULL, NULL, true);
return status;
}
+ return status;
+}
+#endif /* if undef MyCORE_BUILD_WITHOUT_THREADS */
+
+myhtml_t * myhtml_create(void)
+{
+ return (myhtml_t*)mycore_calloc(1, sizeof(myhtml_t));
+}
+
+mystatus_t myhtml_init(myhtml_t* myhtml, enum myhtml_options opt, size_t thread_count, size_t queue_size)
+{
+ mystatus_t status;
+
myhtml->opt = opt;
- myhtml->thread = mythread_create();
+ myhtml_init_marker(myhtml);
- if(myhtml->thread == NULL)
- return MyHTML_STATUS_THREAD_ERROR_MEMORY_ALLOCATION;
+ status = myhtml_tokenizer_state_init(myhtml);
+ if(status)
+ return status;
-#ifdef MyHTML_BUILD_WITHOUT_THREADS
+ status = myhtml_rules_init(myhtml);
+
+#ifdef MyCORE_BUILD_WITHOUT_THREADS
- status = mythread_init(myhtml->thread, NULL, thread_count);
+ myhtml->thread_stream = NULL;
+ myhtml->thread_batch = NULL;
+ myhtml->thread_total = 0;
+#else /* if undef MyCORE_BUILD_WITHOUT_THREADS */
if(status)
return status;
-#else /* MyHTML_BUILD_WITHOUT_THREADS */
switch (opt) {
case MyHTML_OPTIONS_PARSE_MODE_SINGLE:
- status = mythread_init(myhtml->thread, "lastmac", 0);
- if(status)
- return status;
-
- myhtml->thread->context = mythread_queue_list_create(&status);
- if(status)
+ if((status = myhtml_create_stream_and_batch(myhtml, 0, 0)))
return status;
break;
case MyHTML_OPTIONS_PARSE_MODE_ALL_IN_ONE:
- status = mythread_init(myhtml->thread, "lastmac", 1);
- if(status)
+ if((status = myhtml_create_stream_and_batch(myhtml, 1, 0)))
return status;
- myhtml->thread->context = mythread_queue_list_create(&status);
- if(status)
- return status;
+ myhtml->thread_stream->context = mythread_queue_list_create(&status);
+ status = myhread_entry_create(myhtml->thread_stream, mythread_function_queue_stream, myhtml_parser_worker_stream, MyTHREAD_OPT_STOP);
- myhread_create_stream(myhtml->thread, mythread_function_queue_stream, myhtml_parser_worker_stream, MyTHREAD_OPT_STOP, &status);
break;
default:
// default MyHTML_OPTIONS_PARSE_MODE_SEPARATELY
- if(thread_count == 0)
- thread_count = 1;
+ if(thread_count < 2)
+ thread_count = 2;
- status = mythread_init(myhtml->thread, "lastmac", (thread_count + 1));
- if(status)
+ if((status = myhtml_create_stream_and_batch(myhtml, 1, (thread_count - 1))))
return status;
- myhtml->thread->context = mythread_queue_list_create(&status);
+ myhtml->thread_stream->context = mythread_queue_list_create(&status);
+ myhtml->thread_batch->context = myhtml->thread_stream->context;
+
+ status = myhread_entry_create(myhtml->thread_stream, mythread_function_queue_stream, myhtml_parser_stream, MyTHREAD_OPT_STOP);
if(status)
return status;
- myhread_create_stream(myhtml->thread, mythread_function_queue_stream, myhtml_parser_stream, MyTHREAD_OPT_STOP, &status);
- myhread_create_batch(myhtml->thread, mythread_function_queue_batch, myhtml_parser_worker, MyTHREAD_OPT_STOP, &status, thread_count);
+ for(size_t i = 0; i < myhtml->thread_batch->entries_size; i++) {
+ status = myhread_entry_create(myhtml->thread_batch, mythread_function_queue_batch, myhtml_parser_worker, MyTHREAD_OPT_STOP);
+
+ if(status)
+ return status;
+ }
+
break;
}
-#endif /* MyHTML_BUILD_WITHOUT_THREADS */
+ myhtml->thread_total = thread_count;
+
+ myhtml->thread_list[0] = myhtml->thread_stream;
+ myhtml->thread_list[1] = myhtml->thread_batch;
+ myhtml->thread_list[2] = NULL;
+
+#endif /* if undef MyCORE_BUILD_WITHOUT_THREADS */
+
+ if(status)
+ return status;
myhtml_clean(myhtml);
@@ -125,7 +185,7 @@ myhtml_status_t myhtml_init(myhtml_t* myhtml, enum myhtml_options opt, size_t th
void myhtml_clean(myhtml_t* myhtml)
{
- mythread_clean(myhtml->thread);
+ /* some code */
}
myhtml_t* myhtml_destroy(myhtml_t* myhtml)
@@ -135,36 +195,41 @@ myhtml_t* myhtml_destroy(myhtml_t* myhtml)
myhtml_destroy_marker(myhtml);
- if(myhtml->thread) {
-#ifndef MyHTML_BUILD_WITHOUT_THREADS
- mythread_queue_list_t* queue_list = myhtml->thread->context;
-#endif
+#ifndef MyCORE_BUILD_WITHOUT_THREADS
+ if(myhtml->thread_stream) {
+ mythread_queue_list_t* queue_list = myhtml->thread_stream->context;
+
+ if(queue_list)
+ mythread_queue_list_wait_for_done(myhtml->thread_stream, queue_list);
- myhtml->thread = mythread_destroy(myhtml->thread, mythread_queue_wait_all_for_done, true);
+ myhtml->thread_stream = mythread_destroy(myhtml->thread_stream, mythread_callback_quit, NULL, true);
-#ifndef MyHTML_BUILD_WITHOUT_THREADS
- mythread_queue_list_destroy(queue_list);
-#endif
+ if(myhtml->thread_batch)
+ myhtml->thread_batch = mythread_destroy(myhtml->thread_batch, mythread_callback_quit, NULL, true);
+
+ if(queue_list)
+ mythread_queue_list_destroy(queue_list);
}
+#endif /* if undef MyCORE_BUILD_WITHOUT_THREADS */
myhtml_tokenizer_state_destroy(myhtml);
if(myhtml->insertion_func)
- myhtml_free(myhtml->insertion_func);
+ mycore_free(myhtml->insertion_func);
- myhtml_free(myhtml);
+ mycore_free(myhtml);
return NULL;
}
-myhtml_status_t myhtml_parse(myhtml_tree_t* tree, myhtml_encoding_t encoding, const char* html, size_t html_size)
+mystatus_t myhtml_parse(myhtml_tree_t* tree, myencoding_t encoding, const char* html, size_t html_size)
{
if(tree->flags & MyHTML_TREE_FLAGS_PARSE_END) {
myhtml_tree_clean(tree);
}
myhtml_encoding_set(tree, encoding);
- myhtml_status_t status = myhtml_tokenizer_begin(tree, html, html_size);
+ mystatus_t status = myhtml_tokenizer_begin(tree, html, html_size);
if(status)
return status;
@@ -172,7 +237,7 @@ myhtml_status_t myhtml_parse(myhtml_tree_t* tree, myhtml_encoding_t encoding, co
return myhtml_tokenizer_end(tree);
}
-myhtml_status_t myhtml_parse_fragment(myhtml_tree_t* tree, myhtml_encoding_t encoding, const char* html, size_t html_size, myhtml_tag_id_t tag_id, enum myhtml_namespace ns)
+mystatus_t myhtml_parse_fragment(myhtml_tree_t* tree, myencoding_t encoding, const char* html, size_t html_size, myhtml_tag_id_t tag_id, enum myhtml_namespace ns)
{
if(tree->flags & MyHTML_TREE_FLAGS_PARSE_END) {
myhtml_tree_clean(tree);
@@ -188,7 +253,7 @@ myhtml_status_t myhtml_parse_fragment(myhtml_tree_t* tree, myhtml_encoding_t enc
return MyHTML_STATUS_TOKENIZER_ERROR_FRAGMENT_INIT;
myhtml_encoding_set(tree, encoding);
- myhtml_status_t status = myhtml_tokenizer_begin(tree, html, html_size);
+ mystatus_t status = myhtml_tokenizer_begin(tree, html, html_size);
if(status)
return status;
@@ -196,7 +261,7 @@ myhtml_status_t myhtml_parse_fragment(myhtml_tree_t* tree, myhtml_encoding_t enc
return myhtml_tokenizer_end(tree);
}
-myhtml_status_t myhtml_parse_single(myhtml_tree_t* tree, myhtml_encoding_t encoding, const char* html, size_t html_size)
+mystatus_t myhtml_parse_single(myhtml_tree_t* tree, myencoding_t encoding, const char* html, size_t html_size)
{
if(tree->flags & MyHTML_TREE_FLAGS_PARSE_END) {
myhtml_tree_clean(tree);
@@ -206,7 +271,7 @@ myhtml_status_t myhtml_parse_single(myhtml_tree_t* tree, myhtml_encoding_t encod
myhtml_encoding_set(tree, encoding);
- myhtml_status_t status = myhtml_tokenizer_begin(tree, html, html_size);
+ mystatus_t status = myhtml_tokenizer_begin(tree, html, html_size);
if(status)
return status;
@@ -214,7 +279,7 @@ myhtml_status_t myhtml_parse_single(myhtml_tree_t* tree, myhtml_encoding_t encod
return myhtml_tokenizer_end(tree);
}
-myhtml_status_t myhtml_parse_fragment_single(myhtml_tree_t* tree, myhtml_encoding_t encoding, const char* html, size_t html_size, myhtml_tag_id_t tag_id, enum myhtml_namespace ns)
+mystatus_t myhtml_parse_fragment_single(myhtml_tree_t* tree, myencoding_t encoding, const char* html, size_t html_size, myhtml_tag_id_t tag_id, enum myhtml_namespace ns)
{
if(tree->flags & MyHTML_TREE_FLAGS_PARSE_END) {
myhtml_tree_clean(tree);
@@ -233,7 +298,7 @@ myhtml_status_t myhtml_parse_fragment_single(myhtml_tree_t* tree, myhtml_encodin
myhtml_encoding_set(tree, encoding);
- myhtml_status_t status = myhtml_tokenizer_begin(tree, html, html_size);
+ mystatus_t status = myhtml_tokenizer_begin(tree, html, html_size);
if(status)
return status;
@@ -241,7 +306,7 @@ myhtml_status_t myhtml_parse_fragment_single(myhtml_tree_t* tree, myhtml_encodin
return myhtml_tokenizer_end(tree);
}
-myhtml_status_t myhtml_parse_chunk(myhtml_tree_t* tree, const char* html, size_t html_size)
+mystatus_t myhtml_parse_chunk(myhtml_tree_t* tree, const char* html, size_t html_size)
{
if(tree->flags & MyHTML_TREE_FLAGS_PARSE_END) {
myhtml_tree_clean(tree);
@@ -250,7 +315,7 @@ myhtml_status_t myhtml_parse_chunk(myhtml_tree_t* tree, const char* html, size_t
return myhtml_tokenizer_chunk(tree, html, html_size);
}
-myhtml_status_t myhtml_parse_chunk_fragment(myhtml_tree_t* tree, const char* html, size_t html_size, myhtml_tag_id_t tag_id, enum myhtml_namespace ns)
+mystatus_t myhtml_parse_chunk_fragment(myhtml_tree_t* tree, const char* html, size_t html_size, myhtml_tag_id_t tag_id, enum myhtml_namespace ns)
{
if(tree->flags & MyHTML_TREE_FLAGS_PARSE_END) {
myhtml_tree_clean(tree);
@@ -268,7 +333,7 @@ myhtml_status_t myhtml_parse_chunk_fragment(myhtml_tree_t* tree, const char* htm
return myhtml_tokenizer_chunk(tree, html, html_size);
}
-myhtml_status_t myhtml_parse_chunk_single(myhtml_tree_t* tree, const char* html, size_t html_size)
+mystatus_t myhtml_parse_chunk_single(myhtml_tree_t* tree, const char* html, size_t html_size)
{
if((tree->flags & MyHTML_TREE_FLAGS_SINGLE_MODE) == 0)
tree->flags |= MyHTML_TREE_FLAGS_SINGLE_MODE;
@@ -276,7 +341,7 @@ myhtml_status_t myhtml_parse_chunk_single(myhtml_tree_t* tree, const char* html,
return myhtml_parse_chunk(tree, html, html_size);
}
-myhtml_status_t myhtml_parse_chunk_fragment_single(myhtml_tree_t* tree, const char* html, size_t html_size, myhtml_tag_id_t tag_id, enum myhtml_namespace ns)
+mystatus_t myhtml_parse_chunk_fragment_single(myhtml_tree_t* tree, const char* html, size_t html_size, myhtml_tag_id_t tag_id, enum myhtml_namespace ns)
{
if((tree->flags & MyHTML_TREE_FLAGS_SINGLE_MODE) == 0)
tree->flags |= MyHTML_TREE_FLAGS_SINGLE_MODE;
@@ -284,21 +349,21 @@ myhtml_status_t myhtml_parse_chunk_fragment_single(myhtml_tree_t* tree, const ch
return myhtml_parse_chunk_fragment(tree, html, html_size, tag_id, ns);
}
-myhtml_status_t myhtml_parse_chunk_end(myhtml_tree_t* tree)
+mystatus_t myhtml_parse_chunk_end(myhtml_tree_t* tree)
{
return myhtml_tokenizer_end(tree);
}
-void myhtml_encoding_set(myhtml_tree_t* tree, myhtml_encoding_t encoding)
+void myhtml_encoding_set(myhtml_tree_t* tree, myencoding_t encoding)
{
- if(encoding >= MyHTML_ENCODING_LAST_ENTRY)
+ if(encoding >= MyENCODING_LAST_ENTRY)
return;
tree->encoding_usereq = encoding;
tree->encoding = encoding;
}
-myhtml_encoding_t myhtml_encoding_get(myhtml_tree_t* tree)
+myencoding_t myhtml_encoding_get(myhtml_tree_t* tree)
{
return tree->encoding;
}
@@ -307,7 +372,7 @@ myhtml_encoding_t myhtml_encoding_get(myhtml_tree_t* tree)
* Nodes
*/
-myhtml_status_t myhtml_get_nodes_by_tag_id_in_scope_find_recursion(myhtml_tree_node_t *node, myhtml_collection_t *collection, myhtml_tag_id_t tag_id)
+mystatus_t myhtml_get_nodes_by_tag_id_in_scope_find_recursion(myhtml_tree_node_t *node, myhtml_collection_t *collection, myhtml_tag_id_t tag_id)
{
while(node) {
if(node->tag_id == tag_id) {
@@ -316,7 +381,7 @@ myhtml_status_t myhtml_get_nodes_by_tag_id_in_scope_find_recursion(myhtml_tree_n
if(collection->length >= collection->size)
{
- myhtml_status_t mystatus = myhtml_collection_check_size(collection, 1024, 0);
+ mystatus_t mystatus = myhtml_collection_check_size(collection, 1024, 0);
if(mystatus != MyHTML_STATUS_OK)
return mystatus;
@@ -332,12 +397,12 @@ myhtml_status_t myhtml_get_nodes_by_tag_id_in_scope_find_recursion(myhtml_tree_n
return MyHTML_STATUS_OK;
}
-myhtml_collection_t * myhtml_get_nodes_by_tag_id_in_scope(myhtml_tree_t* tree, myhtml_collection_t *collection, myhtml_tree_node_t *node, myhtml_tag_id_t tag_id, myhtml_status_t *status)
+myhtml_collection_t * myhtml_get_nodes_by_tag_id_in_scope(myhtml_tree_t* tree, myhtml_collection_t *collection, myhtml_tree_node_t *node, myhtml_tag_id_t tag_id, mystatus_t *status)
{
if(node == NULL)
return NULL;
- myhtml_status_t mystatus = MyHTML_STATUS_OK;
+ mystatus_t mystatus = MyHTML_STATUS_OK;
if(collection == NULL) {
collection = myhtml_collection_create(1024, &mystatus);
@@ -361,13 +426,13 @@ myhtml_collection_t * myhtml_get_nodes_by_tag_id_in_scope(myhtml_tree_t* tree, m
return collection;
}
-myhtml_collection_t * myhtml_get_nodes_by_name_in_scope(myhtml_tree_t* tree, myhtml_collection_t *collection, myhtml_tree_node_t *node, const char* html, size_t length, myhtml_status_t *status)
+myhtml_collection_t * myhtml_get_nodes_by_name_in_scope(myhtml_tree_t* tree, myhtml_collection_t *collection, myhtml_tree_node_t *node, const char* html, size_t length, mystatus_t *status)
{
const myhtml_tag_context_t *tag_ctx = myhtml_tag_get_by_name(tree->tags, html, length);
return myhtml_get_nodes_by_tag_id_in_scope(tree, collection, node, tag_ctx->id, status);
}
-myhtml_collection_t * myhtml_get_nodes_by_tag_id(myhtml_tree_t* tree, myhtml_collection_t *collection, myhtml_tag_id_t tag_id, myhtml_status_t *status)
+myhtml_collection_t * myhtml_get_nodes_by_tag_id(myhtml_tree_t* tree, myhtml_collection_t *collection, myhtml_tag_id_t tag_id, mystatus_t *status)
{
if(collection == NULL) {
collection = myhtml_collection_create(1024, NULL);
@@ -417,7 +482,7 @@ myhtml_collection_t * myhtml_get_nodes_by_tag_id(myhtml_tree_t* tree, myhtml_col
return collection;
}
-myhtml_collection_t * myhtml_get_nodes_by_name(myhtml_tree_t* tree, myhtml_collection_t *collection, const char* html, size_t length, myhtml_status_t *status)
+myhtml_collection_t * myhtml_get_nodes_by_name(myhtml_tree_t* tree, myhtml_collection_t *collection, const char* html, size_t length, mystatus_t *status)
{
const myhtml_tag_context_t *tag_ctx = myhtml_tag_get_by_name(tree->tags, html, length);
@@ -546,12 +611,12 @@ myhtml_tree_node_t * myhtml_node_insert_to_appropriate_place(myhtml_tree_node_t
return node;
}
-myhtml_string_t * myhtml_node_text_set(myhtml_tree_node_t *node, const char* text, size_t length, myhtml_encoding_t encoding)
+mycore_string_t * myhtml_node_text_set(myhtml_tree_node_t *node, const char* text, size_t length, myencoding_t encoding)
{
if(node == NULL)
return NULL;
- if(encoding >= MyHTML_ENCODING_LAST_ENTRY)
+ if(encoding >= MyENCODING_LAST_ENTRY)
return NULL;
myhtml_tree_t* tree = node->tree;
@@ -564,22 +629,22 @@ myhtml_string_t * myhtml_node_text_set(myhtml_tree_node_t *node, const char* tex
}
if(node->token->str.data == NULL) {
- myhtml_string_init(tree->mchar, tree->mchar_node_id, &node->token->str, (length + 2));
+ mycore_string_init(tree->mchar, tree->mchar_node_id, &node->token->str, (length + 2));
}
else {
if(node->token->str.size < length) {
mchar_async_free(tree->mchar, node->token->str.node_idx, node->token->str.data);
- myhtml_string_init(tree->mchar, tree->mchar_node_id, &node->token->str, length);
+ mycore_string_init(tree->mchar, tree->mchar_node_id, &node->token->str, length);
}
else
node->token->str.length = 0;
}
- if(encoding != MyHTML_ENCODING_UTF_8) {
- myhtml_string_append_with_convert_encoding(&node->token->str, text, length, encoding);
+ if(encoding != MyENCODING_UTF_8) {
+ myencoding_string_append(&node->token->str, text, length, encoding);
}
else {
- myhtml_string_append(&node->token->str, text, length);
+ mycore_string_append(&node->token->str, text, length);
}
node->token->raw_begin = 0;
@@ -588,12 +653,12 @@ myhtml_string_t * myhtml_node_text_set(myhtml_tree_node_t *node, const char* tex
return &node->token->str;
}
-myhtml_string_t * myhtml_node_text_set_with_charef(myhtml_tree_node_t *node, const char* text, size_t length, myhtml_encoding_t encoding)
+mycore_string_t * myhtml_node_text_set_with_charef(myhtml_tree_node_t *node, const char* text, size_t length, myencoding_t encoding)
{
if(node == NULL)
return NULL;
- if(encoding >= MyHTML_ENCODING_LAST_ENTRY)
+ if(encoding >= MyENCODING_LAST_ENTRY)
return NULL;
myhtml_tree_t* tree = node->tree;
@@ -606,12 +671,12 @@ myhtml_string_t * myhtml_node_text_set_with_charef(myhtml_tree_node_t *node, con
}
if(node->token->str.data == NULL) {
- myhtml_string_init(tree->mchar, tree->mchar_node_id, &node->token->str, (length + 2));
+ mycore_string_init(tree->mchar, tree->mchar_node_id, &node->token->str, (length + 2));
}
else {
if(node->token->str.size < length) {
mchar_async_free(tree->mchar, node->token->str.node_idx, node->token->str.data);
- myhtml_string_init(tree->mchar, tree->mchar_node_id, &node->token->str, length);
+ mycore_string_init(tree->mchar, tree->mchar_node_id, &node->token->str, length);
}
else
node->token->str.length = 0;
@@ -621,7 +686,7 @@ myhtml_string_t * myhtml_node_text_set_with_charef(myhtml_tree_node_t *node, con
myhtml_data_process_entry_clean(&proc_entry);
proc_entry.encoding = encoding;
- myhtml_encoding_result_clean(&proc_entry.res);
+ myencoding_result_clean(&proc_entry.res);
myhtml_data_process(&proc_entry, &node->token->str, text, length);
myhtml_data_process_end(&proc_entry, &node->token->str);
@@ -724,7 +789,7 @@ const char * myhtml_node_text(myhtml_tree_node_t *node, size_t *length)
return NULL;
}
-myhtml_string_t * myhtml_node_string(myhtml_tree_node_t *node)
+mycore_string_t * myhtml_node_string(myhtml_tree_node_t *node)
{
if(node && node->token)
return &node->token->str;
@@ -763,7 +828,7 @@ myhtml_tree_t * myhtml_node_tree(myhtml_tree_node_t *node)
return node->tree;
}
-myhtml_status_t myhtml_get_nodes_by_attribute_key_recursion(myhtml_tree_node_t* node, myhtml_collection_t* collection, const char* key, size_t key_len)
+mystatus_t myhtml_get_nodes_by_attribute_key_recursion(myhtml_tree_node_t* node, myhtml_collection_t* collection, const char* key, size_t key_len)
{
while(node)
{
@@ -771,14 +836,14 @@ myhtml_status_t myhtml_get_nodes_by_attribute_key_recursion(myhtml_tree_node_t*
myhtml_tree_attr_t* attr = node->token->attr_first;
while(attr) {
- myhtml_string_t* str_key = &attr->key;
+ mycore_string_t* str_key = &attr->key;
- if(str_key->length == key_len && myhtml_strncasecmp(str_key->data, key, key_len) == 0) {
+ if(str_key->length == key_len && mycore_strncasecmp(str_key->data, key, key_len) == 0) {
collection->list[ collection->length ] = node;
collection->length++;
if(collection->length >= collection->size) {
- myhtml_status_t status = myhtml_collection_check_size(collection, 1024, 0);
+ mystatus_t status = myhtml_collection_check_size(collection, 1024, 0);
if(status)
return status;
@@ -790,7 +855,7 @@ myhtml_status_t myhtml_get_nodes_by_attribute_key_recursion(myhtml_tree_node_t*
}
if(node->child) {
- myhtml_status_t status = myhtml_get_nodes_by_attribute_key_recursion(node->child, collection, key, key_len);
+ mystatus_t status = myhtml_get_nodes_by_attribute_key_recursion(node->child, collection, key, key_len);
if(status)
return status;
@@ -802,7 +867,7 @@ myhtml_status_t myhtml_get_nodes_by_attribute_key_recursion(myhtml_tree_node_t*
return MyHTML_STATUS_OK;
}
-myhtml_collection_t * myhtml_get_nodes_by_attribute_key(myhtml_tree_t *tree, myhtml_collection_t* collection, myhtml_tree_node_t* scope_node, const char* key, size_t key_len, myhtml_status_t* status)
+myhtml_collection_t * myhtml_get_nodes_by_attribute_key(myhtml_tree_t *tree, myhtml_collection_t* collection, myhtml_tree_node_t* scope_node, const char* key, size_t key_len, mystatus_t* status)
{
if(collection == NULL) {
collection = myhtml_collection_create(1024, status);
@@ -814,7 +879,7 @@ myhtml_collection_t * myhtml_get_nodes_by_attribute_key(myhtml_tree_t *tree, myh
if(scope_node == NULL)
scope_node = tree->node_html;
- myhtml_status_t rec_status = myhtml_get_nodes_by_attribute_key_recursion(scope_node, collection, key, key_len);
+ mystatus_t rec_status = myhtml_get_nodes_by_attribute_key_recursion(scope_node, collection, key, key_len);
if(rec_status && status)
*status = rec_status;
@@ -823,28 +888,28 @@ myhtml_collection_t * myhtml_get_nodes_by_attribute_key(myhtml_tree_t *tree, myh
}
/* find by attribute value; case-sensitivity */
-bool myhtml_get_nodes_by_attribute_value_recursion_eq(myhtml_string_t* str, const char* value, size_t value_len)
+bool myhtml_get_nodes_by_attribute_value_recursion_eq(mycore_string_t* str, const char* value, size_t value_len)
{
- return str->length == value_len && myhtml_strncmp(str->data, value, value_len) == 0;
+ return str->length == value_len && mycore_strncmp(str->data, value, value_len) == 0;
}
-bool myhtml_get_nodes_by_attribute_value_recursion_whitespace_separated(myhtml_string_t* str, const char* value, size_t value_len)
+bool myhtml_get_nodes_by_attribute_value_recursion_whitespace_separated(mycore_string_t* str, const char* value, size_t value_len)
{
if(str->length < value_len)
return false;
const char *data = str->data;
- if(myhtml_strncmp(data, value, value_len) == 0) {
- if((str->length > value_len && myhtml_utils_whithspace(data[value_len], ==, ||)) || str->length == value_len)
+ if(mycore_strncmp(data, value, value_len) == 0) {
+ if((str->length > value_len && mycore_utils_whithspace(data[value_len], ==, ||)) || str->length == value_len)
return true;
}
for(size_t i = 1; (str->length - i) >= value_len; i++)
{
- if(myhtml_utils_whithspace(data[(i - 1)], ==, ||)) {
- if(myhtml_strncmp(&data[i], value, value_len) == 0) {
- if((i > value_len && myhtml_utils_whithspace(data[(i + value_len)], ==, ||)) || (str->length - i) == value_len)
+ if(mycore_utils_whithspace(data[(i - 1)], ==, ||)) {
+ if(mycore_strncmp(&data[i], value, value_len) == 0) {
+ if((i > value_len && mycore_utils_whithspace(data[(i + value_len)], ==, ||)) || (str->length - i) == value_len)
return true;
}
}
@@ -853,23 +918,23 @@ bool myhtml_get_nodes_by_attribute_value_recursion_whitespace_separated(myhtml_s
return false;
}
-bool myhtml_get_nodes_by_attribute_value_recursion_begin(myhtml_string_t* str, const char* value, size_t value_len)
+bool myhtml_get_nodes_by_attribute_value_recursion_begin(mycore_string_t* str, const char* value, size_t value_len)
{
if(str->length < value_len)
return false;
- return myhtml_strncmp(str->data, value, value_len) == 0;
+ return mycore_strncmp(str->data, value, value_len) == 0;
}
-bool myhtml_get_nodes_by_attribute_value_recursion_end(myhtml_string_t* str, const char* value, size_t value_len)
+bool myhtml_get_nodes_by_attribute_value_recursion_end(mycore_string_t* str, const char* value, size_t value_len)
{
if(str->length < value_len)
return false;
- return myhtml_strncmp(&str->data[ (str->length - (str->length - value_len)) ], value, value_len) == 0;
+ return mycore_strncmp(&str->data[ (str->length - (str->length - value_len)) ], value, value_len) == 0;
}
-bool myhtml_get_nodes_by_attribute_value_recursion_contain(myhtml_string_t* str, const char* value, size_t value_len)
+bool myhtml_get_nodes_by_attribute_value_recursion_contain(mycore_string_t* str, const char* value, size_t value_len)
{
if(str->length < value_len)
return false;
@@ -878,7 +943,7 @@ bool myhtml_get_nodes_by_attribute_value_recursion_contain(myhtml_string_t* str,
for(size_t i = 0; (str->length - i) >= value_len; i++)
{
- if(myhtml_strncmp(&data[i], value, value_len) == 0) {
+ if(mycore_strncmp(&data[i], value, value_len) == 0) {
return true;
}
}
@@ -886,16 +951,16 @@ bool myhtml_get_nodes_by_attribute_value_recursion_contain(myhtml_string_t* str,
return false;
}
-bool myhtml_get_nodes_by_attribute_value_recursion_hyphen_separated(myhtml_string_t* str, const char* value, size_t value_len)
+bool myhtml_get_nodes_by_attribute_value_recursion_hyphen_separated(mycore_string_t* str, const char* value, size_t value_len)
{
const char *data = str->data;
if(str->length < value_len)
return false;
- else if(str->length == value_len && myhtml_strncmp(data, value, value_len) == 0) {
+ else if(str->length == value_len && mycore_strncmp(data, value, value_len) == 0) {
return true;
}
- else if(myhtml_strncmp(data, value, value_len) == 0 && data[value_len] == '-') {
+ else if(mycore_strncmp(data, value, value_len) == 0 && data[value_len] == '-') {
return true;
}
@@ -903,28 +968,28 @@ bool myhtml_get_nodes_by_attribute_value_recursion_hyphen_separated(myhtml_strin
}
/* find by attribute value; case-insensitive */
-bool myhtml_get_nodes_by_attribute_value_recursion_eq_i(myhtml_string_t* str, const char* value, size_t value_len)
+bool myhtml_get_nodes_by_attribute_value_recursion_eq_i(mycore_string_t* str, const char* value, size_t value_len)
{
- return str->length == value_len && myhtml_strncasecmp(str->data, value, value_len) == 0;
+ return str->length == value_len && mycore_strncasecmp(str->data, value, value_len) == 0;
}
-bool myhtml_get_nodes_by_attribute_value_recursion_whitespace_separated_i(myhtml_string_t* str, const char* value, size_t value_len)
+bool myhtml_get_nodes_by_attribute_value_recursion_whitespace_separated_i(mycore_string_t* str, const char* value, size_t value_len)
{
if(str->length < value_len)
return false;
const char *data = str->data;
- if(myhtml_strncasecmp(data, value, value_len) == 0) {
- if((str->length > value_len && myhtml_utils_whithspace(data[value_len], ==, ||)) || str->length == value_len)
+ if(mycore_strncasecmp(data, value, value_len) == 0) {
+ if((str->length > value_len && mycore_utils_whithspace(data[value_len], ==, ||)) || str->length == value_len)
return true;
}
for(size_t i = 1; (str->length - i) >= value_len; i++)
{
- if(myhtml_utils_whithspace(data[(i - 1)], ==, ||)) {
- if(myhtml_strncasecmp(&data[i], value, value_len) == 0) {
- if((i > value_len && myhtml_utils_whithspace(data[(i + value_len)], ==, ||)) || (str->length - i) == value_len)
+ if(mycore_utils_whithspace(data[(i - 1)], ==, ||)) {
+ if(mycore_strncasecmp(&data[i], value, value_len) == 0) {
+ if((i > value_len && mycore_utils_whithspace(data[(i + value_len)], ==, ||)) || (str->length - i) == value_len)
return true;
}
}
@@ -933,23 +998,23 @@ bool myhtml_get_nodes_by_attribute_value_recursion_whitespace_separated_i(myhtml
return false;
}
-bool myhtml_get_nodes_by_attribute_value_recursion_begin_i(myhtml_string_t* str, const char* value, size_t value_len)
+bool myhtml_get_nodes_by_attribute_value_recursion_begin_i(mycore_string_t* str, const char* value, size_t value_len)
{
if(str->length < value_len)
return false;
- return myhtml_strncasecmp(str->data, value, value_len) == 0;
+ return mycore_strncasecmp(str->data, value, value_len) == 0;
}
-bool myhtml_get_nodes_by_attribute_value_recursion_end_i(myhtml_string_t* str, const char* value, size_t value_len)
+bool myhtml_get_nodes_by_attribute_value_recursion_end_i(mycore_string_t* str, const char* value, size_t value_len)
{
if(str->length < value_len)
return false;
- return myhtml_strncasecmp(&str->data[ (str->length - (str->length - value_len)) ], value, value_len) == 0;
+ return mycore_strncasecmp(&str->data[ (str->length - (str->length - value_len)) ], value, value_len) == 0;
}
-bool myhtml_get_nodes_by_attribute_value_recursion_contain_i(myhtml_string_t* str, const char* value, size_t value_len)
+bool myhtml_get_nodes_by_attribute_value_recursion_contain_i(mycore_string_t* str, const char* value, size_t value_len)
{
if(str->length < value_len)
return false;
@@ -958,7 +1023,7 @@ bool myhtml_get_nodes_by_attribute_value_recursion_contain_i(myhtml_string_t* st
for(size_t i = 0; (str->length - i) >= value_len; i++)
{
- if(myhtml_strncasecmp(&data[i], value, value_len) == 0) {
+ if(mycore_strncasecmp(&data[i], value, value_len) == 0) {
return true;
}
}
@@ -966,16 +1031,16 @@ bool myhtml_get_nodes_by_attribute_value_recursion_contain_i(myhtml_string_t* st
return false;
}
-bool myhtml_get_nodes_by_attribute_value_recursion_hyphen_separated_i(myhtml_string_t* str, const char* value, size_t value_len)
+bool myhtml_get_nodes_by_attribute_value_recursion_hyphen_separated_i(mycore_string_t* str, const char* value, size_t value_len)
{
const char *data = str->data;
if(str->length < value_len)
return false;
- else if(str->length == value_len && myhtml_strncasecmp(data, value, value_len) == 0) {
+ else if(str->length == value_len && mycore_strncasecmp(data, value, value_len) == 0) {
return true;
}
- else if(myhtml_strncasecmp(data, value, value_len) == 0 && data[value_len] == '-') {
+ else if(mycore_strncasecmp(data, value, value_len) == 0 && data[value_len] == '-') {
return true;
}
@@ -983,7 +1048,7 @@ bool myhtml_get_nodes_by_attribute_value_recursion_hyphen_separated_i(myhtml_str
}
/* find by attribute value; basic functions */
-myhtml_status_t myhtml_get_nodes_by_attribute_value_recursion(myhtml_tree_node_t* node, myhtml_collection_t* collection,
+mystatus_t myhtml_get_nodes_by_attribute_value_recursion(myhtml_tree_node_t* node, myhtml_collection_t* collection,
myhtml_attribute_value_find_f func_eq,
const char* value, size_t value_len)
{
@@ -993,14 +1058,14 @@ myhtml_status_t myhtml_get_nodes_by_attribute_value_recursion(myhtml_tree_node_t
myhtml_tree_attr_t* attr = node->token->attr_first;
while(attr) {
- myhtml_string_t* str = &attr->value;
+ mycore_string_t* str = &attr->value;
if(func_eq(str, value, value_len)) {
collection->list[ collection->length ] = node;
collection->length++;
if(collection->length >= collection->size) {
- myhtml_status_t status = myhtml_collection_check_size(collection, 1024, 0);
+ mystatus_t status = myhtml_collection_check_size(collection, 1024, 0);
if(status)
return status;
@@ -1012,7 +1077,7 @@ myhtml_status_t myhtml_get_nodes_by_attribute_value_recursion(myhtml_tree_node_t
}
if(node->child) {
- myhtml_status_t status = myhtml_get_nodes_by_attribute_value_recursion(node->child, collection, func_eq, value, value_len);
+ mystatus_t status = myhtml_get_nodes_by_attribute_value_recursion(node->child, collection, func_eq, value, value_len);
if(status)
return status;
@@ -1024,7 +1089,7 @@ myhtml_status_t myhtml_get_nodes_by_attribute_value_recursion(myhtml_tree_node_t
return MyHTML_STATUS_OK;
}
-myhtml_status_t myhtml_get_nodes_by_attribute_value_recursion_by_key(myhtml_tree_node_t* node, myhtml_collection_t* collection,
+mystatus_t myhtml_get_nodes_by_attribute_value_recursion_by_key(myhtml_tree_node_t* node, myhtml_collection_t* collection,
myhtml_attribute_value_find_f func_eq,
const char* key, size_t key_len,
const char* value, size_t value_len)
@@ -1035,17 +1100,17 @@ myhtml_status_t myhtml_get_nodes_by_attribute_value_recursion_by_key(myhtml_tree
myhtml_tree_attr_t* attr = node->token->attr_first;
while(attr) {
- myhtml_string_t* str_key = &attr->key;
- myhtml_string_t* str = &attr->value;
+ mycore_string_t* str_key = &attr->key;
+ mycore_string_t* str = &attr->value;
- if(str_key->length == key_len && myhtml_strncasecmp(str_key->data, key, key_len) == 0)
+ if(str_key->length == key_len && mycore_strncasecmp(str_key->data, key, key_len) == 0)
{
if(func_eq(str, value, value_len)) {
collection->list[ collection->length ] = node;
collection->length++;
if(collection->length >= collection->size) {
- myhtml_status_t status = myhtml_collection_check_size(collection, 1024, 0);
+ mystatus_t status = myhtml_collection_check_size(collection, 1024, 0);
if(status)
return status;
@@ -1058,7 +1123,7 @@ myhtml_status_t myhtml_get_nodes_by_attribute_value_recursion_by_key(myhtml_tree
}
if(node->child) {
- myhtml_status_t status = myhtml_get_nodes_by_attribute_value_recursion_by_key(node->child, collection, func_eq,
+ mystatus_t status = myhtml_get_nodes_by_attribute_value_recursion_by_key(node->child, collection, func_eq,
key, key_len, value, value_len);
if(status)
@@ -1075,7 +1140,7 @@ myhtml_collection_t * _myhtml_get_nodes_by_attribute_value(myhtml_tree_t *tree,
myhtml_attribute_value_find_f func_eq,
const char* key, size_t key_len,
const char* value, size_t value_len,
- myhtml_status_t* status)
+ mystatus_t* status)
{
if(collection == NULL) {
collection = myhtml_collection_create(1024, status);
@@ -1087,7 +1152,7 @@ myhtml_collection_t * _myhtml_get_nodes_by_attribute_value(myhtml_tree_t *tree,
if(node == NULL)
node = tree->node_html;
- myhtml_status_t rec_status;
+ mystatus_t rec_status;
if(key && key_len)
rec_status = myhtml_get_nodes_by_attribute_value_recursion_by_key(node, collection, func_eq, key, key_len, value, value_len);
@@ -1104,7 +1169,7 @@ myhtml_collection_t * myhtml_get_nodes_by_attribute_value(myhtml_tree_t *tree, m
bool case_insensitive,
const char* key, size_t key_len,
const char* value, size_t value_len,
- myhtml_status_t* status)
+ mystatus_t* status)
{
if(case_insensitive) {
return _myhtml_get_nodes_by_attribute_value(tree, collection, node,
@@ -1121,7 +1186,7 @@ myhtml_collection_t * myhtml_get_nodes_by_attribute_value_whitespace_separated(m
bool case_insensitive,
const char* key, size_t key_len,
const char* value, size_t value_len,
- myhtml_status_t* status)
+ mystatus_t* status)
{
if(case_insensitive) {
return _myhtml_get_nodes_by_attribute_value(tree, collection, node,
@@ -1138,7 +1203,7 @@ myhtml_collection_t * myhtml_get_nodes_by_attribute_value_begin(myhtml_tree_t *t
bool case_insensitive,
const char* key, size_t key_len,
const char* value, size_t value_len,
- myhtml_status_t* status)
+ mystatus_t* status)
{
if(case_insensitive) {
return _myhtml_get_nodes_by_attribute_value(tree, collection, node,
@@ -1155,7 +1220,7 @@ myhtml_collection_t * myhtml_get_nodes_by_attribute_value_end(myhtml_tree_t *tre
bool case_insensitive,
const char* key, size_t key_len,
const char* value, size_t value_len,
- myhtml_status_t* status)
+ mystatus_t* status)
{
if(case_insensitive) {
return _myhtml_get_nodes_by_attribute_value(tree, collection, node,
@@ -1172,7 +1237,7 @@ myhtml_collection_t * myhtml_get_nodes_by_attribute_value_contain(myhtml_tree_t
bool case_insensitive,
const char* key, size_t key_len,
const char* value, size_t value_len,
- myhtml_status_t* status)
+ mystatus_t* status)
{
if(case_insensitive) {
return _myhtml_get_nodes_by_attribute_value(tree, collection, node,
@@ -1189,7 +1254,7 @@ myhtml_collection_t * myhtml_get_nodes_by_attribute_value_hyphen_separated(myhtm
bool case_insensitive,
const char* key, size_t key_len,
const char* value, size_t value_len,
- myhtml_status_t* status)
+ mystatus_t* status)
{
if(case_insensitive) {
return _myhtml_get_nodes_by_attribute_value(tree, collection, node,
@@ -1257,7 +1322,7 @@ const char * myhtml_attribute_value(myhtml_tree_attr_t *attr, size_t *length)
return NULL;
}
-myhtml_string_t * myhtml_attribute_key_string(myhtml_tree_attr_t* attr)
+mycore_string_t * myhtml_attribute_key_string(myhtml_tree_attr_t* attr)
{
if(attr)
return &attr->key;
@@ -1265,7 +1330,7 @@ myhtml_string_t * myhtml_attribute_key_string(myhtml_tree_attr_t* attr)
return NULL;
}
-myhtml_string_t * myhtml_attribute_value_string(myhtml_tree_attr_t* attr)
+mycore_string_t * myhtml_attribute_value_string(myhtml_tree_attr_t* attr)
{
if(attr)
return &attr->value;
@@ -1281,7 +1346,7 @@ myhtml_tree_attr_t * myhtml_attribute_by_key(myhtml_tree_node_t *node, const cha
return myhtml_token_attr_by_name(node->token, key, key_len);
}
-myhtml_tree_attr_t * myhtml_attribute_add(myhtml_tree_node_t *node, const char *key, size_t key_len, const char *value, size_t value_len, myhtml_encoding_t encoding)
+myhtml_tree_attr_t * myhtml_attribute_add(myhtml_tree_node_t *node, const char *key, size_t key_len, const char *value, size_t value_len, myencoding_t encoding)
{
if(node == NULL)
return NULL;
@@ -1353,9 +1418,9 @@ myhtml_position_t myhtml_attribute_value_raw_position(myhtml_tree_attr_t *attr)
/*
* Collections
*/
-myhtml_collection_t * myhtml_collection_create(size_t size, myhtml_status_t *status)
+myhtml_collection_t * myhtml_collection_create(size_t size, mystatus_t *status)
{
- myhtml_collection_t *collection = (myhtml_collection_t*)myhtml_malloc(sizeof(myhtml_collection_t));
+ myhtml_collection_t *collection = (myhtml_collection_t*)mycore_malloc(sizeof(myhtml_collection_t));
if(collection == NULL) {
if(status)
@@ -1366,10 +1431,10 @@ myhtml_collection_t * myhtml_collection_create(size_t size, myhtml_status_t *sta
collection->size = size;
collection->length = 0;
- collection->list = (myhtml_tree_node_t **)myhtml_malloc(sizeof(myhtml_tree_node_t*) * size);
+ collection->list = (myhtml_tree_node_t **)mycore_malloc(sizeof(myhtml_tree_node_t*) * size);
if(collection->list == NULL) {
- myhtml_free(collection);
+ mycore_free(collection);
if(status)
*status = MyHTML_STATUS_ERROR_MEMORY_ALLOCATION;
@@ -1383,12 +1448,12 @@ myhtml_collection_t * myhtml_collection_create(size_t size, myhtml_status_t *sta
return collection;
}
-myhtml_status_t myhtml_collection_check_size(myhtml_collection_t *collection, size_t need, size_t upto_length)
+mystatus_t myhtml_collection_check_size(myhtml_collection_t *collection, size_t need, size_t upto_length)
{
if((collection->length + need) >= collection->size)
{
size_t tmp_size = collection->length + need + upto_length + 1;
- myhtml_tree_node_t **tmp = (myhtml_tree_node_t **)myhtml_realloc(collection->list, sizeof(myhtml_tree_node_t*) * tmp_size);
+ myhtml_tree_node_t **tmp = (myhtml_tree_node_t **)mycore_realloc(collection->list, sizeof(myhtml_tree_node_t*) * tmp_size);
if(tmp) {
collection->size = tmp_size;
@@ -1413,15 +1478,15 @@ myhtml_collection_t * myhtml_collection_destroy(myhtml_collection_t *collection)
return NULL;
if(collection->list)
- myhtml_free(collection->list);
+ mycore_free(collection->list);
- myhtml_free(collection);
+ mycore_free(collection);
return NULL;
}
/* queue */
-myhtml_status_t myhtml_queue_add(myhtml_tree_t *tree, size_t begin, myhtml_token_node_t* token)
+mystatus_t myhtml_queue_add(myhtml_tree_t *tree, size_t begin, myhtml_token_node_t* token)
{
// TODO: need refactoring this code
// too many conditions
@@ -1437,50 +1502,48 @@ myhtml_status_t myhtml_queue_add(myhtml_tree_t *tree, size_t begin, myhtml_token
}
}
-#ifndef MyHTML_BUILD_WITHOUT_THREADS
+#ifndef MyCORE_BUILD_WITHOUT_THREADS
if(tree->flags & MyHTML_TREE_FLAGS_SINGLE_MODE) {
if(qnode && token) {
- qnode->token = token;
+ qnode->args = token;
myhtml_parser_worker(0, qnode);
myhtml_parser_stream(0, qnode);
}
- tree->current_qnode = mythread_queue_node_malloc_limit(tree->myhtml->thread, tree->queue, 4, NULL);
+ tree->current_qnode = mythread_queue_node_malloc_limit(tree->myhtml->thread_stream, tree->queue, 4, NULL);
}
else {
if(qnode)
- qnode->token = token;
+ qnode->args = token;
- tree->current_qnode = mythread_queue_node_malloc_round(tree->myhtml->thread, tree->queue_entry, NULL);
+ tree->current_qnode = mythread_queue_node_malloc_round(tree->myhtml->thread_stream, tree->queue_entry, NULL);
}
#else
if(qnode && token) {
- qnode->token = token;
+ qnode->args = token;
myhtml_parser_worker(0, qnode);
myhtml_parser_stream(0, qnode);
}
- tree->current_qnode = mythread_queue_node_malloc_limit(tree->myhtml->thread, tree->queue, 4, NULL);
+ tree->current_qnode = mythread_queue_node_malloc_limit(tree->myhtml->thread_stream, tree->queue, 4, NULL);
-#endif /* MyHTML_BUILD_WITHOUT_THREADS */
+#endif /* MyCORE_BUILD_WITHOUT_THREADS */
- if(tree->current_qnode == NULL) {
+ if(tree->current_qnode == NULL)
return MyHTML_STATUS_ERROR_MEMORY_ALLOCATION;
- }
- tree->current_qnode->tree = tree;
+ tree->current_qnode->context = tree;
tree->current_qnode->prev = qnode;
if(qnode && token)
myhtml_tokenizer_calc_current_namespace(tree, token);
tree->current_token_node = myhtml_token_node_create(tree->token, tree->token->mcasync_token_id);
-
if(tree->current_token_node == NULL)
return MyHTML_STATUS_ERROR_MEMORY_ALLOCATION;