X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9416aa89ca06d0fb20b1002e026d2c7ac7aa6a17..7ea515abfb0211078d9ffcd4420ef0b53f3fcabe:/wxPython/src/libpy.c diff --git a/wxPython/src/libpy.c b/wxPython/src/libpy.c index 450467bd13..6fe6c00bfb 100644 --- a/wxPython/src/libpy.c +++ b/wxPython/src/libpy.c @@ -5,11 +5,11 @@ * Contains variable linking and pointer type-checking code. ************************************************************************/ +#include "Python.h" + #include #include -#include "Python.h" - #ifdef __cplusplus extern "C" { #endif @@ -317,11 +317,11 @@ SWIG_GetPtr(char *c, void **ptr, char *t) if (*c != '_') { *ptr = (void *) 0; if (strcmp(c,"NULL") == 0) return (char *) 0; - else c; + else return c; } c++; /* Extract hex value from pointer */ - while (d = *c) { + while ((d = *c) != 0) { if ((d >= '0') && (d <= '9')) p = (p << 4) + (d - '0'); else if ((d >= 'a') && (d <= 'f')) @@ -402,6 +402,7 @@ SWIGSTATICRUNTIME(char *) SWIG_GetPtrObj(PyObject *obj, void **ptr, char *type) { PyObject *sobj = obj; char *str; + if (!PyString_Check(obj)) { if (!PyInstance_Check(obj) || !(sobj = PyObject_GetAttrString(obj,"this"))) return ""; @@ -409,6 +410,8 @@ SWIG_GetPtrObj(PyObject *obj, void **ptr, char *type) { Py_DECREF(sobj); } str = PyString_AsString(sobj); + if (str == NULL) + return ""; return SWIG_GetPtr(str,ptr,type); }