diff options
Diffstat (limited to 'gdb/dwarf2-frame.c')
-rw-r--r-- | gdb/dwarf2-frame.c | 26 |
1 files changed, 5 insertions, 21 deletions
diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c index 27626084346..2b5ed32243b 100644 --- a/gdb/dwarf2-frame.c +++ b/gdb/dwarf2-frame.c @@ -509,29 +509,15 @@ dwarf2_frame_default_init_reg (struct gdbarch *gdbarch, int regnum, /* Return a default for the architecture-specific operations. */ static void * -dwarf2_frame_init (struct gdbarch *gdbarch) +dwarf2_frame_init (struct obstack *obstack) { struct dwarf2_frame_ops *ops; - ops = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct dwarf2_frame_ops); + ops = OBSTACK_ZALLOC (obstack, struct dwarf2_frame_ops); ops->init_reg = dwarf2_frame_default_init_reg; return ops; } -static struct dwarf2_frame_ops * -dwarf2_frame_ops (struct gdbarch *gdbarch) -{ - struct dwarf2_frame_ops *ops = gdbarch_data (gdbarch, dwarf2_frame_data); - if (ops == NULL) - { - /* ULGH, called during architecture initialization. Patch - things up. */ - ops = dwarf2_frame_init (gdbarch); - set_gdbarch_data (gdbarch, dwarf2_frame_data, ops); - } - return ops; -} - /* Set the architecture-specific register state initialization function for GDBARCH to INIT_REG. */ @@ -540,9 +526,8 @@ dwarf2_frame_set_init_reg (struct gdbarch *gdbarch, void (*init_reg) (struct gdbarch *, int, struct dwarf2_frame_state_reg *)) { - struct dwarf2_frame_ops *ops; + struct dwarf2_frame_ops *ops = gdbarch_data (gdbarch, dwarf2_frame_data); - ops = dwarf2_frame_ops (gdbarch); ops->init_reg = init_reg; } @@ -552,9 +537,8 @@ static void dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg) { - struct dwarf2_frame_ops *ops; + struct dwarf2_frame_ops *ops = gdbarch_data (gdbarch, dwarf2_frame_data); - ops = dwarf2_frame_ops (gdbarch); ops->init_reg (gdbarch, regnum, reg); } @@ -1611,6 +1595,6 @@ void _initialize_dwarf2_frame (void); void _initialize_dwarf2_frame (void) { - dwarf2_frame_data = register_gdbarch_data (NULL, dwarf2_frame_init); + dwarf2_frame_data = gdbarch_data_register_pre_init (dwarf2_frame_init); dwarf2_frame_objfile_data = register_objfile_data (); } |