This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

src/gdb ChangeLog ada-lang.c dwarf2read.c psym ...


CVSROOT:	/cvs/src
Module name:	src
Changes by:	hilfingr@sourceware.org	2010-10-07 07:13:52

Modified files:
	gdb            : ChangeLog ada-lang.c dwarf2read.c psymtab.c 
	                 symfile.h 

Log message:
	Rework symbol searches to move Ada-specific stuff to ada-lang.c.
	
	This is a clean-up of some of our symbol-lookup machinery to pull some
	kludgy Ada-specific definitions out of psymtab.c.  In place of
	map_ada_symtabs and ada_lookup_partial_symbol, we have a method
	map_matching_symbols, which searches through all symbol tables and
	partial symbol tables looking for a symbol that matches according to
	a matching function that is passed as a parameter. This requires some
	care, because partial symbol tables speed up searches by binary search,
	while full symbol tables use hashing. To call map_matching_symbols, therefore,
	you may need to supply both a matching function that is compatible with the
	dictionary hash function and an ordering relation that is compatible with
	strcmp_iw, which is used to order partial symbol tables.
	
	Having added this general routine to psymtab.c, we use it in ada-lang.c
	to rework add_non_local_symbols (now renamed add_nonlocal_symbols).
	
	Changelog:
	
	gdb/
	
	* ada-lang.c (full_match): Declare.
	(ada_match_name): Rename to match_name (we should avoid prefixing static
	symbols with "ada_").
	(match_name): New name for ada_match_name.
	(struct ada_psym_data): Remove and replace with...
	(struct match_data): User data for map_matching_symbols.
	(ada_add_psyms): Remove.
	(aux_add_nonlocal_symbols): New function, used as callback for
	map_matching_symbols.
	(compare_names): Ordering function adopted from strcmp_iw for Ada-encoded
	symbols.
	(ada_add_non_local_symbols): Rename to add_nonlocal_symbols.
	(add_nonlocal_symbols): Renamed from ada_add_non_local_symbols.
	Rework to use map_matching_symbols instead of map_ada_symtabs.
	(ada_lookup_symbol_list): Use add_nonlocal_symbols.
	* psymtab.c: Include dependency on dictionary.h.
	(match_partial_symbol): New function.
	(ada_lookup_partial_symbol): Remove.
	(map_block): New function, auxiliary to map_matching_symbols_psymtab.
	(map_matching_symbols_psymtab): New function.
	(psym_functions): Replace map_ada_symtabs with map_matching_symbols_psymtab.
	* symfile.h: Replace map_ada_symtabs definition with map_matching_symbols.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.12239&r2=1.12240
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ada-lang.c.diff?cvsroot=src&r1=1.273&r2=1.274
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/dwarf2read.c.diff?cvsroot=src&r1=1.469&r2=1.470
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/psymtab.c.diff?cvsroot=src&r1=1.17&r2=1.18
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/symfile.h.diff?cvsroot=src&r1=1.76&r2=1.77


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]