From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6015 invoked by alias); 28 Oct 2013 12:50:55 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 5944 invoked by uid 89); 28 Oct 2013 12:50:54 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 28 Oct 2013 12:50:52 +0000 Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1VamHR-0005dy-G2 from Yao_Qi@mentor.com for gdb-patches@sourceware.org; Mon, 28 Oct 2013 05:50:49 -0700 Received: from SVR-ORW-FEM-04.mgc.mentorg.com ([147.34.97.41]) by svr-orw-fem-01.mgc.mentorg.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Mon, 28 Oct 2013 05:50:49 -0700 Received: from qiyao.dyndns.org.dyndns.org (147.34.91.1) by svr-orw-fem-04.mgc.mentorg.com (147.34.97.41) with Microsoft SMTP Server id 14.2.247.3; Mon, 28 Oct 2013 05:50:48 -0700 From: Yao Qi To: Subject: [PATCH 3/3] Remove varobj_language_string, languages and varobj_languages Date: Mon, 28 Oct 2013 12:50:00 -0000 Message-ID: <1382964489-24307-3-git-send-email-yao@codesourcery.com> In-Reply-To: <1382964489-24307-1-git-send-email-yao@codesourcery.com> References: <20131025041525.GC4769@adacore.com> <1382964489-24307-1-git-send-email-yao@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes X-SW-Source: 2013-10/txt/msg00855.txt.bz2 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-10-28 Yao Qi * 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/mi/mi-cmd-var.c | 5 +++-- gdb/varobj.c | 43 ++----------------------------------------- gdb/varobj.h | 12 +----------- 3 files changed, 6 insertions(+), 54 deletions(-) diff --git a/gdb/mi/mi-cmd-var.c b/gdb/mi/mi-cmd-var.c index 57a2f6b..0a2ef5c 100644 --- a/gdb/mi/mi-cmd-var.c +++ b/gdb/mi/mi-cmd-var.c @@ -24,6 +24,7 @@ #include "ui-out.h" #include "mi-out.h" #include "varobj.h" +#include "language.h" #include "value.h" #include #include "gdb_string.h" @@ -479,7 +480,7 @@ void mi_cmd_var_info_expression (char *command, char **argv, int argc) { struct ui_out *uiout = current_uiout; - enum varobj_languages lang; + const struct language_defn *lang; struct varobj *var; if (argc != 1) @@ -490,7 +491,7 @@ mi_cmd_var_info_expression (char *command, char **argv, int argc) lang = varobj_get_language (var); - ui_out_field_string (uiout, "lang", varobj_language_string[(int) lang]); + ui_out_field_string (uiout, "lang", lang->la_natural_name); ui_out_field_string (uiout, "exp", varobj_get_expression (var)); } diff --git a/gdb/varobj.c b/gdb/varobj.c index b5cf17d..f15c9de 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -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 diff --git a/gdb/varobj.h b/gdb/varobj.h index 2379c3d..978d9b9 100644 --- a/gdb/varobj.h +++ b/gdb/varobj.h @@ -52,16 +52,6 @@ enum varobj_scope_status /* String representations of gdb's format codes (defined in varobj.c). */ extern char *varobj_format_string[]; -/* Languages supported by this variable objects system. This enum is used - to index arrays so we make its first enum explicitly zero. */ -enum varobj_languages - { - vlang_c = 0, vlang_cplus, vlang_java, vlang_ada, vlang_end - }; - -/* String representations of gdb's known languages (defined in varobj.c). */ -extern char *varobj_language_string[]; - /* Struct thar describes a variable object instance. */ struct varobj; @@ -286,7 +276,7 @@ extern struct type *varobj_get_gdb_type (struct varobj *var); extern char *varobj_get_path_expr (struct varobj *var); -extern enum varobj_languages varobj_get_language (struct varobj *var); +extern const struct language_defn *varobj_get_language (struct varobj *var); extern int varobj_get_attributes (struct varobj *var); -- 1.7.7.6