summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-04-19 15:37:32 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-04-19 15:49:51 +0900
commit13eba431008f09deb32e5f514cc7aa4e06ad9111 (patch)
tree18135301fdc3b87d21dd1d0285152baf2368f7c3
parent2275e76262686b0ac0b94d64b73eadc1adfcc1c4 (diff)
downloadmruby-13eba431008f09deb32e5f514cc7aa4e06ad9111.tar.gz
mruby-13eba431008f09deb32e5f514cc7aa4e06ad9111.zip
backtrace.c: small refactoring in `mrb_exc_backtrace()`; ref #5394
- add comment for unpacking - avoid saving the symbol in a local variable
-rw-r--r--src/backtrace.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/backtrace.c b/src/backtrace.c
index 01d4143ab..952f89a24 100644
--- a/src/backtrace.c
+++ b/src/backtrace.c
@@ -224,16 +224,15 @@ mrb_unpack_backtrace(mrb_state *mrb, mrb_value backtrace)
MRB_API mrb_value
mrb_exc_backtrace(mrb_state *mrb, mrb_value exc)
{
- mrb_sym attr_name;
mrb_value backtrace;
- attr_name = MRB_SYM(backtrace);
- backtrace = mrb_iv_get(mrb, exc, attr_name);
+ backtrace = mrb_iv_get(mrb, exc, MRB_SYM(backtrace));
if (mrb_nil_p(backtrace) || mrb_array_p(backtrace)) {
return backtrace;
}
+ /* unpack packed-backtrace */
backtrace = mrb_unpack_backtrace(mrb, backtrace);
- mrb_iv_set(mrb, exc, attr_name, backtrace);
+ mrb_iv_set(mrb, exc, MRB_SYM(backtrace), backtrace);
return backtrace;
}