From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 61691 invoked by alias); 23 Jan 2019 15:21:36 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 59305 invoked by uid 89); 23 Jan 2019 15:21:35 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-11.9 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=Series, esc, ESC, worry X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 23 Jan 2019 15:21:34 +0000 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2631FC050008; Wed, 23 Jan 2019 15:21:33 +0000 (UTC) Received: from localhost.localdomain (ovpn04.gateway.prod.ext.ams2.redhat.com [10.39.146.4]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3D1A067143; Wed, 23 Jan 2019 15:21:32 +0000 (UTC) From: Pedro Alves To: gdb-patches@sourceware.org Cc: Tom Tromey , Andrew Burgess Subject: [PATCH v3 00/17] Remove some cleanups using scope_exit Date: Wed, 23 Jan 2019 15:21:00 -0000 Message-Id: <20190123152131.29893-1-palves@redhat.com> X-SW-Source: 2019-01/txt/msg00502.txt.bz2 Here's the new version of Tromey's "cleanup function" series, updated to use the new scope_exit instead. v1 was here: https://sourceware.org/ml/gdb-patches/2019-01/msg00159.html I'm calling Andrew's patches the "v2": https://sourceware.org/ml/gdb-patches/2019-01/msg00273.html The discussion around "v2" led to this version. New in v3: - cleanup_function is replaced with a new scope_exit template class. scope_exit is a general-purpose scope guard that calls its exit function at the end of the current scope. Unlike the original cleanup_function, scope_exit is a template, and saves the callable internaly (function pointer, function object, lambda) instead of using gdb::function_view. This leads to a bit more natural syntax, since there's no need to worry about lifetime of the callable. Also, being a template, there's no heap involved, unlike if we used std::function. - forward_scope_exit is new. The idea is based on Andrew's here: https://sourceware.org/ml/gdb-patches/2019-01/msg00273.html though the implementation is different, and this version ends up with a simpler user interface. - Patches #1 and #5 are new. - Patches #8 and #9 and swapped compared to the original series, and a cleanup conversion was moved between the patches. - Patch #7 removes a bit more comment than the previous version. - Series updated throughout to use scope_exit/SCOPE_EXIT/make_scope_exit/forward_scope_exit as appropriate. Pedro Alves (6): Rename ESC -> ESC_PARENS Introduce scope_exit Introduce forward_scope_exit Use forward_scope_exit for scoped_finish_thread_state Use SCOPE_EXIT in gdbarch-selftest.c Remove clear_symtab_users_cleanup Tom Tromey (11): Replace delete_longjmp_breakpoint_cleanup with a forward_scope_exit type Remove remaining cleanup from gdb/breakpoint.c Remove delete_just_stopped_threads_infrun_breakpoints_cleanup Remove make_bpstat_clear_actions_cleanup Remove cleanup_delete_std_terminate_breakpoint Remove cleanup from linux-nat.c Remove cleanup from stop_all_threads Remove remaining cleanup from fetch_inferior_event Update an obsolete cleanup comment Update cleanup comment in ui-out.h Use scope_exit in regcache.c gdb/breakpoint.c | 27 ++--- gdb/common/forward-scope-exit.h | 123 +++++++++++++++++++++ gdb/common/preprocessor.h | 2 +- gdb/common/scope-exit.h | 186 ++++++++++++++++++++++++++++++++ gdb/common/valid-expr.h | 18 ++-- gdb/gdbarch-selftests.c | 8 +- gdb/gdbthread.h | 28 +---- gdb/infcall.c | 13 +-- gdb/infcmd.c | 12 +-- gdb/inferior.h | 4 +- gdb/infrun.c | 230 ++++++++++++++++++---------------------- gdb/linux-nat.c | 18 +--- gdb/regcache.c | 34 +----- gdb/symfile.c | 24 ++--- gdb/top.c | 8 +- gdb/ui-out.h | 8 +- gdb/utils.c | 17 --- gdb/utils.h | 1 - 18 files changed, 465 insertions(+), 296 deletions(-) create mode 100644 gdb/common/forward-scope-exit.h create mode 100644 gdb/common/scope-exit.h -- 2.14.4