crypto2011/IDR

Bug for Class Field

csitGenny opened this issue · 0 comments

Sometimes more and more dots appear in front of the field name of a class, for example “0004 ....PropList:TList”.
This bug comes from TFMain_11011981::GetField function, and is modified as follows:

if (recN->vmtInfo->fields->Count == 1)
{
fInfo = (PFIELDINFO)recN->vmtInfo->fields->Items[0];
if (Offset == fInfo->Offset)
{
if (prefix != "") //Add by ZGL
fInfo->Name = prefix + "." + fInfo->Name;
return fInfo;
}
return 0;
}

and

if (kind == ikClass || kind == ikRecord)
{
prefix = fInfo1->Name;
fInfo = GetField(fInfo1->Type, Offset - Ofs1, vmt, vmtAdr, prefix);
if (fInfo)
{
fInfo->Offset = Offset;
if (prefix != "") //Add by ZGL
fInfo->Name = prefix + "." + fInfo->Name;
return fInfo;
}
return 0;
}