summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Moore <dougm@rice.edu>2017-05-19 17:59:08 -0500
committerDoug Moore <dougm@rice.edu>2017-05-19 17:59:08 -0500
commit7634874591d0aa63c72047bfa401ae009234072d (patch)
tree8e88b6500ab2250df18ff91c94154a922ef84611
parentec1a0212430fbb2a6e51111b6bfcdb0a5a75c98d (diff)
downloadlibunwind-7634874591d0aa63c72047bfa401ae009234072d.tar.gz
Move the change to c->ret_addr_column to the end of dwarf_step, to make sure
that it gets set in the cache hit case.
-rw-r--r--src/dwarf/Gparser.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dwarf/Gparser.c b/src/dwarf/Gparser.c
index 2600ce39..698dd49a 100644
--- a/src/dwarf/Gparser.c
+++ b/src/dwarf/Gparser.c
@@ -516,7 +516,6 @@ setup_fde (struct dwarf_cursor *c, dwarf_state_record_t *sr)
set_reg (sr, i, DWARF_WHERE_SAME, 0);
struct dwarf_cie_info *dci = c->pi.unwind_info;
- c->ret_addr_column = dci->ret_addr_column;
sr->rs_current.ret_addr_column = dci->ret_addr_column;
unw_word_t addr = dci->cie_instr_start;
unw_word_t curr_ip = 0;
@@ -942,6 +941,7 @@ dwarf_step (struct dwarf_cursor *c)
return ret;
if ((ret = apply_reg_state (c, &sr.rs_current)) < 0)
return ret;
+ c->ret_addr_column = sr.rs_current.ret_addr_column;
return 1;
}