From patchwork Mon Nov 28 21:28:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 61199 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0E6E7384F892 for ; Mon, 28 Nov 2022 21:29:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0E6E7384F892 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1669670962; bh=Pa3xe84EHgZym5qzZFr3Uo1f1LZ2mLorjD8usjv7/ac=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=svt3ytUydBryGX5MQLQTY6qpUfJYWs3qapXtYnOy8BHemN6d4ut5B1TaGqSqFVEMr 4S5X9Hm4aePnz9pfZWvH8B3hS89NlUGlGIlQEY01t1ZWLSpKpzJCwL8VDfSgtebm+X qxQhU8kie2ELZbCuJQmZVuVRTLX0iYVoZKnTumxE= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-io1-xd2a.google.com (mail-io1-xd2a.google.com [IPv6:2607:f8b0:4864:20::d2a]) by sourceware.org (Postfix) with ESMTPS id B566738582AB for ; Mon, 28 Nov 2022 21:28:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B566738582AB Received: by mail-io1-xd2a.google.com with SMTP id r81so8671449iod.2 for ; Mon, 28 Nov 2022 13:28:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Pa3xe84EHgZym5qzZFr3Uo1f1LZ2mLorjD8usjv7/ac=; b=YSLk/CwPe/PThae5QvHuG+yopT6JQrGzXwMLeozjtCv2Pir1oKfH9LbEx5YRoBzhBD 8WB816PYKJV87DgSqaMsCfrmkCwl09N46yQjv2mwKQwD1DHMpTBy1XL7VUMg5zcClzbQ InsgqPdoo4tAFBnrA9eYMehr3NihH5rr2supzAH4Ux4XCzxwr0rwXEkhOk0K/CcYgkAm vCByxbJRR9wSztquTl77td5Wj4yg7UQdSDVLI7B6IPQbIUhUGGEH9bu8lc1buJMTs/dk 5z4HZJHfyJrLUpfFzWWzJ3gL9zhjtr8+EhmLTJ1VstKVg+bltSU3g1A+CQs387BJykxz PYcQ== X-Gm-Message-State: ANoB5pm8zyuJXa6SKdKnwyWv63RbDX+wTJcM66WeG90RCexsbi2NyXjw 7aqjT5E/4gDUoR7KO/GLxGO8K5oY25w9Cw== X-Google-Smtp-Source: AA0mqf6TZSwiPLQ20d5I/s4VY31KQrEM2IWFc6OthP91B/2WjWDutf2KmJ8qJwGL12YGGgLbwwQKuA== X-Received: by 2002:a6b:f105:0:b0:6d8:de87:e281 with SMTP id e5-20020a6bf105000000b006d8de87e281mr15874974iog.132.1669670936006; Mon, 28 Nov 2022 13:28:56 -0800 (PST) Received: from localhost.localdomain (97-122-76-186.hlrn.qwest.net. [97.122.76.186]) by smtp.gmail.com with ESMTPSA id i9-20020a056e021b0900b002f956529892sm3979604ilv.2.2022.11.28.13.28.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Nov 2022 13:28:55 -0800 (PST) To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH 2/2] Use ui_file_up in mi_interp Date: Mon, 28 Nov 2022 14:28:45 -0700 Message-Id: <20221128212845.2397077-3-tromey@adacore.com> X-Mailer: git-send-email 2.34.3 In-Reply-To: <20221128212845.2397077-1-tromey@adacore.com> References: <20221128212845.2397077-1-tromey@adacore.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, 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 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tom Tromey via Gdb-patches From: Tom Tromey Reply-To: Tom Tromey Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" This changes mi_interp to use ui_file_up rather than explicit management. --- gdb/mi/mi-interp.c | 10 ++++------ gdb/mi/mi-interp.h | 4 ++-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c index 482166ea3a5..3cc2462f672 100644 --- a/gdb/mi/mi-interp.c +++ b/gdb/mi/mi-interp.c @@ -1276,7 +1276,7 @@ mi_interp::set_logging (ui_file_up logfile, bool logging_redirect, mi->saved_raw_stdout = mi->raw_stdout; ui_file *logfile_p = logfile.get (); - mi->saved_raw_file_to_delete = logfile.release (); + mi->logfile_holder = std::move (logfile); /* If something is not being redirected, then a tee containing both the logfile and stdout. */ @@ -1284,19 +1284,17 @@ mi_interp::set_logging (ui_file_up logfile, bool logging_redirect, if (!logging_redirect || !debug_redirect) { tee = new tee_file (mi->raw_stdout, logfile_p); - mi->saved_tee_to_delete = tee; + mi->stdout_holder.reset (tee); } mi->raw_stdout = logging_redirect ? logfile_p : tee; } else { - delete mi->saved_raw_file_to_delete; - delete mi->saved_tee_to_delete; + mi->logfile_holder.reset (); + mi->stdout_holder.reset (); mi->raw_stdout = mi->saved_raw_stdout; mi->saved_raw_stdout = nullptr; - mi->saved_raw_file_to_delete = nullptr; - mi->saved_tee_to_delete = nullptr; } mi->out->set_raw (mi->raw_stdout); diff --git a/gdb/mi/mi-interp.h b/gdb/mi/mi-interp.h index d118ffb41e5..6b6e1f70220 100644 --- a/gdb/mi/mi-interp.h +++ b/gdb/mi/mi-interp.h @@ -56,8 +56,8 @@ class mi_interp final : public interp file which we need to delete, so we can restore correctly when done. */ struct ui_file *saved_raw_stdout; - struct ui_file *saved_raw_file_to_delete; - struct ui_file *saved_tee_to_delete; + ui_file_up logfile_holder; + ui_file_up stdout_holder; /* MI's builder. */ struct ui_out *mi_uiout;