summaryrefslogtreecommitdiffhomepage
path: root/src/backtrace.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-01-25 15:41:29 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-01-25 15:45:32 +0900
commit0903e2a72e8f3aa848fdbb60f1ceece7af3d1cb4 (patch)
tree7ed6a279752f227b2a6afc24edf9f8fb3c6bbc31 /src/backtrace.c
parentefef4541aa97460b80618af369879881b376cc30 (diff)
downloadmruby-0903e2a72e8f3aa848fdbb60f1ceece7af3d1cb4.tar.gz
mruby-0903e2a72e8f3aa848fdbb60f1ceece7af3d1cb4.zip
Silence 'loss of data' warnings.
Diffstat (limited to 'src/backtrace.c')
-rw-r--r--src/backtrace.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backtrace.c b/src/backtrace.c
index 508fe99e9..65404d23a 100644
--- a/src/backtrace.c
+++ b/src/backtrace.c
@@ -41,6 +41,7 @@ each_backtrace(mrb_state *mrb, ptrdiff_t ciidx, each_backtrace_func func, void *
mrb_callinfo *ci;
const mrb_irep *irep;
const mrb_code *pc;
+ uint32_t idx;
ci = &mrb->c->cibase[i];
@@ -57,10 +58,11 @@ each_backtrace(mrb_state *mrb, ptrdiff_t ciidx, each_backtrace_func func, void *
continue;
}
- loc.lineno = mrb_debug_get_line(mrb, irep, pc - irep->iseq);
+ idx = (uint32_t)(pc - irep->iseq);
+ loc.lineno = mrb_debug_get_line(mrb, irep, idx);
if (loc.lineno == -1) continue;
- loc.filename = mrb_debug_get_filename(mrb, irep, pc - irep->iseq);
+ loc.filename = mrb_debug_get_filename(mrb, irep, idx);
if (!loc.filename) {
loc.filename = "(unknown)";
}