Branch Coverage

third_party/modest/source/mycore/utils/mchar_async.c
Criterion Covered Total %
branch 107 224 47.7


line true false branch
30 0 219 if(char_size < 4096)
41 0 219 if(mchar_async->chunks == NULL)
47 0 219 if(mchar_async->chunks[0] == NULL) {
55 0 219 if(status) {
66 0 219 if(mchar_async->nodes == NULL)
73 0 219 if(mchar_async->nodes_cache == NULL)
79 0 219 if(mchar_async->mcsync == NULL)
82 0 219 if((status = mcsync_init(mchar_async->mcsync)))
95 0 219 for (size_t node_idx = 0; node_idx < mchar_async->nodes_length; node_idx++)
102 0 0 if(node->chunk == NULL)
113 0 218 if(mchar_async == NULL)
116 218 0 if(mchar_async->nodes)
118 442 218 for (size_t node_idx = 0; node_idx < mchar_async->nodes_length; node_idx++)
128 218 0 if(mchar_async->nodes_cache) {
132 218 0 if(mchar_async->chunks)
134 218 218 for (size_t pos_idx = 0; pos_idx < mchar_async->chunks_pos_length; pos_idx++) {
135 218 0 if(mchar_async->chunks[pos_idx])
137 27904 218 for (size_t idx = 0; idx < mchar_async->chunks_size; idx++) {
138 443 27461 if(mchar_async->chunks[pos_idx][idx].begin)
156 218 0 if(destroy_self)
166 0 445 if(chunk == NULL)
169 0 445 if(chunk->begin) {
170 0 0 if(length > chunk->size) {
180 1 444 if(length > chunk->size)
191 0 445 if(mchar_async_cache_has_nodes(mchar_async->chunk_cache))
195 0 0 if(index)
201 0 445 if(mchar_async->chunks_length >= mchar_async->chunks_size)
206 0 0 if(mchar_async->chunks_pos_length >= mchar_async->chunks_pos_size)
212 0 0 if(tmp_pos) {
222 0 0 if(mchar_async->chunks[current_idx] == NULL) {
225 0 0 if(tmp)
239 0 445 if(chunk->begin == NULL)
256 0 444 if(mcsync_lock(mchar_async->mcsync)) {
257 0 0 if(status)
265 0 444 if(mchar_async->nodes_cache_length) {
271 0 444 if(mchar_async->nodes_length >= mchar_async->nodes_size) {
272 0 0 if(status)
285 0 444 if(mchar_async_cache_init(&node->cache)) {
286 0 0 if(status)
295 0 444 if(node->chunk == NULL) {
296 0 0 if(status)
308 444 0 if(status)
316 0 441 if(mchar_async->nodes_length <= node_idx)
321 0 441 while (node->chunk->prev)
332 0 144 if(mchar_async->nodes_length <= node_idx) {
340 0 144 while (chunk->next)
343 145 144 while (chunk)
349 144 0 if(node->cache.nodes)
354 0 144 if(mchar_async->nodes_cache_length >= mchar_async->nodes_cache_size) {
359 0 0 if(tmp) {
375 0 1 while (chunk) {
376 0 0 if(chunk->size >= size)
387 0 1 if(base->next == chunk)
390 0 1 if(chunk->prev)
393 0 1 if(chunk->next)
396 0 1 if(base->next)
407 0 1751 if(size == 0)
413 174 1577 if(mchar_async_cache_has_nodes(node->cache)) {
416 162 12 if(index) {
423 1 1588 if(new_size > chunk->size)
425 1 0 if((chunk->length + sizeof(size_t)) < chunk->size)
429 1 0 if(calc_size) {
441 0 1 if(chunk)
444 1 0 if((size + sizeof(size_t)) > mchar_async->origin_size)
464 0 1405 if(data == NULL)
470 1313 92 if(curr_size >= new_size)
475 92 0 if(node->chunk->length >= curr_size &&
90 2 if(node->chunk->length >= curr_size &&
480 90 0 if(next_size <= node->chunk->size) {
500 2 0 if(tmp) {
511 0 0 if(data == NULL)
523 0 0 if((crop_len + 4) > sizeof(size_t)) {
536 0 0 if(data == NULL)
552 0 0 if(data == NULL)
560 490 0 if(entry)
572 0 663 if(cache->nodes == NULL)
584 0 663 if(cache->index == NULL) {
599 660 0 if(cache->nodes) {
609 0 804 if(cache == NULL)
612 660 144 if(cache->nodes)
615 660 144 if(cache->index)
618 0 804 if(self_destroy) {
628 159 479 if(cache->index_length) {
635 0 479 if(cache->nodes_length >= cache->nodes_size) {
640 0 0 if(tmp)
652 316 12 while (idx)
654 162 154 if(size <= list[idx].size)
656 1 162 while( list[ list[idx].right ].size == size )
661 54 108 if(parent) {
662 0 54 if(list[parent].left == idx)
664 0 0 if(list[idx].right) {
665 0 0 if(list[idx].left) {
668 0 0 while( list[last_left].left )
671 0 0 if(last_left) {
689 0 54 if(list[idx].left) {
690 0 0 if(list[idx].right) {
693 0 0 while( list[last_right].right )
696 0 0 if(last_right) {
715 0 108 if(list[idx].left) {
716 0 0 if(list[idx].right) {
719 0 0 while( list[last_right].right )
722 0 0 if(last_right) {
743 0 162 if(cache->index_length >= cache->index_size)
748 0 0 if(tmp) {
772 409 229 if(cache->nodes_root == 0) {
791 433 0 while(idx)
793 51 382 if(size == list[idx].size)
795 27 24 if(list[idx].right) {
812 119 263 else if(size < list[idx].size)
816 53 66 if(parent) {
817 0 53 if(list[parent].left == idx)
840 204 59 if(list[idx].right)