diff options
author | Jim Blandy <jimb@codesourcery.com> | 2000-03-21 20:40:43 +0000 |
---|---|---|
committer | Jim Blandy <jimb@codesourcery.com> | 2000-03-21 20:40:43 +0000 |
commit | 058f20d52afdf4a88494da6770c447d7ced87f47 (patch) | |
tree | 34f79340c32077cd82a8a25576b7e672cd4a30d9 | |
parent | f2ae78293c387861afda4553a44ece0427b047ff (diff) | |
download | gdb-058f20d52afdf4a88494da6770c447d7ced87f47.zip gdb-058f20d52afdf4a88494da6770c447d7ced87f47.tar.gz gdb-058f20d52afdf4a88494da6770c447d7ced87f47.tar.bz2 |
* 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.
-rw-r--r-- | gdb/gdbarch.c | 13 | ||||
-rw-r--r-- | gdb/gdbarch.h | 4 | ||||
-rwxr-xr-x | gdb/gdbarch.sh | 21 |
3 files changed, 38 insertions, 0 deletions
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index f33536d..b23ec91 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 ee695ab..8d37120 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 66e16c5..32b8d94 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 <<EOF } EOF +# Free a gdbarch struct. +echo "" +echo "" +cat <<EOF +/* 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); +} +EOF + # verify a new architecture echo "" echo "" |