aboutsummaryrefslogtreecommitdiff
path: root/gdb/c-varobj.c
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@ericsson.com>2015-01-30 15:07:15 -0500
committerSimon Marchi <simon.marchi@ericsson.com>2015-01-30 15:07:15 -0500
commitb09e2c591f9221d865bfe8425990a6bf9fab24e3 (patch)
tree5eb134941461eed2e533f31e582e559793dd598f /gdb/c-varobj.c
parent2568868e69f710e470c8698a34010daf36500a30 (diff)
Constify some parameters in the varobj code
To make it clear that some functions should not modify the variable object, this patch adds the const qualifier where it makes sense to some struct varobj * parameters. Most getters should take a const pointer to guarantee they don't modify the object. Unfortunately, I couldn't add it to some callbacks (such as name_of_child). In the C implementation, they call c_describe_child, which calls varobj_get_path_expr. varobj_get_path_expr needs to modify the object in order to cache the computed value. It therefore can't take a const pointer, and it affects the whole call chain. I suppose that's where you would use a "mutable" in C++. I did that to make sure there was no other cases like the one fixed in the previous patch. I don't think it can hurt. gdb/ChangeLog: * 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. * varobj.h (struct lang_varobj_ops): Consitfy some struct varobj * parameters. (varobj_get_objname): Constify struct varobj * parameter. (varobj_get_expression): Same. (varobj_get_thread_id): Same. (varobj_get_frozen): Same. (varobj_get_child_range): Same. (varobj_get_display_hint): Same. (varobj_get_gdb_type): Same. (varobj_get_language): Same. (varobj_get_attributes): Same. (varobj_editable_p): Same. (varobj_floating_p): Same. (varobj_has_more): Same. (varobj_is_dynamic_p): Same. (varobj_ensure_python_env): Same. (varobj_default_value_is_changeable_p): Same. (varobj_value_is_changeable_p): Same. (varobj_get_value_type): Same. (varobj_is_anonymous_child): Same. (varobj_value_get_print_value): Same. (varobj_default_is_path_expr_parent): Same.
Diffstat (limited to 'gdb/c-varobj.c')
-rw-r--r--gdb/c-varobj.c23
1 files changed, 12 insertions, 11 deletions
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)
{