diff options
| author | dearblue <[email protected]> | 2020-06-09 21:54:13 +0900 |
|---|---|---|
| committer | dearblue <[email protected]> | 2020-06-09 21:54:13 +0900 |
| commit | 960c82e396135ad3e6c5b2ef1e809319f95b9f82 (patch) | |
| tree | 1c364091181dcde5587f88a9d42c5d5546eda3b4 | |
| parent | 2098acee7db4259f2db5222fb66a373f9d6ac27a (diff) | |
| download | mruby-960c82e396135ad3e6c5b2ef1e809319f95b9f82.tar.gz mruby-960c82e396135ad3e6c5b2ef1e809319f95b9f82.zip | |
Remove `mrb_assert()` in `Module.nesting`
The following code was causing SIGSEGV:
```ruby
Module.method(:nesting).call
```
| -rw-r--r-- | mrbgems/mruby-metaprog/src/metaprog.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/mrbgems/mruby-metaprog/src/metaprog.c b/mrbgems/mruby-metaprog/src/metaprog.c index 4334fe983..6c0dc5ad3 100644 --- a/mrbgems/mruby-metaprog/src/metaprog.c +++ b/mrbgems/mruby-metaprog/src/metaprog.c @@ -670,8 +670,7 @@ mrb_mod_s_nesting(mrb_state *mrb, mrb_value mod) ary = mrb_ary_new(mrb); proc = mrb->c->ci[-1].proc; /* callee proc */ - mrb_assert(!MRB_PROC_CFUNC_P(proc)); - while (proc) { + while (proc && !MRB_PROC_CFUNC_P(proc)) { if (MRB_PROC_SCOPE_P(proc)) { struct RClass *c2 = MRB_PROC_TARGET_CLASS(proc); |
