> + GPtrArray *ret; > + > + sort_options.sort_attrs = NULL; > + /* tags_array isn not needed by tm_tag_compare(), but for tm_search_cmp() */ > + sort_options.tags_array = NULL; > + sort_options.first = TRUE; > + > + foreach_ptr_array(s, i, q->names) > + { > + TMTag **ptag; > + sort_options.cmp_len = s->len; > + if (q->data_sources & TM_QUERY_SOURCE_GLOBAL_TAGS) > + { > + tags = tm_tags_find(q->workspace->global_tags, s->str, s->len, &ntags); > + foreach_c_array(ptag, tags, ntags) > + g_queue_insert_sorted(&res, *ptag, tag_compare_ptr, &sort_options);
Okay. I was thinking sorting on insertion with a doubly linked list would be quicker (since the insertion point can be found with bisection, and inserting is then O(1)) but I don't feel strong enough to make serious measurements, so I'll just go back and post-sort.
The array still has the sligt disadvantage that it must be resized when adding items exeeding the lnght, but his is ot a ptoblem here.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.