aboutsummaryrefslogtreecommitdiff
path: root/gdb/varobj.c
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@ericsson.com>2015-02-10 10:46:12 -0500
committerSimon Marchi <simon.marchi@ericsson.com>2015-02-10 12:57:47 -0500
commitc1cc6152620563bbe861cfc2fa0a796e71ca87b5 (patch)
treee4f79bb5c6f7e33e255ac0d6648bc567156ef34c /gdb/varobj.c
parent834f871cdc6e5d9f5bda9ce607fd3c47f41a2ade (diff)
downloadgdb-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.c17
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;