From 621138b107a80836567390546d22a56581a4c063 Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" Date: Wed, 27 Jul 2011 11:36:11 +0000 Subject: [PATCH] [pykd] updated: typedVar git-svn-id: https://pykd.svn.codeplex.com/svn@68332 9b283d60-5439-405e-af05-b73fd8c4d996 --- pykd/dbgtype.cpp | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/pykd/dbgtype.cpp b/pykd/dbgtype.cpp index 7cc6bc9..76def57 100644 --- a/pykd/dbgtype.cpp +++ b/pykd/dbgtype.cpp @@ -389,15 +389,8 @@ valueLoader( void* address, size_t size ) if ( size == sizeof(valType) ) { valType v = *(valType*)address; - //return boost::python::long_( (unsigned __int64)v ); return boost::python::object( v ); - - - //if ( loadMemory( address, &v, sizeof(v) ) ) - //{ - // return boost::python::long_( (unsigned __int64)v ); - //} } else { @@ -407,8 +400,6 @@ valueLoader( void* address, size_t size ) { valType v = *( (valType*)address + i ); arr.append( v ); - - //arr[i] = boost::python::long_( (unsigned __int64)v ); } return arr; @@ -417,6 +408,33 @@ valueLoader( void* address, size_t size ) throw TypeException(); } +template<> +boost::python::object +valueLoader( void* address, size_t size ) +{ + if ( size == sizeof(char) ) + { + int v = *(char*)address; + + return boost::python::object( v ); + } + else + { + boost::python::list arr; + + for ( unsigned int i = 0; i < size / sizeof(char); ++i ) + { + int v = *( (char*)address + i ); + arr.append( v ); + } + + return arr; + } + + throw TypeException(); +} + + template<> boost::python::object valueLoader( void* address, size_t size )