From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 71388 invoked by alias); 14 Sep 2016 17:46:26 -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 71344 invoked by uid 89); 14 Sep 2016 17:46:25 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 spammy= X-HELO: sessmg22.ericsson.net Received: from sessmg22.ericsson.net (HELO sessmg22.ericsson.net) (193.180.251.58) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 14 Sep 2016 17:46:15 +0000 Received: from ESESSHC003.ericsson.se (Unknown_Domain [153.88.183.27]) by (Symantec Mail Security) with SMTP id 1D.B3.02458.9DC89D75; Wed, 14 Sep 2016 19:46:02 +0200 (CEST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.27) with Microsoft SMTP Server (TLS) id 14.3.301.0; Wed, 14 Sep 2016 19:46:01 +0200 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxcz23q12-y4.dyn.mo.ca.am.ericsson.se (192.75.88.130) by AMSPR07MB392.eurprd07.prod.outlook.com (10.242.22.21) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.619.10; Wed, 14 Sep 2016 17:46:00 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH master+7.12 v2 1/3] Introduce cleanup to restore current_uiout Date: Wed, 14 Sep 2016 17:46:00 -0000 Message-ID: <20160914174548.5873-2-simon.marchi@ericsson.com> In-Reply-To: <20160914174548.5873-1-simon.marchi@ericsson.com> References: <20160914174548.5873-1-simon.marchi@ericsson.com> MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: BN6PR20CA0045.namprd20.prod.outlook.com (10.171.173.31) To AMSPR07MB392.eurprd07.prod.outlook.com (10.242.22.21) X-MS-Office365-Filtering-Correlation-Id: 6bd7ffd0-fe53-424a-728c-08d3dcc6fdc8 X-Microsoft-Exchange-Diagnostics: 1;AMSPR07MB392;2:orKn1SEjJreQflkt7KmltPDFaEMHHSnUKQhGF3VS2Js2Xq+mT1JCU824k6iL3Cv1ihcs0dPEA+vIb5zTVgbOBLPGZ9vr5yIpZPmqk4sQR8DevkEFxSz6kACWRHL7ymXdMFazzaq0+0kcbMHrfeWLGAndkM3RO0sKAkOEXkFrklPlt1D9A77ageeHkYaMi6so;3:tu+zj/agS8AJJOqYKYiUeHebkeK/YQ2Z8aaaYJ1gDfJlNs/uO5tmX4S+I5MQURGbiVHyWYTDatPLkPsVH2KdFyHyT902m6SrQP+urh5eVQnw49sOd2Lpw5JhuTQoWNwL;25:xZsPFzeQZ+6KA1b2EhTzsFFYACCmhaGdy6qcUNyOjquJwzsgSPkT3GWjIDwNRvkKwewz3bO0u2ozFRNXTPd8WNHqQR7vAzOyDWq5X4z+URaLVxJ4yI3h+As4HQX7TG3+rZsVxA+s2bSKTbBjRQ39lwOmyIJ35WsORKmRaNUvMLn2lnDqg3T64YV9ntng9iF/lex1nR3oEYmYFdSKCcMbYFUzGdhH9sYsMeOWBwM1fY0rNYZ22qzjppmP5fMeKKzg8O9oyRloMeoZXwkJ/12W1fJ07N91gGBM5Zj5KCQZeSiVYytzlra1WuJpS7/jFV72/tDv5+X38OQn2Et0x8++p1NojXFVFfmeiUFgbyfxEixKMZKNpN4jdg9pIjnlrgHE//tv5G7dS3LjYnEy+sPCYCYtE4QJShQpexJINUWqlYs= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AMSPR07MB392; X-Microsoft-Exchange-Diagnostics: 1;AMSPR07MB392;31:PzDuGWDdv65o/rQ3f9q8ZLtVAxnTOWWAUSwNINiiOd/yZaekLvhCmYPzojcr1vowx/LSSWWBwXPQ5qET52UrjyGbgcnnpmT5A9HPA8ObYX4thW+WLtn6u2PZR3WDlNqeGTbnXKhmJaKAlSHyQ/LyumX/vYwil/uduwAGE2WNRVi8FNFWug4wBrD21iV7u/aHL48sSgCD6sy3dfuuyeW7wcGyMbek33rnV6IIzomNkMo=;20:Sg5frssEjbPzvbCXQjSboAxUgfgUxjx5klOqedW3IF+/tvJ78qfdTR+MGu/+pRFcY8aiIdc2ExVC/q5+03pMGazqWUe02w1MZOtZuVRP7UqCrHrvmS6JP8seA4Z44WM0QYcZ7GSgAObqyJEzPV4POn+QD2n+ZP5/O3duNCauBWOavXkYDALHVYQ5BHCfjV0nIA0oTuVuqJ4Ag7xb9gnQo6TTwNK18i7nPEShWf9hmAcLzyRFB4CpNmMMrGhFXP5tv+GzTOijFfTSunkT30KyuVJIYr2qB8Ng0I4ZQFm9B/t+sZKV3ScvwYr3uScXRHQgYnarGzyr7MgRlt/zZZ41QFF0mAmtqXwX+lm+R51y+yb7y/Jhz9oUQVo61H4RJq2unuTZMZDJq1C67KQ2Y4fDjb3420r/CTRQO2T31sG/2QEVgcSXcuXJER5/YYAbUgnisWjJaS64BUPLnz07Mp8GF1alB7QreIUsk0sOGvXJ+OqK87EJdr3R3BnUbaDjgOEO X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:AMSPR07MB392;BCL:0;PCL:0;RULEID:;SRVR:AMSPR07MB392; X-Microsoft-Exchange-Diagnostics: 1;AMSPR07MB392;4:p4dS8c7snR8Kg5AyakHE2NZK6jLBqKMYwm8BNV3aA23iJNLUNpHkMmlXen4yFZIUfmoPUaPz81PfgLmrzM+fxDzclCOAZ/S32jrBznDVLlsw/vwPNI1cQjPM9xXiR+lYcy3qwvs7hcR/XWnKnHY0dasFW+eFSvWSHqqgJUFWmnrjd/flKP3YMWPfjKqsXfI7UrPkJtkAMPZDYZsBtQEGieI7PJ4oHeZMKCUEV43uSHRN5L+9UjwAkcExJiiFM/AEoWV4GLA9QiOfFZPuOBbjVnn8kMI7F+5vni9quZiVgwWyjVxv7aeTHtvtBKKeptrSbvo3zHiYDZ1Ts3vNWLdu1gxJhvycAK3GZsUkOIzcmVpyLAJ5Pj9jh21WmcvBd6RW0QMnMn2mTBQx/ikKjf+3UQ== X-Forefront-PRVS: 006546F32A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(199003)(189002)(54534003)(107886002)(4001430100002)(4326007)(5660300001)(2906002)(50986999)(76176999)(105586002)(33646002)(5003940100001)(42186005)(229853001)(106356001)(2351001)(189998001)(101416001)(36756003)(97736004)(7846002)(305945005)(50466002)(7736002)(48376002)(81156014)(81166006)(66066001)(2950100001)(8676002)(92566002)(68736007)(110136003)(77096005)(1076002)(6116002)(450100001)(86362001)(3846002)(586003)(50226002)(47776003);DIR:OUT;SFP:1101;SCL:1;SRVR:AMSPR07MB392;H:elxcz23q12-y4.dyn.mo.ca.am.ericsson.se;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AMSPR07MB392;23:TodTaOtOZa3rDoO7JuZYJbE4GUDZAtEoKI8WvNNHyN?= =?us-ascii?Q?9byiiZX9FU4Z6ZUEWYDgY1htBTAIY/+wg+U7R7XNrsNis2YfrNmm1j2vO9Qn?= =?us-ascii?Q?9xOQR6EjRWn8Hd510fNctBavDyF+oar49Tl8mLC/QDhC3p9KUEwIrmahvWDF?= =?us-ascii?Q?M562CULJXjtEMOpEmAKNpIYLktYYx7xYIemyLxe1kpoLuSsTomtRB+LZSLy2?= =?us-ascii?Q?8nuh4KRs1HTwgNoWAz55KYWLoYB0c35G9+xi6EL5QYbFX9HlFiHKcka2KMpo?= =?us-ascii?Q?Qqxs1ChjZLslt61lvz63hhkDA1a5lnVSY+n1YVARt6ohU82QEfe2MkAW74sy?= =?us-ascii?Q?mlgDTYqKB7vMPZj2vw6g1tpmU9z44Jm2ft4P0A1K4GbR2I+f9u91NrJrg+l2?= =?us-ascii?Q?xdn7iHcN4s+0p/1i6U7ctn5Dbw0cPQlcJJeM85okR+hwgu+QuqVdvqElxAal?= =?us-ascii?Q?dPtgA0os7XS6+gy2sceXR0bfG0EzGPas7VNHfUcllbRAJQYA5MeKSWKicYjR?= =?us-ascii?Q?ao02xeFkSDm8mfF/OzmyUpLHdfXy6rUBh/5OYuvxktCPzraXWzMxCGVKCyHn?= =?us-ascii?Q?YNqImsoDzSH/IctRRVD+4zLzkMfGgq0tQDfv2kjW+1G2j/JD1eNMYBGWMb2p?= =?us-ascii?Q?4CmQnY9TpL2BDuT0tB1q4SUnPlPaqy8oNkoFNDCYFqQCMBoas/w1tC1Hp00x?= =?us-ascii?Q?Svj65WnmRgIGKjGbsEVB34PAL1KZZtAf70VvGkfMu5oC0Wtn7UwRYGrxyAbr?= =?us-ascii?Q?08A+Doc9JiyKrpEHqKz91E+c/WdNynrs0OujMofNssSCZWiu5+kckBsNy984?= =?us-ascii?Q?J0/5p3oEXGlzBujGwFp/6MmRp+FuDSTo1ZV+MMJUTpfGCWqlfw5yNOhi0ZCk?= =?us-ascii?Q?g+A4hb8WtGY0CjhhMhqinAEf6Zk6jPpKGNHlLIYvATx55/yUrHrE3a5PTheJ?= =?us-ascii?Q?Sk9p2iXC5jYVunGa9W8Ilg7Mmr+aRyFHMTktbKoFyq3TWMEgyyZaelYh/7rn?= =?us-ascii?Q?Q5M7UX1NEPJyIWzb5Yw/fjkL6uiZgf5ELus+icH1kh6Wd3vJX9T8SilfOcDk?= =?us-ascii?Q?QLFcNADAyCvfPMNgFUo2Gao/Yu1wvv9HKsC0r8fEdqgD2TIx15Esd8NpJeQy?= =?us-ascii?Q?WNJ0Yg5idT+sO9LEFDSRs/vCzbCub0mJrLiskVFU4UaHXFZVFBSg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AMSPR07MB392;6:LF9fd1fck/1ZXTCRQ4iVWw2MQm+I3DGuORS+ZDv2Hps6rf251X1d4tF/SbGmIFHZp3o2HMPQuYMjVjhh4NvR8+i24TnHIQnaJnQHjEjJEfyRDTRcHvDfSwT3n8aNSNcxJ0QdMqzB4htJu3GZEHk6SVYvdHJb2KfQgOCVf8mHzPsJTJeWta0DCMKCjnb8rYYe1phakKdGdnJUIEXAzezpqstl20y76JAg2vbiwhEEkcp1jWU+m2ZJgmgRUOU5pk30AY4BaPxMNsKN3UGhCu3QjQ9nBrCqzUblnZND6xOCRmQ=;5:5sKAPvJU9HHEThSAKvExPfiHPNPIRyHwDYutb6M6f1BdJaU+gXdu4siQA/1AdmLB0kX1dHzDK3weK239VyVpz/xHACSlzFDiT6KmpaP12UPUdvIHI6jlTPb0zar/qqPAUgsj3tqnIaqAtAAnvXC7TA==;24:wva9UhvOHa82fRciaZtJ8duDnpRKtakCLtdiuwAh6U9ZtdQgX3wj+nsLzHG8fMF3p7bQEPPsKCzhoch5mu8ec8jKziDi6Ta9BNP6IFHCyl0=;7:qWnLHQH/tbfJi1hh7SrSNN87bJIq0VSoS6R0wdhmGSMi4Ddjfe3eY+SWBlYYW+SZKWkXw75DuxY7YDEWv6+lDf9IC5y8XOAc/s6C/L23lijwMhGK+NfqqyFcaNMusywipXKZHWoTIe0BZLBw//0sdwzKPOZPM+RjxNr3dmHGmg21sGlobxzf3WvEUucqqV1WXPOZ66m1ipeCC1y9i3HKHoZDrl18id1oMOW+bIiHgJcDOwuv2j0IelK668Ues8eS SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2016 17:46:00.3835 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMSPR07MB392 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2016-09/txt/msg00115.txt.bz2 Make a globally available cleanup from a pre-existing one in infrun.c. This is used in the following patch. gdb/ChangeLog: * infrun.c (restore_current_uiout_cleanup): Move to ui-out.c. (print_stop_event): Use make_cleanup_restore_current_uiout. * ui-out.c (restore_current_uiout_cleanup): Move from infrun.c. (make_cleanup_restore_current_uiout): New function definition. * ui-out.h (make_cleanup_restore_current_uiout): New function definition. --- gdb/infrun.c | 12 +----------- gdb/ui-out.c | 18 ++++++++++++++++++ gdb/ui-out.h | 4 ++++ 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/gdb/infrun.c b/gdb/infrun.c index 70d7a09..ec37ca1 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -8096,16 +8096,6 @@ print_stop_location (struct target_waitstatus *ws) print_stack_frame (get_selected_frame (NULL), 0, source_flag, 1); } -/* Cleanup that restores a previous current uiout. */ - -static void -restore_current_uiout_cleanup (void *arg) -{ - struct ui_out *saved_uiout = (struct ui_out *) arg; - - current_uiout = saved_uiout; -} - /* See infrun.h. */ void @@ -8118,7 +8108,7 @@ print_stop_event (struct ui_out *uiout) get_last_target_status (&last_ptid, &last); - old_chain = make_cleanup (restore_current_uiout_cleanup, current_uiout); + old_chain = make_cleanup_restore_current_uiout (); current_uiout = uiout; print_stop_location (&last); diff --git a/gdb/ui-out.c b/gdb/ui-out.c index 3972a56..ec44ab6 100644 --- a/gdb/ui-out.c +++ b/gdb/ui-out.c @@ -953,6 +953,24 @@ ui_out_destroy (struct ui_out *uiout) xfree (uiout); } +/* Cleanup that restores a previous current uiout. */ + +static void +restore_current_uiout_cleanup (void *arg) +{ + struct ui_out *saved_uiout = (struct ui_out *) arg; + + current_uiout = saved_uiout; +} + +/* See ui-out.h. */ + +struct cleanup * +make_cleanup_restore_current_uiout (void) +{ + return make_cleanup (restore_current_uiout_cleanup, current_uiout); +} + /* Standard gdb initialization hook. */ void diff --git a/gdb/ui-out.h b/gdb/ui-out.h index 9e1e74d..6a4d78a 100644 --- a/gdb/ui-out.h +++ b/gdb/ui-out.h @@ -247,4 +247,8 @@ extern void ui_out_destroy (struct ui_out *uiout); extern int ui_out_redirect (struct ui_out *uiout, struct ui_file *outstream); +/* Make a cleanup that restores the previous current uiout. */ + +extern struct cleanup *make_cleanup_restore_current_uiout (void); + #endif /* UI_OUT_H */ -- 2.9.3