summaryrefslogtreecommitdiff
path: root/py/objexcept.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-03-26 18:56:02 +0000
committerDamien George <damien.p.george@gmail.com>2014-03-26 18:56:02 +0000
commit9c817b9465038e21dc44d2720b5746e8f2f3ce95 (patch)
treee536a588d3f28b00bcfb66ecb1fa39b154d23e80 /py/objexcept.c
parent548e76cfd6d1f8c1419bc827aae0bd87dc7867b5 (diff)
parentaf1ae3039913785cc9a36d93a23e4bcca5ec83e7 (diff)
Merge branch 'master' of github.com:micropython/micropython
Diffstat (limited to 'py/objexcept.c')
-rw-r--r--py/objexcept.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/py/objexcept.c b/py/objexcept.c
index c75e3d3a5..facf209df 100644
--- a/py/objexcept.c
+++ b/py/objexcept.c
@@ -61,16 +61,22 @@ STATIC mp_obj_t mp_obj_exception_make_new(mp_obj_t type_in, uint n_args, uint n_
return o;
}
+// Get exception "value" - that is, first argument, or None
+mp_obj_t mp_obj_exception_get_value(mp_obj_t self_in) {
+ mp_obj_exception_t *self = self_in;
+ if (self->args.len == 0) {
+ return mp_const_none;
+ } else {
+ return self->args.items[0];
+ }
+}
+
STATIC void exception_load_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) {
mp_obj_exception_t *self = self_in;
if (attr == MP_QSTR_args) {
dest[0] = &self->args;
} else if (self->base.type == &mp_type_StopIteration && attr == MP_QSTR_value) {
- if (self->args.len == 0) {
- dest[0] = mp_const_none;
- } else {
- dest[0] = self->args.items[0];
- }
+ dest[0] = mp_obj_exception_get_value(self);
}
}