Protect Python accessor wrapper from C++ thrown exceptions.
This commit is contained in:
parent
a665a1bcfc
commit
93cc7cd178
|
@ -337,8 +337,10 @@ extern "C" {
|
||||||
static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self, PyObject* args ) \
|
static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self, PyObject* args ) \
|
||||||
{ \
|
{ \
|
||||||
GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \
|
GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \
|
||||||
|
HTRY \
|
||||||
if (cobject->FUNC_NAME()) \
|
if (cobject->FUNC_NAME()) \
|
||||||
Py_RETURN_TRUE; \
|
Py_RETURN_TRUE; \
|
||||||
|
HCATCH \
|
||||||
Py_RETURN_FALSE; \
|
Py_RETURN_FALSE; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -383,7 +385,11 @@ extern "C" {
|
||||||
static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self, PyObject* args ) \
|
static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self, PyObject* args ) \
|
||||||
{ \
|
{ \
|
||||||
GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \
|
GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \
|
||||||
return Py_BuildValue ("I",cobject->FUNC_NAME()); \
|
PyObject* rvalue = NULL; \
|
||||||
|
HTRY \
|
||||||
|
rvalue = Py_BuildValue ("I",cobject->FUNC_NAME()); \
|
||||||
|
HCATCH \
|
||||||
|
return rvalue; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -394,7 +400,11 @@ extern "C" {
|
||||||
static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self, PyObject* args ) \
|
static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self, PyObject* args ) \
|
||||||
{ \
|
{ \
|
||||||
GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \
|
GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \
|
||||||
return Isobar::PyDbU_FromLong(cobject->FUNC_NAME()); \
|
PyObject* rvalue = NULL; \
|
||||||
|
HTRY \
|
||||||
|
rvalue = Isobar::PyDbU_FromLong(cobject->FUNC_NAME()); \
|
||||||
|
HCATCH \
|
||||||
|
return rvalue; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -405,7 +415,11 @@ extern "C" {
|
||||||
static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self, PyObject* args ) \
|
static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self, PyObject* args ) \
|
||||||
{ \
|
{ \
|
||||||
GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \
|
GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \
|
||||||
return Py_BuildValue ("d",cobject->FUNC_NAME()); \
|
PyObject* rvalue = NULL; \
|
||||||
|
HTRY \
|
||||||
|
rvalue = Py_BuildValue ("d",cobject->FUNC_NAME()); \
|
||||||
|
HCATCH \
|
||||||
|
return rvalue; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -416,7 +430,11 @@ extern "C" {
|
||||||
static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self ) \
|
static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self ) \
|
||||||
{ \
|
{ \
|
||||||
GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \
|
GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \
|
||||||
return Py_BuildValue ("s",cobject->FUNC_NAME().c_str()); \
|
PyObject* rvalue = NULL; \
|
||||||
|
HTRY \
|
||||||
|
rvalue = Py_BuildValue ("s",cobject->FUNC_NAME().c_str()); \
|
||||||
|
HCATCH \
|
||||||
|
return rvalue; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -427,14 +445,18 @@ extern "C" {
|
||||||
static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self ) \
|
static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self ) \
|
||||||
{ \
|
{ \
|
||||||
GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \
|
GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \
|
||||||
return Py_BuildValue ("s",getString(cobject->FUNC_NAME()).c_str()); \
|
PyObject* rvalue = NULL; \
|
||||||
|
HTRY \
|
||||||
|
rvalue = Py_BuildValue ("s",getString(cobject->FUNC_NAME()).c_str()); \
|
||||||
|
HCATCH \
|
||||||
|
return rvalue; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# define accessorLayerFromVoid(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \
|
# define accessorLayerFromVoid(FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \
|
||||||
static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self ) \
|
static PyObject* PY_SELF_TYPE##_##FUNC_NAME ( PY_SELF_TYPE* self ) \
|
||||||
{ \
|
{ \
|
||||||
cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \
|
cdebug_log(20,0) << #PY_SELF_TYPE "_" #FUNC_NAME "()" << endl; \
|
||||||
\
|
\
|
||||||
Layer* rlayer = NULL; \
|
Layer* rlayer = NULL; \
|
||||||
\
|
\
|
||||||
|
|
Loading…
Reference in New Issue