* buildsym.c: Break out initial malloc sizes.

(record_line):  Record directly in a subfile.  Alloc on demand.
(compare_line_numbers):  Add from xcoffread.c.
(end_symtab):  New params say whether to sort pendings and
linetable.  Patch block stabs if defined.  Shrink linetable before
allocating the symtab.
* buildsym.h:  Delete line_vector* and prev_line_number.  Add
global_stabs and file_stabs for xcoffread.
* dbxread.c (start_subfile):  Move to buildsym.  Change above calls.
* symtab.h:  LINETABLE(symtab) can now be null.  Zap LINELIST.
* symmisc.c, symtab.c:  Cope with null LINETABLEs.
This commit is contained in:
John Gilmore
1991-10-27 22:26:02 +00:00
parent 9439f48f4c
commit 4137c5fc0d
7 changed files with 196 additions and 128 deletions

View File

@@ -514,7 +514,8 @@ struct symtab
struct symtab *next;
/* List of all symbol scope blocks for this symtab. */
struct blockvector *blockvector;
/* Table mapping core addresses to line numbers for this file. */
/* Table mapping core addresses to line numbers for this file.
Can be NULL if none. */
struct linetable *linetable;
/* Name of this source file. */
char *filename;
@@ -636,7 +637,6 @@ int current_source_line;
#define BLOCKLIST(symtab) (symtab)->blockvector
#define BLOCKVECTOR(symtab) (symtab)->blockvector
#define LINELIST(symtab) (symtab)->linetable
#define LINETABLE(symtab) (symtab)->linetable
/* Macros normally used to access components of symbol table structures. */
@@ -916,9 +916,6 @@ void select_source_symtab (
char **make_symbol_completion_list ();
/* The entry point of a file we are reading. */
extern CORE_ADDR entry_point;
/* Maximum and minimum values of built-in types */
#define MAX_OF_TYPE(t) \
TYPE_UNSIGNED(t) ? UMAX_OF_SIZE(TYPE_LENGTH(t)) : MAX_OF_SIZE(TYPE_LENGTH(t))