Throw runtime exception when trying to convert a c++-pointer to a

python-object in case the pointer is a nullptr to avoid a segfault.

Fixes #1090
This commit is contained in:
Benedikt Tutzer 2019-07-04 14:20:13 +02:00
parent de26328130
commit 3a1a41bdb1
1 changed files with 3 additions and 0 deletions

View File

@ -779,6 +779,9 @@ class WClass:
#if self.link_type != link_types.pointer: #if self.link_type != link_types.pointer:
text += "\n\t\tstatic " + self.name + "* get_py_obj(" + long_name + "* ref)\n\t\t{" text += "\n\t\tstatic " + self.name + "* get_py_obj(" + long_name + "* ref)\n\t\t{"
text += "\n\t\t\tif(ref == nullptr){"
text += "\n\t\t\t\tthrow std::runtime_error(\"" + self.name + " does not exist.\");"
text += "\n\t\t\t}"
text += "\n\t\t\t" + self.name + "* ret = (" + self.name + "*)malloc(sizeof(" + self.name + "));" text += "\n\t\t\t" + self.name + "* ret = (" + self.name + "*)malloc(sizeof(" + self.name + "));"
if self.link_type == link_types.pointer: if self.link_type == link_types.pointer:
text += "\n\t\t\tret->ref_obj = ref;" text += "\n\t\t\tret->ref_obj = ref;"