mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-29 20:03:33 +08:00
[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:
parent
d1a30dc6b0
commit
f05e0e2658
@ -615,12 +615,21 @@ void UdtTypeInfo::getFields(
|
|||||||
else
|
else
|
||||||
if ( symTag == SymTagVTable )
|
if ( symTag == SymTagVTable )
|
||||||
{
|
{
|
||||||
if ( !baseVirtualSym )
|
TypeInfoPtr ti = TypeInfo::getTypeInfo( rootSym, childSym );
|
||||||
{
|
|
||||||
TypeInfoPtr ti = TypeInfo::getTypeInfo( rootSym, childSym );
|
if ( baseVirtualSym )
|
||||||
|
{
|
||||||
|
ti->setVirtualBase(
|
||||||
|
TypeInfo::getTypeInfo(baseVirtualSym),
|
||||||
|
virtualBasePtr,
|
||||||
|
virtualDispIndex,
|
||||||
|
virtualDispSize );
|
||||||
|
|
||||||
m_fields.push_back( std::make_pair( "__VFN_table", ti ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ti->setOffset( startOffset + childSym->getOffset() );
|
||||||
|
|
||||||
|
m_fields.push_back( std::make_pair( "__VFN_table", ti ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user