[0.3.x] fixed : exception raised when comparing typeInfo with None

git-svn-id: https://pykd.svn.codeplex.com/svn@86926 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
SND\kernelnet_cp 2013-12-23 08:49:06 +00:00 committed by Mikhail I. Izmestev
parent 6a5d49c132
commit 12e42cf4ce
2 changed files with 34 additions and 9 deletions

View File

@ -1,6 +1,7 @@
#pragma once
#include "kdlib/variant.h"
#include "kdlib/exceptions.h"
namespace pykd {
@ -87,13 +88,27 @@ public:
public:
static python::object eq( kdlib::NumBehavior& var, python::object& obj ) {
static python::object eq( kdlib::NumBehavior& var, python::object& obj )
{
try {
return convertToPython(var) == obj;
}
catch( kdlib::DbgException& )
{}
static python::object ne( kdlib::NumBehavior& var, python::object& obj ) {
return python::object(false);
}
static python::object ne( kdlib::NumBehavior& var, python::object& obj )
{
try {
return convertToPython(var) != obj;
}
catch( kdlib::DbgException& )
{}
return python::object(true);
}
static python::object lt( kdlib::NumBehavior& var, python::object& obj ) {
return convertToPython(var) < obj;
@ -184,8 +199,14 @@ public:
}
static python::object nonzero(kdlib::NumBehavior& var) {
try {
return convertToPython(var) != 0;
}
catch( kdlib::DbgException& )
{}
return python::object(true);
}
static python::object long_(kdlib::NumBehavior& var ) {
return convertToPython(var);

View File

@ -241,11 +241,15 @@ class TypeInfoTest( unittest.TestCase ):
self.assertTrue( "UInt8B[10]", ti.name() )
def testCompareWihNone(self):
ti = None
if ti == None:
ti = pykd.typeInfo("UInt8B")
if ti == None:
pass
if ti != None:
pass
if not ti:
pass
if ti:
pass
def testFunction(self):
functype = target.module.typedVar( "CdeclFuncPtr" ).type().deref()