From a53b64eaa0816d9136f92b51f5e0d23e718b84f3 Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Thu, 17 Oct 2013 21:15:21 +0800 Subject: New field la_varobj_ops in struct language_defn This is a follow-up series to move language stuff out of varobj.c. This patch adds a new field la_varobj_ops in struct language_defn so that each language has varobj-related options. Not every language supports varobj, and the operations are identical to operations of c languages. 'struct language_defn' is the ideal place to save all language-related operations. After this patch, some cleanups can be done in patch 2/2, which removes language-related stuff completely from varobj.c. Regression tested on x86_64-linux. gdb: 2013-10-25 Yao Qi * language.h (struct lang_varobj_ops): Declare. (struct language_defn) : New field. * ada-lang.c: Include "varobj.h" (defn ada_language_defn): Initialize field 'la_varobj_ops' by ada_varobj_ops. * c-lang.c: Include "varobj.h" (c_language_defn): Initialize field 'la_varobj_ops' by c_varobj_ops. (cplus_language_defn): Initialize field 'la_varobj_ops' by cplus_varobj_ops. (asm_language_defn): Initialize field 'la_varobj_ops' by default_varobj_ops. (minimal_language_defn): Likewise. * d-lang.c (d_language_defn): Likewise. * f-lang.c (f_language_defn): Likewise. * go-lang.c (go_language_defn): Likewise. * m2-lang.c (m2_language_defn): Likewise. * objc-lang.c (objc_language_defn): Likewise. * opencl-lang.c (opencl_language_defn): Likewise. * p-lang.c (pascal_language_defn): Likewise. * language.c (unknown_language_defn): Likewise. (auto_language_defn): Likewise. (local_language_defn): Likewise. * jv-lang.c (java_language_defn): Initialize field 'la_varobj_ops' by java_varobj_ops. * varobj.c (varobj_create): Update. * varobj.h (default_varobj_ops): Define macro. --- gdb/language.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gdb/language.h') diff --git a/gdb/language.h b/gdb/language.h index e36da31..5e029ea 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -31,6 +31,7 @@ struct expression; struct ui_file; struct value_print_options; struct type_print_options; +struct lang_varobj_ops; #define MAX_FORTRAN_DIMS 7 /* Maximum number of F77 array dims. */ @@ -344,6 +345,9 @@ struct language_defn symbol_found_callback_ftype *callback, void *data); + /* Various operations on varobj. */ + const struct lang_varobj_ops *la_varobj_ops; + /* Add fields above this point, so the magic number is always last. */ /* Magic number for compat checking. */ -- cgit v1.1