summaryrefslogtreecommitdiff
path: root/gdb/block.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2012-05-10 19:59:12 +0000
committerTom Tromey <tromey@redhat.com>2012-05-10 19:59:12 +0000
commitacd8b956f985b1cb4ceec33b64d5be4e4bc2f973 (patch)
tree618742da3ac42cade5166f425f0901fa950d3627 /gdb/block.c
parent3632d5ad495785d22007899979f50f24b75fa063 (diff)
downloadgdb-acd8b956f985b1cb4ceec33b64d5be4e4bc2f973.tar.gz
* jv-lang.c (get_java_class_symtab): Use allocate_global_block,
set_block_symtab. * jit.c (finalize_symtab): Use allocate_global_block, set_block_symtab. * buildsym.c (finish_block_internal): New function, from old finish_block. (finish_block): Rewrite. (end_symtab): Use finish_block_internal, set_block_symtab. * block.h (struct global_block): New. (allocate_global_block, set_block_symtab): Declare. * block.c (allocate_global_block, set_block_symtab): New functions.
Diffstat (limited to 'gdb/block.c')
-rw-r--r--gdb/block.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gdb/block.c b/gdb/block.c
index 3318cb4377d..d3bc5ea9592 100644
--- a/gdb/block.c
+++ b/gdb/block.c
@@ -370,6 +370,29 @@ allocate_block (struct obstack *obstack)
return bl;
}
+/* Allocate a global block. */
+
+struct block *
+allocate_global_block (struct obstack *obstack)
+{
+ struct global_block *bl = OBSTACK_ZALLOC (obstack, struct global_block);
+
+ return &bl->block;
+}
+
+/* Set the symtab of the global block. */
+
+void
+set_block_symtab (struct block *block, struct symtab *symtab)
+{
+ struct global_block *gb;
+
+ gdb_assert (BLOCK_SUPERBLOCK (block) == NULL);
+ gb = (struct global_block *) block;
+ gdb_assert (gb->symtab == NULL);
+ gb->symtab = symtab;
+}
+
/* See block.h. */