[0.1.x] fixed : VFN_TABLE for virtual base class

git-svn-id: https://pykd.svn.codeplex.com/svn@76515 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
SND\kernelnet_cp 2012-05-22 09:00:05 +00:00 committed by Mikhail I. Izmestev
parent d1a30dc6b0
commit f05e0e2658

View File

@ -614,13 +614,22 @@ void UdtTypeInfo::getFields(
}
else
if ( symTag == SymTagVTable )
{
if ( !baseVirtualSym )
{
TypeInfoPtr ti = TypeInfo::getTypeInfo( rootSym, childSym );
m_fields.push_back( std::make_pair( "__VFN_table", ti ) );
if ( baseVirtualSym )
{
ti->setVirtualBase(
TypeInfo::getTypeInfo(baseVirtualSym),
virtualBasePtr,
virtualDispIndex,
virtualDispSize );
}
ti->setOffset( startOffset + childSym->getOffset() );
m_fields.push_back( std::make_pair( "__VFN_table", ti ) );
}
}
}