1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +02:00

Mixin name uniquing, 'this' for mixins

This commit is contained in:
Brian Fiete 2020-06-20 17:25:37 -07:00
parent 1a17780847
commit 4d53f185d8
8 changed files with 180 additions and 93 deletions

View file

@ -4325,6 +4325,27 @@ void COFF::FixupInlinee(DbgSubprogram* dbgSubprogram, uint32 ipiTag)
lfMFuncId* funcData = (lfMFuncId*)dataStart;
CvParseMethod(NULL, NULL, funcData->type, false, dbgSubprogram);
dbgSubprogram->mName = (const char*)funcData->name;
if (dbgSubprogram->mName != NULL)
{
for (const char* cPtr = dbgSubprogram->mName + 1; true; cPtr++)
{
char c = *cPtr;
if (c == 0)
break;
// For removing the mangled name from the mixins
if (c == '?')
{
int nameLen = cPtr - dbgSubprogram->mName;
char* dupStr = (char*)mAlloc.AllocBytes(nameLen + 1);
memcpy(dupStr, dbgSubprogram->mName, nameLen);
dupStr[nameLen] = 0;
dbgSubprogram->mName = dupStr;
break;
}
}
}
FixSubprogramName(dbgSubprogram);
dbgSubprogram->mParentType = CvGetType(funcData->parentType);