Skip to content

Commit fb0f258

Browse files
committed
update traceback module
1 parent 193a8d2 commit fb0f258

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

locale/circuitpython.pot

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3421,6 +3421,10 @@ msgstr ""
34213421
msgid "invalid syntax for number"
34223422
msgstr ""
34233423

3424+
#: py/objexcept.c shared-bindings/traceback/__init__.c
3425+
msgid "invalid traceback"
3426+
msgstr ""
3427+
34243428
#: py/objtype.c
34253429
msgid "issubclass() arg 1 must be a class"
34263430
msgstr ""
@@ -4093,10 +4097,6 @@ msgstr ""
40934097
msgid "source palette too large"
40944098
msgstr ""
40954099

4096-
#: shared-bindings/traceback/__init__.c
4097-
msgid "stack is not ok"
4098-
msgstr ""
4099-
41004100
#: py/objstr.c
41014101
msgid "start/end indices"
41024102
msgstr ""

shared-bindings/traceback/__init__.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@
2727
#include "py/stream.h"
2828
#include "py/runtime.h"
2929

30-
#include "supervisor/shared/stack.h"
31-
3230
//| """Traceback Module
3331
//|
3432
//| This module provides a standard interface to print stack traces of programs.
@@ -97,11 +95,12 @@ STATIC mp_obj_t traceback_print_exception(size_t n_args, const mp_obj_t *pos_arg
9795
}
9896

9997
if (args[ARG_tb].u_obj != mp_const_none && print_tb) {
100-
if (!stack_ok()) {
101-
mp_raise_RuntimeError(translate("stack is not ok"));
98+
if (!mp_obj_is_type(args[ARG_tb].u_obj, &mp_type_traceback)) {
99+
mp_raise_TypeError(translate("invalid traceback"));
102100
}
103-
size_t n, *values;
104-
mp_obj_exception_get_traceback(exc, &n, &values);
101+
mp_obj_traceback_t *tb = MP_OBJ_TO_PTR(args[ARG_tb].u_obj);
102+
size_t n = (tb->data) ? tb->len : 0;
103+
size_t *values = (tb->data) ? tb->data : NULL;
105104
if (n > 0) {
106105
assert(n % 3 == 0);
107106
// Decompress the format strings

0 commit comments

Comments
 (0)