From ff151ba7b77ec509fd48b2400686a9130c385830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C3=ABl=20Kooi?= <48814281+RA-Kooi@users.noreply.github.com> Date: Tue, 13 Sep 2022 09:39:50 +0200 Subject: [PATCH] Fixup all global name collissions --- DwarfOne2C/Parsing/DumpParser.cs | 43 ++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/DwarfOne2C/Parsing/DumpParser.cs b/DwarfOne2C/Parsing/DumpParser.cs index 5eeb6db..a0bfa21 100644 --- a/DwarfOne2C/Parsing/DumpParser.cs +++ b/DwarfOne2C/Parsing/DumpParser.cs @@ -242,27 +242,32 @@ void Recurse(Tag parent, int depth) // Discriminate global symbols with the same name List sameNames = new(); - for(Tag tag = allTags[IDToIndex[allTags[0].firstChild]]; - tag.sibling != Tag.NoSibling; - tag = allTags[IDToIndex[tag.sibling]]) + for(Tag CU = allTags[0]; + CU.sibling != Tag.NoSibling; + CU = allTags[IDToIndex[CU.sibling]]) { - switch(tag.tagType) + for(Tag tag = allTags[IDToIndex[CU.firstChild]]; + tag.sibling != Tag.NoSibling; + tag = allTags[IDToIndex[tag.sibling]]) { - case TagType.CULocalFunc: - case TagType.Class: - case TagType.Enum: - case TagType.GlobalVar: - case TagType.GlobalFunc: - case TagType.Struct: - case TagType.LocalVar: - { - if(sameNames.Contains(tag.name)) - tag.name = $"{tag.name}_0x{tag.ID:X}"; - else - sameNames.Add(tag.name); - } break; - default: - continue; + switch(tag.tagType) + { + case TagType.CULocalFunc: + case TagType.Class: + case TagType.Enum: + case TagType.GlobalVar: + case TagType.GlobalFunc: + case TagType.Struct: + case TagType.LocalVar: + { + if(sameNames.Contains(tag.name)) + tag.name = $"{tag.name}_0x{tag.ID:X}"; + else + sameNames.Add(tag.name); + } break; + default: + continue; + } } } }