aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog53
-rw-r--r--gdb/ada-varobj.c13
-rw-r--r--gdb/c-varobj.c23
-rw-r--r--gdb/jv-varobj.c9
-rw-r--r--gdb/varobj.c60
-rw-r--r--gdb/varobj.h58
6 files changed, 137 insertions, 79 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3385cfa..35da6b6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,58 @@
2015-01-30 Simon Marchi <simon.marchi@ericsson.com>
+ * 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 <simon.marchi@ericsson.com>
+
* varobj.c (varobj_get_path_expr): Set var->path_expr.
* c-varobj.c (c_path_expr_of_child): Set local var instead of
child->path_expr.
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;
diff --git a/gdb/c-varobj.c b/gdb/c-varobj.c
index bd0e5fb..9394d7c 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 40c1b95..dbd92a6 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 28d388e..0daef91 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 796b940..750660a 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 */