Commit d6cbe1bf authored by Carlo Prelz's avatar Carlo Prelz

The original code crashed when mrb->backtrace.n grew to 16.

It looks like the logic to reallocate the backtrace was flawed,
based on the wrong variable (loc_raw->i, which, as I have verified,
decreases from 16 to 0 instead of increasing)

I am not sure if this is the correct fix
parent 0c23d5a3
...@@ -330,7 +330,7 @@ save_backtrace_i(mrb_state *mrb, ...@@ -330,7 +330,7 @@ save_backtrace_i(mrb_state *mrb,
{ {
mrb_backtrace_entry *entry; mrb_backtrace_entry *entry;
if (loc_raw->i >= mrb->backtrace.n_allocated) { if (mrb->backtrace.n >= mrb->backtrace.n_allocated) {
int new_n_allocated; int new_n_allocated;
if (mrb->backtrace.n_allocated == 0) { if (mrb->backtrace.n_allocated == 0) {
new_n_allocated = 8; new_n_allocated = 8;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment