From 4a3af3e67fc6b374a4d629fcff9f7586849c7c9d Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 6 Sep 2017 16:35:04 +0100 Subject: [PATCH] Let TypeConversion function handle checking input object type * This means e.g. when we're converting a `bytes` we don't bail when it isn't a list. --- qrenderdoc/Code/pyrenderdoc/pyconversion.i | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/qrenderdoc/Code/pyrenderdoc/pyconversion.i b/qrenderdoc/Code/pyrenderdoc/pyconversion.i index ef45a6c81..45df55c2f 100644 --- a/qrenderdoc/Code/pyrenderdoc/pyconversion.i +++ b/qrenderdoc/Code/pyrenderdoc/pyconversion.i @@ -79,11 +79,6 @@ SIMPLE_TYPEMAPS_VARIANT(SimpleType, SimpleType &) %typemap(in, fragment="pyconvert") ContainerType (unsigned char tempmem[32]) { static_assert(sizeof(tempmem) >= sizeof(std::remove_pointer::type), "not enough temp space for $1_basetype"); - if(!PyList_Check($input)) - { - SWIG_exception_fail(SWIG_TypeError, "in method '$symname' list expected for argument $argnum of type '$1_basetype'"); - } - tempalloc($1, tempmem); int failIdx = 0; @@ -91,8 +86,15 @@ SIMPLE_TYPEMAPS_VARIANT(SimpleType, SimpleType &) if(!SWIG_IsOK(res)) { - snprintf(convert_error, sizeof(convert_error)-1, "in method '$symname' argument $argnum of type '$1_basetype', decoding element %d", failIdx); - SWIG_exception_fail(SWIG_ArgError(res), convert_error); + if(res == SWIG_TypeError) + { + SWIG_exception_fail(SWIG_ArgError(res), "in method '$symname' argument $argnum of type '$1_basetype'"); + } + else + { + snprintf(convert_error, sizeof(convert_error)-1, "in method '$symname' argument $argnum of type '$1_basetype', decoding element %d", failIdx); + SWIG_exception_fail(SWIG_ArgError(res), convert_error); + } } }