(Ada) Cleanup code by using ada_is_access_to_unconstrained_array call.

This patch just avoids code duplication by using a function we
introduced recently (ada_is_access_to_unconstrained_array).

gdb/ChangeLog:

    * ada-lang.c (ada_is_access_to_unconstrained_array): Remove static
    declaration.
    * ada-lang.h: add ada_is_access_to_unconstrained_array prototype.
    * ada-varobj.c (ada_varobj_get_number_of_children,
    ada_varobj_describe_child, ada_value_is_changeable_p): Cleanup code.

Tested on x86_64-linux.
No new testcase provided, as this is just a refactoring.
This commit is contained in:
Xavier Roirand 2018-09-10 10:35:58 -05:00 committed by Joel Brobecker
parent cc330e39bc
commit d91e9ea81d
4 changed files with 14 additions and 7 deletions

View File

@ -1,3 +1,11 @@
2018-09-10 Xavier Roirand <roirand@adacore.com>
* ada-lang.c (ada_is_access_to_unconstrained_array): Remove static
declaration.
* ada-lang.h: add ada_is_access_to_unconstrained_array prototype.
* ada-varobj.c (ada_varobj_get_number_of_children,
ada_varobj_describe_child, ada_value_is_changeable_p): Cleanup code.
2018-09-10 Xavier Roirand <roirand@adacore.com> 2018-09-10 Xavier Roirand <roirand@adacore.com>
* ada-valprint.c (ada_value_print): Use type instead of * ada-valprint.c (ada_value_print): Use type instead of

View File

@ -2834,7 +2834,7 @@ value_assign_to_component (struct value *container, struct value *component,
/* Determine if TYPE is an access to an unconstrained array. */ /* Determine if TYPE is an access to an unconstrained array. */
static bool bool
ada_is_access_to_unconstrained_array (struct type *type) ada_is_access_to_unconstrained_array (struct type *type)
{ {
return (TYPE_CODE (type) == TYPE_CODE_TYPEDEF return (TYPE_CODE (type) == TYPE_CODE_TYPEDEF

View File

@ -194,6 +194,8 @@ extern void ada_printstr (struct ui_file *, struct type *, const gdb_byte *,
struct value *ada_convert_actual (struct value *actual, struct value *ada_convert_actual (struct value *actual,
struct type *formal_type0); struct type *formal_type0);
extern bool ada_is_access_to_unconstrained_array (struct type *type);
extern struct value *ada_value_subscript (struct value *, int, extern struct value *ada_value_subscript (struct value *, int,
struct value **); struct value **);

View File

@ -350,8 +350,7 @@ ada_varobj_get_number_of_children (struct value *parent_value,
/* A typedef to an array descriptor in fact represents a pointer /* A typedef to an array descriptor in fact represents a pointer
to an unconstrained array. These types always have one child to an unconstrained array. These types always have one child
(the unconstrained array). */ (the unconstrained array). */
if (ada_is_array_descriptor_type (parent_type) if (ada_is_access_to_unconstrained_array (parent_type))
&& TYPE_CODE (parent_type) == TYPE_CODE_TYPEDEF)
return 1; return 1;
if (TYPE_CODE (parent_type) == TYPE_CODE_ARRAY) if (TYPE_CODE (parent_type) == TYPE_CODE_ARRAY)
@ -680,8 +679,7 @@ ada_varobj_describe_child (struct value *parent_value,
if (child_path_expr) if (child_path_expr)
*child_path_expr = std::string (); *child_path_expr = std::string ();
if (ada_is_array_descriptor_type (parent_type) if (ada_is_access_to_unconstrained_array (parent_type))
&& TYPE_CODE (parent_type) == TYPE_CODE_TYPEDEF)
{ {
ada_varobj_describe_ptr_child (parent_value, parent_type, ada_varobj_describe_ptr_child (parent_value, parent_type,
parent_name, parent_path_expr, parent_name, parent_path_expr,
@ -937,8 +935,7 @@ ada_value_is_changeable_p (const struct varobj *var)
struct type *type = (var->value != nullptr struct type *type = (var->value != nullptr
? value_type (var->value.get ()) : var->type); ? value_type (var->value.get ()) : var->type);
if (ada_is_array_descriptor_type (type) if (ada_is_access_to_unconstrained_array (type))
&& TYPE_CODE (type) == TYPE_CODE_TYPEDEF)
{ {
/* This is in reality a pointer to an unconstrained array. /* This is in reality a pointer to an unconstrained array.
its value is changeable. */ its value is changeable. */