gdb: Convert language la_read_var_value field to a method

This commit changes the language_data::la_read_var_value function
pointer member variable into a member function of language_defn.

An interesting aspect of this change is that the implementation of
language_defn::read_var_value is actually in findvar.c.  This is
partly historical, the new language_defn::read_var_value is a rename
of default_read_var_value, which was already in that file, but also,
that is the file that contains the helper functions needed by the
read_var_value method, so it makes sens that the method implementation
should continue to live there (I think).

There should be no user visible changes after this commit.

gdb/ChangeLog:

	* ada-lang.c (ada_read_var_value): Delete function, move
	implementation to...
	(ada_language::read_var_value): ...here.
	(ada_language_data): Delete la_read_var_value initializer.
	* c-lang.c (c_language_data): Likewise.
	(cplus_language_data): Likewise.
	(minimal_language_data): Likewise.
	* d-lang.c (d_language_data): Likewise.
	* f-lang.c (f_language_data): Likewise.
	* findvar.c (default_read_var_value): Rename to...
	(language_defn::read_var_value): ...this.
	* findvar.c (read_var_value): Update header comment, and change to
	call member function instead of function pointer.
	* go-lang.c (go_language_data): Likewise.
	* language.c (unknown_language_data): Delete la_read_var_value
	initializer.
	(auto_language_data): Likewise.
	* language.h (struct language_data): Delete la_read_var_value
	field.
	(language_defn::read_var_value): New member function.
	(default_read_var_value): Delete declaration.
	* m2-lang.c (m2_language_data): Delete la_read_var_value
	initializer.
	* objc-lang.c (objc_language_data): Likewise.
	* opencl-lang.c (opencl_language_data): Likewise.
	* p-lang.c (pascal_language_data): Likewise.
	* rust-lang.c (rust_language_data): Likewise.
	* value.h (default_read_var_value): Delete declaration.
This commit is contained in:
Andrew Burgess
2020-05-01 17:33:22 +01:00
parent 5bd40f2a3f
commit 15e5fd3556
15 changed files with 72 additions and 61 deletions

View File

@ -578,12 +578,12 @@ get_hosting_frame (struct symbol *var, const struct block *var_block,
return frame;
}
/* A default implementation for the "la_read_var_value" hook in
the language vector which should work in most situations. */
/* See language.h. */
struct value *
default_read_var_value (struct symbol *var, const struct block *var_block,
struct frame_info *frame)
language_defn::read_var_value (struct symbol *var,
const struct block *var_block,
struct frame_info *frame) const
{
struct value *v;
struct type *type = SYMBOL_TYPE (var);
@ -801,7 +801,7 @@ default_read_var_value (struct symbol *var, const struct block *var_block,
return v;
}
/* Calls VAR's language la_read_var_value hook with the given arguments. */
/* Calls VAR's language read_var_value hook with the given arguments. */
struct value *
read_var_value (struct symbol *var, const struct block *var_block,
@ -810,9 +810,8 @@ read_var_value (struct symbol *var, const struct block *var_block,
const struct language_defn *lang = language_def (var->language ());
gdb_assert (lang != NULL);
gdb_assert (lang->la_read_var_value != NULL);
return lang->la_read_var_value (var, var_block, frame);
return lang->read_var_value (var, var_block, frame);
}
/* Install default attributes for register values. */