diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2015-02-10 10:46:12 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2015-02-10 12:57:47 -0500 |
commit | c1cc6152620563bbe861cfc2fa0a796e71ca87b5 (patch) | |
tree | e4f79bb5c6f7e33e255ac0d6648bc567156ef34c /gdb/varobj.c | |
parent | 834f871cdc6e5d9f5bda9ce607fd3c47f41a2ade (diff) | |
download | gdb-c1cc6152620563bbe861cfc2fa0a796e71ca87b5.zip gdb-c1cc6152620563bbe861cfc2fa0a796e71ca87b5.tar.gz gdb-c1cc6152620563bbe861cfc2fa0a796e71ca87b5.tar.bz2 |
Finish constification of varobj interface
This completes the constification of the struct varobj pointers in the
lang_varobj_ops interface partially done in
b09e2c591f9221d865bfe8425990a6bf9fab24e3. As suggested by Pedro,
varobj_get_path_expr casts away the const to assign the "mutable" struct
member.
gdb/ChangeLog:
* ada-varobj.c (ada_name_of_child): Constify parent.
(ada_path_expr_of_child): Same.
(ada_value_of_child): Same.
(ada_type_of_child): Same.
* c-varobj.c (c_is_path_expr_parent): Same.
(c_describe_child): Same.
(c_name_of_child): Same.
(c_value_of_child): Same.
(c_type_of_child): Same.
(cplus_number_of_children): Same.
(cplus_describe_child): Constify var.
(cplus_name_of_child): Constify parent.
(cplus_value_of_child): Same.
(cplus_type_of_child): Same.
* jv-varobj.c (java_name_of_child): Same.
(java_value_of_child): Same.
(java_type_of_child): Same.
* varobj.c (value_of_child): Same.
(varobj_default_is_path_expr_parent): Constify var, parent and return
value.
(varobj_get_path_expr): Constify var, modify path_expr through
mutable_var.
(install_new_value): Constify parent.
(value_of_child): Constify parent.
* varobj.h (struct varobj): Constify parent.
(struct lang_varobj_ops): Constify name_of_child, value_of_child and
type_of_child.
(varobj_get_path_expr): Constify var.
(varobj_get_path_expr_parent): Constify var and return value.
Diffstat (limited to 'gdb/varobj.c')
-rw-r--r-- | gdb/varobj.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/gdb/varobj.c b/gdb/varobj.c index 268ba3c..43ea96f 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -201,7 +201,7 @@ static char *name_of_child (struct varobj *, int); static struct value *value_of_root (struct varobj **var_handle, int *); -static struct value *value_of_child (struct varobj *parent, int index); +static struct value *value_of_child (const struct varobj *parent, int index); static char *my_value_of_variable (struct varobj *var, enum varobj_display_formats format); @@ -1019,10 +1019,10 @@ varobj_default_is_path_expr_parent (const struct varobj *var) /* Return the path expression parent for VAR. */ -struct varobj * -varobj_get_path_expr_parent (struct varobj *var) +const struct varobj * +varobj_get_path_expr_parent (const struct varobj *var) { - struct varobj *parent = var; + const struct varobj *parent = var; while (!is_root_p (parent) && !is_path_expr_parent (parent)) parent = parent->parent; @@ -1033,16 +1033,17 @@ varobj_get_path_expr_parent (struct varobj *var) /* Return a pointer to the full rooted expression of varobj VAR. If it has not been computed yet, compute it. */ char * -varobj_get_path_expr (struct varobj *var) +varobj_get_path_expr (const struct varobj *var) { if (var->path_expr == NULL) { /* For root varobjs, we initialize path_expr when creating varobj, so here it should be child varobj. */ + struct varobj *mutable_var = (struct varobj *) var; gdb_assert (!is_root_p (var)); - var->path_expr = (*var->root->lang_ops->path_expr_of_child) (var); + mutable_var->path_expr = (*var->root->lang_ops->path_expr_of_child) (var); } return var->path_expr; @@ -1378,7 +1379,7 @@ install_new_value (struct varobj *var, struct value *value, int initial) will be lazy, which means we've lost that old value. */ if (need_to_fetch && value && value_lazy (value)) { - struct varobj *parent = var->parent; + const struct varobj *parent = var->parent; int frozen = var->frozen; for (; !frozen && parent; parent = parent->parent) @@ -2483,7 +2484,7 @@ value_of_root (struct varobj **var_handle, int *type_changed) /* What is the ``struct value *'' for the INDEX'th child of PARENT? */ static struct value * -value_of_child (struct varobj *parent, int index) +value_of_child (const struct varobj *parent, int index) { struct value *value; |