diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2015-01-30 15:07:15 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2015-01-30 15:07:15 -0500 |
commit | b09e2c591f9221d865bfe8425990a6bf9fab24e3 (patch) | |
tree | 5eb134941461eed2e533f31e582e559793dd598f /gdb/ada-varobj.c | |
parent | 2568868e69f710e470c8698a34010daf36500a30 (diff) | |
download | fsf-binutils-gdb-b09e2c591f9221d865bfe8425990a6bf9fab24e3.zip fsf-binutils-gdb-b09e2c591f9221d865bfe8425990a6bf9fab24e3.tar.gz fsf-binutils-gdb-b09e2c591f9221d865bfe8425990a6bf9fab24e3.tar.bz2 |
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/ada-varobj.c')
-rw-r--r-- | gdb/ada-varobj.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gdb/ada-varobj.c b/gdb/ada-varobj.c index 690ee49..7407af4 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; |