]> sigrok.org Git - libsigrok.git/commitdiff
bindings: Better error handling in enumeration get() function.
authorJens Steinhauser <redacted>
Tue, 7 Oct 2014 12:01:34 +0000 (14:01 +0200)
committerBert Vermeulen <redacted>
Tue, 7 Oct 2014 13:15:17 +0000 (15:15 +0200)
Prior to this patch a call to get() with an invalid enumeration value
would raise an exception that would, for example, terminate the python
interpreter, whereas now the exception is handled and translated into a
proper python exception.

bindings/cxx/enums.py

index e942058cc3fb11e7b3748cd301d398d042e1cf98..9eddd1ad9631fe61344b7ec13068bf5cc0adb29c 100644 (file)
@@ -95,6 +95,9 @@ code_template = """
 
 const {classname} *{classname}::get(int id)
 {{
+    if (_values.find(static_cast<{enumname}>(id)) == _values.end())
+        throw Error(SR_ERR_ARG);
+
     return {classname}::_values.at(static_cast<{enumname}>(id));
 }}
 """