[~] m_offset moved into typeClass instance

git-svn-id: https://pykd.svn.codeplex.com/svn@62029 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
SND\EreTIk_cp 2011-02-28 09:14:14 +00:00
parent 004a4067ea
commit 1b87344acb
2 changed files with 14 additions and 18 deletions

View File

@ -261,7 +261,6 @@ TypeInfo::TypeInfo( const std::string &moduleName, const std::string &typeName
m_size = 0;
m_baseType = false;
m_pointer = false;
m_offset = 0;
try {
if ( typeName.find("*") < typeName.size() )
@ -338,10 +337,9 @@ TypeInfo::TypeInfo( const std::string &moduleName, const std::string &typeName
boost::python::object
TypeInfo::build( ULONG offset /* = 0 */ ) const
{
boost::shared_ptr<typeClass> ptr( new typeClass( *this ) );
boost::shared_ptr<typeClass> ptr( new typeClass( *this, offset ) );
boost::python::object var( ptr );
ptr->setPyObj( var );
ptr->getTypeInfo().setOffset(offset);
TypeFieldList::const_iterator field = m_fields.begin();
for ( field = m_fields.begin(); field != m_fields.end(); ++field )
@ -383,10 +381,9 @@ TypeInfo::load( ULONG64 addr, ULONG offset /* = 0 */ ) const
if ( m_baseType )
return loadBaseType( addr );
boost::shared_ptr<typedVarClass> ptr( new typedVarClass( *this, addr ) );
boost::shared_ptr<typedVarClass> ptr( new typedVarClass( *this, offset, addr ) );
boost::python::object var( ptr );
ptr->setPyObj( var );
ptr->getTypeInfo().setOffset(offset);
TypeFieldList::const_iterator field = m_fields.begin();
for ( field = m_fields.begin(); field != m_fields.end(); ++field )

View File

@ -85,8 +85,7 @@ public:
TypeInfo() :
m_size( 0 ),
m_baseType( false ),
m_pointer( false ),
m_offset(0)
m_pointer( false )
{}
TypeInfo( const std::string &moduleName, const std::string &typeName );
@ -128,10 +127,6 @@ public:
return m_pointer;
}
// field offset getter/setter
void setOffset(ULONG offset) { m_offset = offset; }
ULONG getOffset() const { return m_offset; }
private:
static TypeInfoMap g_typeInfoCache;
@ -154,7 +149,6 @@ private:
TypeFieldList m_fields;
std::string m_typeName;
ULONG m_size;
ULONG m_offset;
};
/////////////////////////////////////////////////////////////////////////////////
@ -164,12 +158,15 @@ class typeClass
public:
typeClass()
: m_offset(0)
{
}
typeClass(
const TypeInfo &typeInfo
const TypeInfo &typeInfo,
ULONG offset
) : m_typeInfo(typeInfo)
, m_offset(offset)
{
}
@ -220,10 +217,12 @@ public:
// no data - nothing print
}
ULONG getOffset() const { return m_typeInfo.getOffset(); }
// field offset getter/setter
ULONG getOffset() const { return m_offset; }
private:
TypeInfo m_typeInfo;
ULONG m_offset;
boost::python::object m_pyobj;
};
@ -233,11 +232,11 @@ class typedVarClass : public typeClass {
public:
typedVarClass()
typedVarClass() : m_addr(0)
{}
typedVarClass( const TypeInfo &typeInfo, ULONG64 addr) :
typeClass( typeInfo ),
typedVarClass( const TypeInfo &typeInfo, ULONG offset, ULONG64 addr) :
typeClass( typeInfo, offset ),
m_addr( addr )
{}