myhtml_t* myhtml_destroy(myhtml_t* myhtml) { if(myhtml == NULL) return NULL; myhtml_destroy_marker(myhtml); #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_stream = mythread_destroy(myhtml->thread_stream, mythread_callback_quit, NULL, true); 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) mycore_free(myhtml->insertion_func); mycore_free(myhtml); return NULL; }
myhtml_t* myhtml_destroy(myhtml_t* myhtml) { if(myhtml == NULL) return NULL; myhtml_destroy_marker(myhtml); mythread_destroy(myhtml->thread, true); myhtml_tokenizer_state_destroy(myhtml); if(myhtml->insertion_func) myhtml_free(myhtml->insertion_func); myhtml_free(myhtml); return NULL; }
myhtml_t* myhtml_destroy(myhtml_t* myhtml) { if(myhtml == NULL) return NULL; myhtml_destroy_marker(myhtml); mythread_destroy(myhtml->thread, true); myhtml_tokenizer_state_destroy(myhtml); myhtml->async_incoming_buf = mcobject_async_destroy(myhtml->async_incoming_buf, true); myhtml->tag_index = mcobject_async_destroy(myhtml->tag_index, true); myhtml->mchar = mchar_async_destroy(myhtml->mchar, true); if(myhtml->insertion_func) free(myhtml->insertion_func); free(myhtml); return NULL; }