diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3385cfac28..35da6b6391 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,56 @@ +2015-01-30 Simon Marchi + + * ada-varobj.c (ada_number_of_children): Constify struct varobj * + parameter. + (ada_name_of_variable): Same. + (ada_path_expr_of_child): Same. + (ada_value_of_variable): Same. + (ada_value_is_changeable_p): Same. + (ada_value_has_mutated): Same. + * c-varobj.c (varobj_is_anonymous_child): Same. + (c_is_path_expr_parent): Same. + (c_number_of_children): Same. + (c_name_of_variable): Same. + (c_path_expr_of_child): Same. + (get_type): Same. + (c_value_of_variable): Same. + (cplus_number_of_children): Same. + (cplus_name_of_variable): Same. + (cplus_path_expr_of_child): Same. + (cplus_value_of_variable): Same. + * jv-varobj.c (java_number_of_children): Same. + (java_name_of_variable): Same. + (java_path_expr_of_child): Same. + (java_value_of_variable): Same. + * varobj.c (number_of_children): Same. + (name_of_variable): Same. + (is_root_p): Same. + (varobj_ensure_python_env): Same. + (varobj_get_objname): Same. + (varobj_get_expression): Same. + (varobj_get_display_format): Same. + (varobj_get_display_hint): Same. + (varobj_has_more): Same. + (varobj_get_thread_id): Same. + (varobj_get_frozen): Same. + (dynamic_varobj_has_child_method): Same. + (varobj_get_gdb_type): Same. + (is_path_expr_parent): Same. + (varobj_default_is_path_expr_parent): Same. + (varobj_get_language): Same. + (varobj_get_attributes): Same. + (varobj_is_dynamic_p): Same. + (varobj_get_child_range): Same. + (varobj_value_has_mutated): Same. + (varobj_get_value_type): Same. + (number_of_children): Same. + (name_of_variable): Same. + (check_scope): Same. + (varobj_editable_p): Same. + (varobj_value_is_changeable_p): Same. + (varobj_floating_p): Same. + (varobj_default_value_is_changeable_p): Same. + 2015-01-30 Simon Marchi * varobj.c (varobj_get_path_expr): Set var->path_expr. diff --git a/gdb/ada-varobj.c b/gdb/ada-varobj.c index 690ee495a6..7407af473c 100644 --- a/gdb/ada-varobj.c +++ b/gdb/ada-varobj.c @@ -906,13 +906,13 @@ ada_varobj_get_value_of_variable (struct value *value, /* Ada specific callbacks for VAROBJs. */ static int -ada_number_of_children (struct varobj *var) +ada_number_of_children (const struct varobj *var) { return ada_varobj_get_number_of_children (var->value, var->type); } static char * -ada_name_of_variable (struct varobj *parent) +ada_name_of_variable (const struct varobj *parent) { return c_varobj_ops.name_of_variable (parent); } @@ -925,7 +925,7 @@ ada_name_of_child (struct varobj *parent, int index) } static char* -ada_path_expr_of_child (struct varobj *child) +ada_path_expr_of_child (const struct varobj *child) { struct varobj *parent = child->parent; const char *parent_path_expr = varobj_get_path_expr (parent); @@ -952,7 +952,8 @@ ada_type_of_child (struct varobj *parent, int index) } static char * -ada_value_of_variable (struct varobj *var, enum varobj_display_formats format) +ada_value_of_variable (const struct varobj *var, + enum varobj_display_formats format) { struct value_print_options opts; @@ -964,7 +965,7 @@ ada_value_of_variable (struct varobj *var, enum varobj_display_formats format) /* Implement the "value_is_changeable_p" routine for Ada. */ static int -ada_value_is_changeable_p (struct varobj *var) +ada_value_is_changeable_p (const struct varobj *var) { struct type *type = var->value ? value_type (var->value) : var->type; @@ -990,7 +991,7 @@ ada_value_is_changeable_p (struct varobj *var) /* Implement the "value_has_mutated" routine for Ada. */ static int -ada_value_has_mutated (struct varobj *var, struct value *new_val, +ada_value_has_mutated (const struct varobj *var, struct value *new_val, struct type *new_type) { int i; diff --git a/gdb/c-varobj.c b/gdb/c-varobj.c index bd0e5fb9d3..9394d7cafd 100644 --- a/gdb/c-varobj.c +++ b/gdb/c-varobj.c @@ -35,7 +35,7 @@ static void cplus_class_num_children (struct type *type, int children[3]); thing to do is to compare the child's name with ANONYMOUS_*_NAME. */ int -varobj_is_anonymous_child (struct varobj *child) +varobj_is_anonymous_child (const struct varobj *child) { return (strcmp (child->name, ANONYMOUS_STRUCT_NAME) == 0 || strcmp (child->name, ANONYMOUS_UNION_NAME) == 0); @@ -130,7 +130,7 @@ adjust_value_for_child_access (struct value **value, a valid path expression? */ static int -c_is_path_expr_parent (struct varobj *var) +c_is_path_expr_parent (const struct varobj *var) { struct type *type; @@ -179,7 +179,7 @@ c_is_path_expr_parent (struct varobj *var) /* C */ static int -c_number_of_children (struct varobj *var) +c_number_of_children (const struct varobj *var) { struct type *type = varobj_get_value_type (var); int children = 0; @@ -230,7 +230,7 @@ c_number_of_children (struct varobj *var) } static char * -c_name_of_variable (struct varobj *parent) +c_name_of_variable (const struct varobj *parent) { return xstrdup (parent->name); } @@ -431,7 +431,7 @@ c_name_of_child (struct varobj *parent, int index) } static char * -c_path_expr_of_child (struct varobj *child) +c_path_expr_of_child (const struct varobj *child) { char *path_expr; @@ -462,7 +462,7 @@ c_type_of_child (struct varobj *parent, int index) to return the real type of the variable. */ static struct type * -get_type (struct varobj *var) +get_type (const struct varobj *var) { struct type *type; @@ -474,7 +474,8 @@ get_type (struct varobj *var) } static char * -c_value_of_variable (struct varobj *var, enum varobj_display_formats format) +c_value_of_variable (const struct varobj *var, + enum varobj_display_formats format) { /* BOGUS: if val_print sees a struct/class, or a reference to one, it will print out its children instead of "{...}". So we need to @@ -558,7 +559,7 @@ enum vsections /* C++ */ static int -cplus_number_of_children (struct varobj *var) +cplus_number_of_children (const struct varobj *var) { struct value *value = NULL; struct type *type; @@ -671,7 +672,7 @@ cplus_class_num_children (struct type *type, int children[3]) } static char * -cplus_name_of_variable (struct varobj *parent) +cplus_name_of_variable (const struct varobj *parent) { return c_name_of_variable (parent); } @@ -906,7 +907,7 @@ cplus_name_of_child (struct varobj *parent, int index) } static char * -cplus_path_expr_of_child (struct varobj *child) +cplus_path_expr_of_child (const struct varobj *child) { char *path_expr; @@ -934,7 +935,7 @@ cplus_type_of_child (struct varobj *parent, int index) } static char * -cplus_value_of_variable (struct varobj *var, +cplus_value_of_variable (const struct varobj *var, enum varobj_display_formats format) { diff --git a/gdb/jv-varobj.c b/gdb/jv-varobj.c index 40c1b95c99..dbd92a629b 100644 --- a/gdb/jv-varobj.c +++ b/gdb/jv-varobj.c @@ -21,13 +21,13 @@ /* Java */ static int -java_number_of_children (struct varobj *var) +java_number_of_children (const struct varobj *var) { return cplus_varobj_ops.number_of_children (var); } static char * -java_name_of_variable (struct varobj *parent) +java_name_of_variable (const struct varobj *parent) { char *p, *name; @@ -66,7 +66,7 @@ java_name_of_child (struct varobj *parent, int index) } static char * -java_path_expr_of_child (struct varobj *child) +java_path_expr_of_child (const struct varobj *child) { return NULL; } @@ -84,7 +84,8 @@ java_type_of_child (struct varobj *parent, int index) } static char * -java_value_of_variable (struct varobj *var, enum varobj_display_formats format) +java_value_of_variable (const struct varobj *var, + enum varobj_display_formats format) { return cplus_varobj_ops.value_of_variable (var, format); } diff --git a/gdb/varobj.c b/gdb/varobj.c index 28d388e735..0daef91759 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -193,9 +193,9 @@ static int install_new_value (struct varobj *var, struct value *value, /* Language-specific routines. */ -static int number_of_children (struct varobj *); +static int number_of_children (const struct varobj *); -static char *name_of_variable (struct varobj *); +static char *name_of_variable (const struct varobj *); static char *name_of_child (struct varobj *, int); @@ -206,7 +206,7 @@ static struct value *value_of_child (struct varobj *parent, int index); static char *my_value_of_variable (struct varobj *var, enum varobj_display_formats format); -static int is_root_p (struct varobj *var); +static int is_root_p (const struct varobj *var); static struct varobj *varobj_add_child (struct varobj *var, struct varobj_item *item); @@ -230,7 +230,7 @@ static struct vlist **varobj_table; /* API Implementation */ static int -is_root_p (struct varobj *var) +is_root_p (const struct varobj *var) { return (var->root->rootvar == var); } @@ -239,7 +239,7 @@ is_root_p (struct varobj *var) /* Helper function to install a Python environment suitable for use during operations on VAR. */ struct cleanup * -varobj_ensure_python_env (struct varobj *var) +varobj_ensure_python_env (const struct varobj *var) { return ensure_python_env (var->root->exp->gdbarch, var->root->exp->language_defn); @@ -487,7 +487,7 @@ varobj_get_handle (char *objname) /* Given the handle, return the name of the object. */ char * -varobj_get_objname (struct varobj *var) +varobj_get_objname (const struct varobj *var) { return var->obj_name; } @@ -496,7 +496,7 @@ varobj_get_objname (struct varobj *var) result must be freed by the caller. */ char * -varobj_get_expression (struct varobj *var) +varobj_get_expression (const struct varobj *var) { return name_of_variable (var); } @@ -600,13 +600,13 @@ varobj_set_display_format (struct varobj *var, } enum varobj_display_formats -varobj_get_display_format (struct varobj *var) +varobj_get_display_format (const struct varobj *var) { return var->format; } char * -varobj_get_display_hint (struct varobj *var) +varobj_get_display_hint (const struct varobj *var) { char *result = NULL; @@ -630,7 +630,7 @@ varobj_get_display_hint (struct varobj *var) /* Return true if the varobj has items after TO, false otherwise. */ int -varobj_has_more (struct varobj *var, int to) +varobj_has_more (const struct varobj *var, int to) { if (VEC_length (varobj_p, var->children) > to) return 1; @@ -643,7 +643,7 @@ varobj_has_more (struct varobj *var, int to) inside that thread, returns GDB id of the thread -- which is always positive. Otherwise, returns -1. */ int -varobj_get_thread_id (struct varobj *var) +varobj_get_thread_id (const struct varobj *var) { if (var->root->valid_block && var->root->thread_id > 0) return var->root->thread_id; @@ -665,7 +665,7 @@ varobj_set_frozen (struct varobj *var, int frozen) } int -varobj_get_frozen (struct varobj *var) +varobj_get_frozen (const struct varobj *var) { return var->frozen; } @@ -741,7 +741,7 @@ install_dynamic_child (struct varobj *var, #if HAVE_PYTHON static int -dynamic_varobj_has_child_method (struct varobj *var) +dynamic_varobj_has_child_method (const struct varobj *var) { struct cleanup *back_to; PyObject *printer = var->dynamic->pretty_printer; @@ -991,7 +991,7 @@ varobj_get_type (struct varobj *var) /* Obtain the type of an object variable. */ struct type * -varobj_get_gdb_type (struct varobj *var) +varobj_get_gdb_type (const struct varobj *var) { return var->type; } @@ -1000,7 +1000,7 @@ varobj_get_gdb_type (struct varobj *var) a valid path expression? */ static int -is_path_expr_parent (struct varobj *var) +is_path_expr_parent (const struct varobj *var) { gdb_assert (var->root->lang_ops->is_path_expr_parent != NULL); return var->root->lang_ops->is_path_expr_parent (var); @@ -1011,7 +1011,7 @@ is_path_expr_parent (struct varobj *var) parent. */ int -varobj_default_is_path_expr_parent (struct varobj *var) +varobj_default_is_path_expr_parent (const struct varobj *var) { return 1; } @@ -1048,13 +1048,13 @@ varobj_get_path_expr (struct varobj *var) } const struct language_defn * -varobj_get_language (struct varobj *var) +varobj_get_language (const struct varobj *var) { return var->root->exp->language_defn; } int -varobj_get_attributes (struct varobj *var) +varobj_get_attributes (const struct varobj *var) { int attributes = 0; @@ -1068,7 +1068,7 @@ varobj_get_attributes (struct varobj *var) /* Return true if VAR is a dynamic varobj. */ int -varobj_is_dynamic_p (struct varobj *var) +varobj_is_dynamic_p (const struct varobj *var) { return var->dynamic->pretty_printer != NULL; } @@ -1517,7 +1517,7 @@ install_new_value (struct varobj *var, struct value *value, int initial) selected sub-range of VAR. If no range was selected using -var-set-update-range, then both will be -1. */ void -varobj_get_child_range (struct varobj *var, int *from, int *to) +varobj_get_child_range (const struct varobj *var, int *from, int *to) { *from = var->from; *to = var->to; @@ -1579,7 +1579,7 @@ varobj_set_visualizer (struct varobj *var, const char *visualizer) NEW_VALUE may be NULL, if the varobj is now out of scope. */ static int -varobj_value_has_mutated (struct varobj *var, struct value *new_value, +varobj_value_has_mutated (const struct varobj *var, struct value *new_value, struct type *new_type) { /* If we haven't previously computed the number of children in var, @@ -2209,7 +2209,7 @@ make_cleanup_free_variable (struct varobj *var) For example, top-level references are always stripped. */ struct type * -varobj_get_value_type (struct varobj *var) +varobj_get_value_type (const struct varobj *var) { struct type *type; @@ -2278,7 +2278,7 @@ cppop (struct cpstack **pstack) is the number of children that the user will see in the variable display. */ static int -number_of_children (struct varobj *var) +number_of_children (const struct varobj *var) { return (*var->root->lang_ops->number_of_children) (var); } @@ -2286,7 +2286,7 @@ number_of_children (struct varobj *var) /* What is the expression for the root varobj VAR? Returns a malloc'd string. */ static char * -name_of_variable (struct varobj *var) +name_of_variable (const struct varobj *var) { return (*var->root->lang_ops->name_of_variable) (var); } @@ -2303,7 +2303,7 @@ name_of_child (struct varobj *var, int index) to it and return 1. Otherwise, return 0. */ static int -check_scope (struct varobj *var) +check_scope (const struct varobj *var) { struct frame_info *fi; int scope; @@ -2514,7 +2514,7 @@ varobj_formatted_print_options (struct value_print_options *opts, char * varobj_value_get_print_value (struct value *value, enum varobj_display_formats format, - struct varobj *var) + const struct varobj *var) { struct ui_file *stb; struct cleanup *old_chain; @@ -2645,7 +2645,7 @@ varobj_value_get_print_value (struct value *value, } int -varobj_editable_p (struct varobj *var) +varobj_editable_p (const struct varobj *var) { struct type *type; @@ -2673,7 +2673,7 @@ varobj_editable_p (struct varobj *var) /* Call VAR's value_is_changeable_p language-specific callback. */ int -varobj_value_is_changeable_p (struct varobj *var) +varobj_value_is_changeable_p (const struct varobj *var) { return var->root->lang_ops->value_is_changeable_p (var); } @@ -2682,7 +2682,7 @@ varobj_value_is_changeable_p (struct varobj *var) selected frame, and not bound to thread/frame. Such variable objects are created using '@' as frame specifier to -var-create. */ int -varobj_floating_p (struct varobj *var) +varobj_floating_p (const struct varobj *var) { return var->root->floating; } @@ -2691,7 +2691,7 @@ varobj_floating_p (struct varobj *var) languages. */ int -varobj_default_value_is_changeable_p (struct varobj *var) +varobj_default_value_is_changeable_p (const struct varobj *var) { int r; struct type *type; diff --git a/gdb/varobj.h b/gdb/varobj.h index 796b940d49..750660af16 100644 --- a/gdb/varobj.h +++ b/gdb/varobj.h @@ -167,17 +167,17 @@ struct varobj struct lang_varobj_ops { /* The number of children of PARENT. */ - int (*number_of_children) (struct varobj *parent); + int (*number_of_children) (const struct varobj *parent); /* The name (expression) of a root varobj. */ - char *(*name_of_variable) (struct varobj *parent); + char *(*name_of_variable) (const struct varobj *parent); /* The name of the INDEX'th child of PARENT. */ char *(*name_of_child) (struct varobj *parent, int index); /* Returns the rooted expression of CHILD, which is a variable obtain that has some parent. */ - char *(*path_expr_of_child) (struct varobj *child); + char *(*path_expr_of_child) (const struct varobj *child); /* The ``struct value *'' of the INDEX'th child of PARENT. */ struct value *(*value_of_child) (struct varobj *parent, int index); @@ -186,7 +186,7 @@ struct lang_varobj_ops struct type *(*type_of_child) (struct varobj *parent, int index); /* The current value of VAR. */ - char *(*value_of_variable) (struct varobj *var, + char *(*value_of_variable) (const struct varobj *var, enum varobj_display_formats format); /* Return non-zero if changes in value of VAR must be detected and @@ -197,7 +197,7 @@ struct lang_varobj_ops Return value of 0 means that gdb need not call value_fetch_lazy for the value of this variable object. */ - int (*value_is_changeable_p) (struct varobj *var); + int (*value_is_changeable_p) (const struct varobj *var); /* Return nonzero if the type of VAR has mutated. @@ -211,14 +211,14 @@ struct lang_varobj_ops children is set (not < 0). Languages where types do not mutate can set this to NULL. */ - int (*value_has_mutated) (struct varobj *var, struct value *new_value, + int (*value_has_mutated) (const struct varobj *var, struct value *new_value, struct type *new_type); /* Return nonzero if VAR is a suitable path expression parent. For C like languages with anonymous structures and unions an anonymous structure or union is not a suitable parent. */ - int (*is_path_expr_parent) (struct varobj *var); + int (*is_path_expr_parent) (const struct varobj *var); }; extern const struct lang_varobj_ops c_varobj_ops; @@ -237,9 +237,9 @@ extern char *varobj_gen_name (void); extern struct varobj *varobj_get_handle (char *name); -extern char *varobj_get_objname (struct varobj *var); +extern char *varobj_get_objname (const struct varobj *var); -extern char *varobj_get_expression (struct varobj *var); +extern char *varobj_get_expression (const struct varobj *var); extern int varobj_delete (struct varobj *var, char ***dellist, int only_children); @@ -249,19 +249,20 @@ extern enum varobj_display_formats varobj_set_display_format ( enum varobj_display_formats format); extern enum varobj_display_formats varobj_get_display_format ( - struct varobj *var); + const struct varobj *var); -extern int varobj_get_thread_id (struct varobj *var); +extern int varobj_get_thread_id (const struct varobj *var); extern void varobj_set_frozen (struct varobj *var, int frozen); -extern int varobj_get_frozen (struct varobj *var); +extern int varobj_get_frozen (const struct varobj *var); -extern void varobj_get_child_range (struct varobj *var, int *from, int *to); +extern void varobj_get_child_range (const struct varobj *var, int *from, + int *to); extern void varobj_set_child_range (struct varobj *var, int from, int to); -extern char *varobj_get_display_hint (struct varobj *var); +extern char *varobj_get_display_hint (const struct varobj *var); extern int varobj_get_num_children (struct varobj *var); @@ -278,13 +279,14 @@ extern VEC (varobj_p)* varobj_list_children (struct varobj *var, extern char *varobj_get_type (struct varobj *var); -extern struct type *varobj_get_gdb_type (struct varobj *var); +extern struct type *varobj_get_gdb_type (const struct varobj *var); extern char *varobj_get_path_expr (struct varobj *var); -extern const struct language_defn *varobj_get_language (struct varobj *var); +extern const struct language_defn * + varobj_get_language (const struct varobj *var); -extern int varobj_get_attributes (struct varobj *var); +extern int varobj_get_attributes (const struct varobj *var); extern char *varobj_get_formatted_value (struct varobj *var, enum varobj_display_formats format); @@ -301,33 +303,33 @@ extern VEC(varobj_update_result) *varobj_update (struct varobj **varp, extern void varobj_invalidate (void); -extern int varobj_editable_p (struct varobj *var); +extern int varobj_editable_p (const struct varobj *var); -extern int varobj_floating_p (struct varobj *var); +extern int varobj_floating_p (const struct varobj *var); extern void varobj_set_visualizer (struct varobj *var, const char *visualizer); extern void varobj_enable_pretty_printing (void); -extern int varobj_has_more (struct varobj *var, int to); +extern int varobj_has_more (const struct varobj *var, int to); -extern int varobj_is_dynamic_p (struct varobj *var); +extern int varobj_is_dynamic_p (const struct varobj *var); -extern struct cleanup *varobj_ensure_python_env (struct varobj *var); +extern struct cleanup *varobj_ensure_python_env (const struct varobj *var); -extern int varobj_default_value_is_changeable_p (struct varobj *var); -extern int varobj_value_is_changeable_p (struct varobj *var); +extern int varobj_default_value_is_changeable_p (const struct varobj *var); +extern int varobj_value_is_changeable_p (const struct varobj *var); -extern struct type *varobj_get_value_type (struct varobj *var); +extern struct type *varobj_get_value_type (const struct varobj *var); -extern int varobj_is_anonymous_child (struct varobj *child); +extern int varobj_is_anonymous_child (const struct varobj *child); extern struct varobj *varobj_get_path_expr_parent (struct varobj *var); extern char *varobj_value_get_print_value (struct value *value, enum varobj_display_formats format, - struct varobj *var); + const struct varobj *var); extern void varobj_formatted_print_options (struct value_print_options *opts, enum varobj_display_formats format); @@ -335,6 +337,6 @@ extern void varobj_formatted_print_options (struct value_print_options *opts, extern void varobj_restrict_range (VEC (varobj_p) *children, int *from, int *to); -extern int varobj_default_is_path_expr_parent (struct varobj *var); +extern int varobj_default_is_path_expr_parent (const struct varobj *var); #endif /* VAROBJ_H */