From patchwork Thu Jan 29 19:28:34 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 4849 Received: (qmail 16069 invoked by alias); 29 Jan 2015 19:29:00 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 16016 invoked by uid 89); 29 Jan 2015 19:28:59 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL, BAYES_00, SPF_PASS autolearn=ham version=3.3.2 X-HELO: usevmg20.ericsson.net Received: from usevmg20.ericsson.net (HELO usevmg20.ericsson.net) (198.24.6.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Thu, 29 Jan 2015 19:28:49 +0000 Received: from EUSAAHC005.ericsson.se (Unknown_Domain [147.117.188.87]) by usevmg20.ericsson.net (Symantec Mail Security) with SMTP id FA.85.03307.3F63AC45; Thu, 29 Jan 2015 14:34:43 +0100 (CET) Received: from elxcz23q12-y4.mo.ca.am.ericsson.se (147.117.188.8) by smtps-am.internal.ericsson.com (147.117.188.87) with Microsoft SMTP Server (TLS) id 14.3.195.1; Thu, 29 Jan 2015 14:28:41 -0500 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 4/6] Constify some parameters in the varobj code Date: Thu, 29 Jan 2015 14:28:34 -0500 Message-ID: <1422559716-5480-4-git-send-email-simon.marchi@ericsson.com> In-Reply-To: <1422559716-5480-1-git-send-email-simon.marchi@ericsson.com> References: <1422559716-5480-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-IsSubscribed: yes 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. --- gdb/ada-varobj.c | 12 ++++++------ gdb/c-varobj.c | 22 ++++++++++----------- gdb/jv-varobj.c | 8 ++++---- gdb/varobj.c | 60 ++++++++++++++++++++++++++++---------------------------- gdb/varobj.h | 56 ++++++++++++++++++++++++++-------------------------- 5 files changed, 79 insertions(+), 79 deletions(-) diff --git a/gdb/ada-varobj.c b/gdb/ada-varobj.c index 690ee49..3ecac9d 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,7 @@ 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 +964,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 +990,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..c706eb0 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,7 @@ 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 +558,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 +671,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 +906,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 +934,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..1ad13cd 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,7 @@ 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 145b963..8678889 100644 --- a/gdb/varobj.h +++ b/gdb/varobj.h @@ -167,11 +167,11 @@ 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. The returned value must be freed by the caller. */ - char *(*name_of_variable) (struct varobj *parent); + char *(*name_of_variable) (const struct varobj *parent); /* The name of the INDEX'th child of PARENT. The returned value must be freed by the caller. */ @@ -180,7 +180,7 @@ struct lang_varobj_ops /* Returns the rooted expression of CHILD, which is a variable obtain that has some parent. The returned value must be freed by the caller. */ - 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. The returned value must be freed by the caller. */ @@ -191,7 +191,7 @@ struct lang_varobj_ops /* The current value of VAR. The returned value must be freed by the caller. */ - 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 @@ -202,7 +202,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. @@ -216,14 +216,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; @@ -242,9 +242,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); @@ -254,19 +254,19 @@ 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); @@ -283,13 +283,13 @@ 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); @@ -306,33 +306,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); @@ -340,6 +340,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 */