Throw runtime exception when trying to convert a c++-pointer to a
authorBenedikt Tutzer <benedikt_tutzer@yahoo.de>
Thu, 4 Jul 2019 12:20:13 +0000 (14:20 +0200)
committerBenedikt Tutzer <benedikt_tutzer@yahoo.de>
Thu, 4 Jul 2019 12:20:13 +0000 (14:20 +0200)
python-object in case the pointer is a nullptr to avoid a segfault.

Fixes #1090

misc/py_wrap_generator.py

index 9e57274992e561d463b8146bf9005e9fe357546b..66d661fa1ee50cee307c49778ec7c81f6bce4170 100644 (file)
@@ -779,6 +779,9 @@ class WClass:
 
                        #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\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 + "));"
                        if self.link_type == link_types.pointer:
                                text += "\n\t\t\tret->ref_obj = ref;"