aboutsummaryrefslogtreecommitdiffstats
path: root/misc
diff options
context:
space:
mode:
authorBenedikt Tutzer <benedikt_tutzer@yahoo.de>2019-07-04 14:20:13 +0200
committerBenedikt Tutzer <benedikt_tutzer@yahoo.de>2019-07-04 14:20:13 +0200
commit3a1a41bdb16c9cdf587147f8fb9dc910bcddfd26 (patch)
treeff0b3a426037d29970b1a88a98e0d5ce8f0b5306 /misc
parentde263281308c112891ef330536bd228460a0f85f (diff)
downloadyosys-3a1a41bdb16c9cdf587147f8fb9dc910bcddfd26.tar.gz
yosys-3a1a41bdb16c9cdf587147f8fb9dc910bcddfd26.tar.bz2
yosys-3a1a41bdb16c9cdf587147f8fb9dc910bcddfd26.zip
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
Diffstat (limited to 'misc')
-rw-r--r--misc/py_wrap_generator.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/misc/py_wrap_generator.py b/misc/py_wrap_generator.py
index 9e5727499..66d661fa1 100644
--- a/misc/py_wrap_generator.py
+++ b/misc/py_wrap_generator.py
@@ -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;"