diff options
author | Andrew Cagney <cagney@redhat.com> | 2003-01-06 21:50:25 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2003-01-06 21:50:25 +0000 |
commit | f6c609c4c2bb326e580c9f533bd2aa0e9d583556 (patch) | |
tree | 7f5974da7d3a38c4ed7430a947fd61c165eec113 /gdb/m32r-tdep.c | |
parent | 84dc46cbdb5a9c4ca576b8768a2876e9551199a5 (diff) | |
download | gdb-f6c609c4c2bb326e580c9f533bd2aa0e9d583556.zip gdb-f6c609c4c2bb326e580c9f533bd2aa0e9d583556.tar.gz gdb-f6c609c4c2bb326e580c9f533bd2aa0e9d583556.tar.bz2 |
2003-01-06 Andrew Cagney <ac131313@redhat.com>
* frame.h (deprecated_frame_xmalloc_with_cleanup): Declare.
* frame.c (deprecated_frame_xmalloc_with_cleanup): New function.
* arm-tdep.c (arm_frame_chain): Allocate caller_fi using
deprecated_frame_xmalloc_with_cleanup.
* m32r-tdep.c (m32r_virtual_frame_pointer): Allocate `fi' using
deprecated_frame_xmalloc.
* mcore-tdep.c (analyze_dummy_frame): Ditto for dummy.
* mn10200-tdep.c (mn10200_frame_chain): Ditto for dummy_frame.
Diffstat (limited to 'gdb/m32r-tdep.c')
-rw-r--r-- | gdb/m32r-tdep.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c index eeb6335..400f0a9 100644 --- a/gdb/m32r-tdep.c +++ b/gdb/m32r-tdep.c @@ -426,20 +426,20 @@ m32r_init_extra_frame_info (struct frame_info *fi) void m32r_virtual_frame_pointer (CORE_ADDR pc, long *reg, long *offset) { - struct frame_info fi; + struct frame_info *fi = deprecated_frame_xmalloc (); + struct cleanup *old_chain = make_cleanup (xfree, fi); /* Set up a dummy frame_info. */ - fi.next = NULL; - fi.prev = NULL; - fi.frame = 0; - fi.pc = pc; + fi->next = NULL; + fi->prev = NULL; + fi->frame = 0; + fi->pc = pc; /* Analyze the prolog and fill in the extra info. */ - m32r_init_extra_frame_info (&fi); - + m32r_init_extra_frame_info (fi); /* Results will tell us which type of frame it uses. */ - if (fi.using_frame_pointer) + if (fi->using_frame_pointer) { *reg = FP_REGNUM; *offset = 0; @@ -449,6 +449,7 @@ m32r_virtual_frame_pointer (CORE_ADDR pc, long *reg, long *offset) *reg = SP_REGNUM; *offset = 0; } + do_cleanups (old_chain); } /* Function: find_callers_reg |