[Github-comments] [geany/geany] New tagmanager query module (#1187)

Thomas Martitz notifications at xxxxx
Tue Aug 23 22:04:32 UTC 2016


> +	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 or view it on GitHub:
https://github.com/geany/geany/pull/1187/files/386006313a0b78c614bd1ac522ac121e093df58d#r75960340
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20160823/df3375a1/attachment.html>


More information about the Github-comments mailing list