X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=gdb%2Fjv-lang.c;h=0d635c7896b420648cf8d4829fd9dce4cefc9d65;hb=32d0add0a654c1204ab71dc8a55d9374538c4b33;hp=b154d4ac9205227de53adfa3765190ceb62531c8;hpb=6abde28fa9f6f14e03e3d9414da6423843d5e5c4;p=thirdparty%2Fbinutils-gdb.git diff --git a/gdb/jv-lang.c b/gdb/jv-lang.c index b154d4ac920..0d635c7896b 100644 --- a/gdb/jv-lang.c +++ b/gdb/jv-lang.c @@ -1,6 +1,6 @@ /* Java language support routines for GDB, the GNU debugger. - Copyright (C) 1997-2013 Free Software Foundation, Inc. + Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of GDB. @@ -23,11 +23,8 @@ #include "expression.h" #include "parser-defs.h" #include "language.h" -#include "gdbtypes.h" -#include "symtab.h" #include "symfile.h" #include "objfiles.h" -#include "gdb_string.h" #include "value.h" #include "c-lang.h" #include "jv-lang.h" @@ -37,7 +34,6 @@ #include "demangle.h" #include "dictionary.h" #include -#include "gdb_assert.h" #include "charset.h" #include "valprint.h" #include "cp-support.h" @@ -49,7 +45,7 @@ extern void _initialize_java_language (void); static int java_demangled_signature_length (const char *); static void java_demangled_signature_copy (char *, const char *); -static struct symtab *get_java_class_symtab (struct gdbarch *gdbarch); +static struct compunit_symtab *get_java_class_symtab (struct gdbarch *gdbarch); static char *get_java_utf8_name (struct obstack *obstack, struct value *name); static int java_class_is_primitive (struct value *clas); static struct value *java_value_string (char *ptr, int len); @@ -133,11 +129,11 @@ get_dynamics_objfile (struct gdbarch *gdbarch) return dynamics_objfile; } -static struct symtab * +static struct compunit_symtab * get_java_class_symtab (struct gdbarch *gdbarch) { struct objfile *objfile = get_dynamics_objfile (gdbarch); - struct symtab *class_symtab = objfile->symtabs; + struct compunit_symtab *class_symtab = objfile->compunit_symtabs; if (class_symtab == NULL) { @@ -145,13 +141,16 @@ get_java_class_symtab (struct gdbarch *gdbarch) struct block *bl; struct jv_per_objfile_data *jv_data; - class_symtab = allocate_symtab ("", objfile); - class_symtab->language = language_java; + class_symtab = allocate_compunit_symtab (objfile, ""); + add_compunit_symtab_to_objfile (class_symtab); + allocate_symtab (class_symtab, ""); + + COMPUNIT_FILETABS (class_symtab)->language = language_java; bv = (struct blockvector *) obstack_alloc (&objfile->objfile_obstack, sizeof (struct blockvector) + sizeof (struct block *)); BLOCKVECTOR_NBLOCKS (bv) = 1; - BLOCKVECTOR (class_symtab) = bv; + COMPUNIT_BLOCKVECTOR (class_symtab) = bv; /* Allocate dummy STATIC_BLOCK. */ bl = allocate_block (&objfile->objfile_obstack); @@ -162,7 +161,7 @@ get_java_class_symtab (struct gdbarch *gdbarch) /* Allocate GLOBAL_BLOCK. */ bl = allocate_global_block (&objfile->objfile_obstack); BLOCK_DICT (bl) = dict_create_hashed_expandable (); - set_block_symtab (bl, class_symtab); + set_block_compunit_symtab (bl, class_symtab); BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK) = bl; /* Arrange to free the dict. */ @@ -175,9 +174,8 @@ get_java_class_symtab (struct gdbarch *gdbarch) static void add_class_symtab_symbol (struct symbol *sym) { - struct symtab *symtab - = get_java_class_symtab (get_objfile_arch (SYMBOL_SYMTAB (sym)->objfile)); - struct blockvector *bv = BLOCKVECTOR (symtab); + struct compunit_symtab *cust = get_java_class_symtab (symbol_arch (sym)); + const struct blockvector *bv = COMPUNIT_BLOCKVECTOR (cust); dict_add_symbol (BLOCK_DICT (BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK)), sym); } @@ -1199,6 +1197,8 @@ const struct language_defn java_language_defn = NULL, /* la_get_symbol_name_cmp */ iterate_over_symbols, &java_varobj_ops, + NULL, + NULL, LANG_MAGIC };