Remove varobj_language_string, languages and varobj_languages

This patch does some cleanups, removing some language-related stuff.
Note that mi_cmd_var_info_expression uses varobj_language_string,
which is redundant, because we can get language name from
lang->la_natural_name.

varobj_language_string doesn't have "Ada", which looks like a bug to
me.  With this patch applied, this problem doesn't exist, because the
language name is got from the same place (field la_natural_name).

gdb:

2013-11-07  Yao Qi  <yao@codesourcery.com>

	* mi/mi-cmd-var.c: Include "language.h".
	(mi_cmd_var_info_expression): Get language name from
	language_defn.
	* varobj.c (varobj_language_string): Remove.
	(variable_language): Remove declaration.
	(languages): Remove.
	(varobj_get_language): Change the type of return value.
	(variable_language): Remove.
	* varobj.h (enum varobj_languages): Remove.
	(varobj_language_string): Remove declaration.
	(varobj_get_language): Update declaration.

gdb/doc:

2013-11-07  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (GDB/MI Variable Objects): Update doc about the
	output of "-var-info-expression".
This commit is contained in:
Yao Qi
2013-10-09 22:10:14 +08:00
parent 6abde28fa9
commit fa4d0c4081
6 changed files with 27 additions and 55 deletions

View File

@@ -55,9 +55,6 @@ show_varobjdebug (struct ui_file *file, int from_tty,
char *varobj_format_string[] =
{ "natural", "binary", "decimal", "hexadecimal", "octal" };
/* String representations of gdb's known languages. */
char *varobj_language_string[] = { "C", "C++", "Java" };
/* True if we want to allow Python-based pretty-printing. */
static int pretty_printing = 0;
@@ -199,8 +196,6 @@ static int install_new_value (struct varobj *var, struct value *value,
/* Language-specific routines. */
static enum varobj_languages variable_language (struct varobj *var);
static int number_of_children (struct varobj *);
static char *name_of_variable (struct varobj *);
@@ -224,14 +219,6 @@ static struct varobj *varobj_add_child (struct varobj *var,
#endif /* HAVE_PYTHON */
/* Array of known source language routines. */
static const struct lang_varobj_ops *languages[vlang_end] = {
&c_varobj_ops,
&cplus_varobj_ops,
&java_varobj_ops,
&ada_varobj_ops,
};
/* Private data */
/* Mappings of varobj_display_formats enums to gdb's format codes. */
@@ -1126,10 +1113,10 @@ varobj_get_path_expr (struct varobj *var)
}
}
enum varobj_languages
const struct language_defn *
varobj_get_language (struct varobj *var)
{
return variable_language (var);
return var->root->exp->language_defn;
}
int
@@ -2332,32 +2319,6 @@ cppop (struct cpstack **pstack)
/* Common entry points */
/* Get the language of variable VAR. */
static enum varobj_languages
variable_language (struct varobj *var)
{
enum varobj_languages lang;
switch (var->root->exp->language_defn->la_language)
{
default:
case language_c:
lang = vlang_c;
break;
case language_cplus:
lang = vlang_cplus;
break;
case language_java:
lang = vlang_java;
break;
case language_ada:
lang = vlang_ada;
break;
}
return lang;
}
/* Return the number of children for a given variable.
The result of this function is defined by the language
implementation. The number of children returned by this function