From f38068f04e9514269161a884df278b0af3e5c2c3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ji=C5=99=C3=AD=20Techet?= Date: Thu, 10 Dec 2015 16:50:32 +0100 Subject: [PATCH] Skip typedef resolution in namespace search if not needed When we already have a struct-like type in namespace search, we don't need any extra resolution - we already have the right type. Skip the whole typedef resolution in this case. --- tagmanager/src/tm_workspace.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tagmanager/src/tm_workspace.c b/tagmanager/src/tm_workspace.c index 5da939f51..a744d8c4a 100644 --- a/tagmanager/src/tm_workspace.c +++ b/tagmanager/src/tm_workspace.c @@ -980,7 +980,13 @@ find_scope_members_all(const GPtrArray *tags, const GPtrArray *searched_array, l TMTagType types = TM_TYPE_WITH_MEMBERS | tm_tag_typedef_t; if (tag->type & types) /* type: namespace search */ - member_tags = find_scope_members(searched_array, tag->name, tag->file, lang, TRUE); + { + if (tag->type & tm_tag_typedef_t) + member_tags = find_scope_members(searched_array, tag->name, tag->file, lang, TRUE); + else + member_tags = find_scope_members_tags(tag->file ? tag->file->tags_array : searched_array, + tag, TRUE); + } else if (tag->var_type) /* variable: scope search */ { /* The question now is whether we should use member tags (such as -- 2.11.4.GIT