summaryrefslogtreecommitdiffhomepage
path: root/include/mruby.h
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-05-23 23:41:12 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-05-23 23:50:42 +0900
commit9644ad51b4a63d8db46d7918ec5e89a547236c56 (patch)
tree12c3265c8c71d9b26ff544f2e0f0768bc64cf7c7 /include/mruby.h
parentd2458e66c26bac5e9db98c22dc6910cb45971b85 (diff)
downloadmruby-9644ad51b4a63d8db46d7918ec5e89a547236c56.tar.gz
mruby-9644ad51b4a63d8db46d7918ec5e89a547236c56.zip
Simplify backtrace mechanism; fix #3633 #3634 #3644
Instead of preserving a backtrace in `mrb_state`, `mrb_exc_set` keeps packed backtrace in an exception object. `#backtrace` unpacks it to an array of strings.
Diffstat (limited to 'include/mruby.h')
-rw-r--r--include/mruby.h14
1 files changed, 1 insertions, 13 deletions
diff --git a/include/mruby.h b/include/mruby.h
index 4e2e4ae41..29e8ddc79 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -152,12 +152,6 @@ struct mrb_context {
struct mrb_jmpbuf;
-typedef struct {
- const char *filename;
- int lineno;
- mrb_sym method_id;
-} mrb_backtrace_entry;
-
typedef void (*mrb_atexit_func)(struct mrb_state*);
#define MRB_STATE_NO_REGEXP 1
@@ -172,15 +166,9 @@ typedef struct mrb_state {
struct mrb_context *c;
struct mrb_context *root_c;
+ struct iv_tbl *globals; /* global variable table */
struct RObject *exc; /* exception */
- struct {
- struct RObject *exc;
- int n;
- int n_allocated;
- mrb_backtrace_entry *entries;
- } backtrace;
- struct iv_tbl *globals; /* global variable table */
struct RObject *top_self;
struct RClass *object_class; /* Object class */