From: Tom Tromey Date: Tue, 31 Jan 2023 19:12:39 +0000 (-0700) Subject: Turn value_computed_closure and value_computed_funcs functions into methods X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b9f74d5432ffeef0e2281cb09c28d4b6d0371603;p=binutils-gdb.git Turn value_computed_closure and value_computed_funcs functions into methods This changes the value_computed_funcs and value_computed_closure functions to be methods of value. Approved-By: Simon Marchi --- diff --git a/gdb/dwarf2/expr.c b/gdb/dwarf2/expr.c index 292ac8bb559..8d845e892e3 100644 --- a/gdb/dwarf2/expr.c +++ b/gdb/dwarf2/expr.c @@ -149,7 +149,7 @@ rw_pieced_value (value *v, value *from, bool check_optimized) gdb_byte *v_contents; const gdb_byte *from_contents; piece_closure *c - = (piece_closure *) value_computed_closure (v); + = (piece_closure *) v->computed_closure (); gdb::byte_vector buffer; bool bits_big_endian = type_byte_order (v->type ()) == BFD_ENDIAN_BIG; @@ -463,7 +463,7 @@ static int check_pieced_synthetic_pointer (const value *value, LONGEST bit_offset, int bit_length) { - piece_closure *c = (piece_closure *) value_computed_closure (value); + piece_closure *c = (piece_closure *) value->computed_closure (); int i; bit_offset += 8 * value->offset (); @@ -503,7 +503,7 @@ static value * indirect_pieced_value (value *value) { piece_closure *c - = (piece_closure *) value_computed_closure (value); + = (piece_closure *) value->computed_closure (); int i; dwarf_expr_piece *piece = NULL; @@ -580,7 +580,7 @@ coerce_pieced_ref (const value *value) TARGET_CHAR_BIT * type->length ())) { const piece_closure *closure - = (piece_closure *) value_computed_closure (value); + = (piece_closure *) value->computed_closure (); frame_info_ptr frame = get_selected_frame (_("No frame selected.")); @@ -604,7 +604,7 @@ coerce_pieced_ref (const value *value) static void * copy_pieced_value_closure (const value *v) { - piece_closure *c = (piece_closure *) value_computed_closure (v); + piece_closure *c = (piece_closure *) v->computed_closure (); ++c->refc; return c; @@ -613,7 +613,7 @@ copy_pieced_value_closure (const value *v) static void free_pieced_value_closure (value *v) { - piece_closure *c = (piece_closure *) value_computed_closure (v); + piece_closure *c = (piece_closure *) v->computed_closure (); --c->refc; if (c->refc == 0) diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c index e5b35b8aadb..e975f280cfc 100644 --- a/gdb/dwarf2/loc.c +++ b/gdb/dwarf2/loc.c @@ -1279,7 +1279,7 @@ entry_data_value_coerce_ref (const struct value *value) if (!TYPE_IS_REFERENCE (checked_type)) return NULL; - target_val = (struct value *) value_computed_closure (value); + target_val = (struct value *) value->computed_closure (); value_incref (target_val); return target_val; } @@ -1289,7 +1289,7 @@ entry_data_value_coerce_ref (const struct value *value) static void * entry_data_value_copy_closure (const struct value *v) { - struct value *target_val = (struct value *) value_computed_closure (v); + struct value *target_val = (struct value *) v->computed_closure (); value_incref (target_val); return target_val; @@ -1300,7 +1300,7 @@ entry_data_value_copy_closure (const struct value *v) static void entry_data_value_free_closure (struct value *v) { - struct value *target_val = (struct value *) value_computed_closure (v); + struct value *target_val = (struct value *) v->computed_closure (); value_decref (target_val); } diff --git a/gdb/opencl-lang.c b/gdb/opencl-lang.c index 8c59e823d5c..f7a22b35931 100644 --- a/gdb/opencl-lang.c +++ b/gdb/opencl-lang.c @@ -119,7 +119,7 @@ allocate_lval_closure (int *indices, int n, struct value *val) static void lval_func_read (struct value *v) { - struct lval_closure *c = (struct lval_closure *) value_computed_closure (v); + struct lval_closure *c = (struct lval_closure *) v->computed_closure (); struct type *type = check_typedef (v->type ()); struct type *eltype = check_typedef (c->val->type ())->target_type (); LONGEST offset = v->offset (); @@ -149,7 +149,7 @@ lval_func_write (struct value *v, struct value *fromval) { scoped_value_mark mark; - struct lval_closure *c = (struct lval_closure *) value_computed_closure (v); + struct lval_closure *c = (struct lval_closure *) v->computed_closure (); struct type *type = check_typedef (v->type ()); struct type *eltype = check_typedef (c->val->type ())->target_type (); LONGEST offset = v->offset (); @@ -194,7 +194,7 @@ static int lval_func_check_synthetic_pointer (const struct value *v, LONGEST offset, int length) { - struct lval_closure *c = (struct lval_closure *) value_computed_closure (v); + struct lval_closure *c = (struct lval_closure *) v->computed_closure (); /* Size of the target type in bits. */ int elsize = check_typedef (c->val->type ())->target_type ()->length () * 8; @@ -227,7 +227,7 @@ lval_func_check_synthetic_pointer (const struct value *v, static void * lval_func_copy_closure (const struct value *v) { - struct lval_closure *c = (struct lval_closure *) value_computed_closure (v); + struct lval_closure *c = (struct lval_closure *) v->computed_closure (); ++c->refc; @@ -237,7 +237,7 @@ lval_func_copy_closure (const struct value *v) static void lval_func_free_closure (struct value *v) { - struct lval_closure *c = (struct lval_closure *) value_computed_closure (v); + struct lval_closure *c = (struct lval_closure *) v->computed_closure (); --c->refc; diff --git a/gdb/valops.c b/gdb/valops.c index 7e3fca30af2..0d321e81027 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -1273,7 +1273,7 @@ value_assign (struct value *toval, struct value *fromval) case lval_computed: { - const struct lval_funcs *funcs = value_computed_funcs (toval); + const struct lval_funcs *funcs = toval->computed_funcs (); if (funcs->write != NULL) { @@ -1639,7 +1639,7 @@ value_ind (struct value *arg1) if (VALUE_LVAL (arg1) == lval_computed) { - const struct lval_funcs *funcs = value_computed_funcs (arg1); + const struct lval_funcs *funcs = arg1->computed_funcs (); if (funcs->indirect) { diff --git a/gdb/value.c b/gdb/value.c index b09ee9bd2d4..b26d4cd8f11 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -1383,19 +1383,19 @@ value_bits_synthetic_pointer (const struct value *value, } const struct lval_funcs * -value_computed_funcs (const struct value *v) +value::computed_funcs () const { - gdb_assert (value_lval_const (v) == lval_computed); + gdb_assert (m_lval == lval_computed); - return v->m_location.computed.funcs; + return m_location.computed.funcs; } void * -value_computed_closure (const struct value *v) +value::computed_closure () const { - gdb_assert (v->m_lval == lval_computed); + gdb_assert (m_lval == lval_computed); - return v->m_location.computed.closure; + return m_location.computed.closure; } enum lval_type * @@ -3697,7 +3697,7 @@ coerce_ref_if_computed (const struct value *arg) if (value_lval_const (arg) != lval_computed) return NULL; - funcs = value_computed_funcs (arg); + funcs = arg->computed_funcs (); if (funcs->coerce_ref == NULL) return NULL; @@ -4025,8 +4025,8 @@ value_fetch_lazy (struct value *val) else if (VALUE_LVAL (val) == lval_register) value_fetch_lazy_register (val); else if (VALUE_LVAL (val) == lval_computed - && value_computed_funcs (val)->read != NULL) - value_computed_funcs (val)->read (val); + && val->computed_funcs ()->read != NULL) + val->computed_funcs ()->read (val); else internal_error (_("Unexpected lazy value type.")); diff --git a/gdb/value.h b/gdb/value.h index 73783f8c3a5..a0455ed5809 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -301,6 +301,15 @@ struct value void set_stack (int val) { m_stack = val; } + /* If this value is lval_computed, return its lval_funcs + structure. */ + const struct lval_funcs *computed_funcs () const; + + /* If this value is lval_computed, return its closure. The meaning + of the returned value depends on the functions this value + uses. */ + void *computed_closure () const; + /* Type of value; either not an lval, or one of the various different possible kinds of lval. */ @@ -565,15 +574,6 @@ extern struct value *allocate_computed_value (struct type *type, extern struct value *allocate_optimized_out_value (struct type *type); -/* If VALUE is lval_computed, return its lval_funcs structure. */ - -extern const struct lval_funcs *value_computed_funcs (const struct value *); - -/* If VALUE is lval_computed, return its closure. The meaning of the - returned value depends on the functions VALUE uses. */ - -extern void *value_computed_closure (const struct value *value); - /* Throw an error complaining that the value has been optimized out. */