From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gproxy2-pub.mail.unifiedlayer.com (gproxy2-pub.mail.unifiedlayer.com [69.89.18.3]) by sourceware.org (Postfix) with ESMTPS id A23CA3857C71 for ; Mon, 13 Feb 2023 03:15:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A23CA3857C71 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com Received: from cmgw13.mail.unifiedlayer.com (unknown [10.0.90.128]) by progateway4.mail.pro1.eigbox.com (Postfix) with ESMTP id 22B8710047A53 for ; Mon, 13 Feb 2023 03:15:28 +0000 (UTC) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTP id RPJQp0gygNX2aRPJQplLQy; Mon, 13 Feb 2023 03:15:28 +0000 X-Authority-Reason: nr=8 X-Authority-Analysis: v=2.4 cv=NMAQR22g c=1 sm=1 tr=0 ts=63e9ab50 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10:nop_charset_1 a=m04uMKEZRckA:10:nop_rcvd_month_year a=Qbun_eYptAEA:10:endurance_base64_authed_username_1 a=7d_E57ReAAAA:8 a=qtMQLzDYSch0TcJbGsUA:9 a=QEXdDO2ut3YA:10:nop_charset_2 a=jhqOcbufqs7Y1TYCrUUU:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=7OAb3SHvXjXwB+lhI21II+ujZpco7Dm+BXZ6zFpGJVM=; b=x2d5QPVNTT4u0u7wTYtsADfLXh Ura+GbvmkKg/U+xC7z0GIRQYkC+5Xb/D87qyOzR3HvGtdtNWWwP+fVbqSNJWgOeym4ZJdwT71ttdL 6F0Oh0snFq0sWOOOFe3WKithj; Received: from 75-166-130-93.hlrn.qwest.net ([75.166.130.93]:37668 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1pRPJP-001AGJ-SD; Sun, 12 Feb 2023 20:15:27 -0700 From: Tom Tromey Date: Sun, 12 Feb 2023 20:15:33 -0700 Subject: [PATCH v3 17/50] Turn value_computed_closure and value_computed_funcs functions into methods MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230209-submit-value-fixups-2023-v3-17-45e91a20c742@tromey.com> References: <20230209-submit-value-fixups-2023-v3-0-45e91a20c742@tromey.com> In-Reply-To: <20230209-submit-value-fixups-2023-v3-0-45e91a20c742@tromey.com> To: gdb-patches@sourceware.org Cc: Simon Marchi X-Mailer: b4 0.12.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 75.166.130.93 X-Source-L: No X-Exim-ID: 1pRPJP-001AGJ-SD X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 75-166-130-93.hlrn.qwest.net ([192.168.0.21]) [75.166.130.93]:37668 X-Source-Auth: tom+tromey.com X-Email-Count: 37 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3027.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,JMQ_SPF_NEUTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This changes the value_computed_funcs and value_computed_closure functions to be methods of value. Approved-By: Simon Marchi --- gdb/dwarf2/expr.c | 12 ++++++------ gdb/dwarf2/loc.c | 6 +++--- gdb/opencl-lang.c | 10 +++++----- gdb/valops.c | 4 ++-- gdb/value.c | 18 +++++++++--------- gdb/value.h | 18 +++++++++--------- 6 files changed, 34 insertions(+), 34 deletions(-) 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. */ -- 2.39.1