diff options
author | Benedikt Tutzer <benedikt_tutzer@yahoo.de> | 2019-07-04 14:20:13 +0200 |
---|---|---|
committer | Benedikt Tutzer <benedikt_tutzer@yahoo.de> | 2019-07-04 14:20:13 +0200 |
commit | 3a1a41bdb16c9cdf587147f8fb9dc910bcddfd26 (patch) | |
tree | ff0b3a426037d29970b1a88a98e0d5ce8f0b5306 | |
parent | de263281308c112891ef330536bd228460a0f85f (diff) | |
download | yosys-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
-rw-r--r-- | misc/py_wrap_generator.py | 3 |
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;" |