From: Jim Blandy Date: Tue, 21 Mar 2000 20:40:43 +0000 (+0000) Subject: * gdbarch.sh: Emit a definition and declaration for gdbarch_free, X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=058f20d52afdf4a88494da6770c447d7ced87f47;p=binutils-gdb.git * gdbarch.sh: Emit a definition and declaration for gdbarch_free, a companion to gdbarch_alloc, which allows a gdbarch init function to free partially-built gdbarch structures. * gdbarch.c, gdbarch.h: Regenerated. --- diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index f33536d52e5..b23ec915dc5 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -357,6 +357,19 @@ gdbarch_alloc (const struct gdbarch_info *info, } +/* Free a gdbarch struct. This should never happen in normal + operation --- once you've created a gdbarch, you keep it around. + However, if an architecture's init function encounters an error + building the structure, it may need to clean up a partially + constructed gdbarch. */ +void +gdbarch_free (struct gdbarch *arch) +{ + /* At the moment, this is trivial. */ + free (arch); +} + + /* Ensure that all values in a GDBARCH are reasonable. */ static void diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index ee695abfe29..8d371209f76 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -909,6 +909,10 @@ extern struct gdbarch_list *gdbarch_list_lookup_by_info (struct gdbarch_list *ar extern struct gdbarch *gdbarch_alloc (const struct gdbarch_info *info, struct gdbarch_tdep *tdep); +/* Helper function. Free a partially-constructed ``struct gdbarch''. */ +extern void gdbarch_free (struct gdbarch *); + + /* Helper function. Force an update of the current architecture. Used by legacy targets that have added their own target specific architecture manipulation commands. diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index 66e16c5afac..32b8d94550d 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -512,6 +512,10 @@ extern struct gdbarch_list *gdbarch_list_lookup_by_info (struct gdbarch_list *ar extern struct gdbarch *gdbarch_alloc (const struct gdbarch_info *info, struct gdbarch_tdep *tdep); +/* Helper function. Free a partially-constructed \`\`struct gdbarch''. */ +extern void gdbarch_free (struct gdbarch *); + + /* Helper function. Force an update of the current architecture. Used by legacy targets that have added their own target specific architecture manipulation commands. @@ -961,6 +965,23 @@ cat <