From patchwork Mon Nov 27 13:53:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 24550 Received: (qmail 130010 invoked by alias); 27 Nov 2017 13:54:11 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 129915 invoked by uid 89); 27 Nov 2017 13:54:10 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KB_WAM_FROM_NAME_SINGLEWORD, SPF_PASS autolearn=ham version=3.3.2 spammy=H*i:sk:1511790, H*MI:sk:1511790, H*f:sk:1511790 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; Mon, 27 Nov 2017 13:54:03 +0000 Received: from ESESSHC007.ericsson.se (Unknown_Domain [153.88.183.39]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id 91.1E.19528.8F81C1A5; Mon, 27 Nov 2017 14:54:00 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.39) with Microsoft SMTP Server (TLS) id 14.3.352.0; Mon, 27 Nov 2017 14:53:57 +0100 Received: from elxacz23q12.ca.am.ericsson.se (192.75.88.130) by AM3PR07MB306.eurprd07.prod.outlook.com (2a01:111:e400:881b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.282.3; Mon, 27 Nov 2017 13:53:56 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 2/2] Remove xmethod_worker::clone Date: Mon, 27 Nov 2017 08:53:37 -0500 Message-ID: <1511790817-27382-2-git-send-email-simon.marchi@ericsson.com> In-Reply-To: <1511790817-27382-1-git-send-email-simon.marchi@ericsson.com> References: <1511790817-27382-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: DM5PR1101CA0006.namprd11.prod.outlook.com (2603:10b6:4:4c::16) To AM3PR07MB306.eurprd07.prod.outlook.com (2a01:111:e400:881b::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2b41a914-7248-43d9-0b37-08d5359e4ddb X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603258); SRVR:AM3PR07MB306; X-Microsoft-Exchange-Diagnostics: 1; AM3PR07MB306; 3:doLLGL6spt5+qi+wk7Al6fLxD/Ftsk3OZVQav0GQZ8cefSXPgd8W1H5Go6PSUmmlT6Z7QziFSozzofTQJy1Y9lMaLh6V/pGp+ESDQaIrvRx/Wq6iKz2R7XVXWg9TcedJdUPJLkdkj3NIieYJ2aPK5KxO3LHWZWxC6L0RPD6R/FiEdxtesSrOia0J6y3lv7ZTKMdKF8X/+Jy4ZkHPikpG5n1wjAskxkWLhhY1BltaXogENFRaoz66NZ/Wo6Rg2ZgG; 25:yMv/QAt1eS1CTXZRBSVqjJFXl7f65BYB4eIHEyq/72x0SDVx6we4nI4hdZBfvDFZ/T0dUxTZDmq8jmzKRHCQHmGSnSFgxXNhm4KFDNx+oFZfJwiY7JJc0fcyrtIxoR3B796EJaEunXv0sL3MVplO7V702TGE+ymlaWJ5PwfZNnY51qwUTG/MPnKGG3U1QXQ8PNm5LIlAk0LkTJB0Ji5sQqBB7WAfTkrOCzPBcWQ/r+ArPCm67Zqc5XZ9CvGDSIk42uNSUJxF+tumFxmnJM8XM4DO5rejypONxfDkG8pQvTQ+2U1qKOjg93bPQH3f9zQU/wzDWtK8DkQrcAMKZkVI9A==; 31:/QfDvAzjl49KFiqGbchu5hS1Q5O8A5BX5Z51GRRU+B8x5kY1+QCg8MNVA79p2lSv2gQ0QEA3XbITtHxQYN1pXwGTBs9k0Cx74cPN7SX/M+Z6pzFy53m41A+Ccx669mHNo8d0A3eMPl4dG9vWy4zUqz49pUiYZYbxejkevGdFAnEDYVIu3IhL0rhdzAyWzwNtM3i7bZc/P6qYnWt5H2jl6tS+RXjAEaugFfr54g2I5Kk= X-MS-TrafficTypeDiagnostic: AM3PR07MB306: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; X-Microsoft-Exchange-Diagnostics: 1; AM3PR07MB306; 20:AE/2Wi6EHaV04GRllmf5Jb/LUShLx5j+d7da6emL08Nm72kw6bjvQEjt8fM9a4natdLLwiB9tjFxPVnBKYCIyyalmUy+VaCRXI9lxV+IPSRUC3jmX3Kr7CloXoRC9IBBFbTbsOz9lvjcf2ijypozIIRu6ny4Eoy6EkuQD3IY6zGK9lRab5gL2ulGRDZGxS1sCCuf0x3k9iwFdLA7z3CEDj+2rNMQb2VnzStjOo2ULrfseNuxmruZGSBe5t3YghxCjiW2SffHgXcavdoPLjqSlnCbiiSyBzzgWBoQP68j23qD8RnERkv5YELaG7Kkc+k/fzv6DWvc5nz8wsyAWVcPH/tfYcrEHViGWKeGIo+/epthOmKTE3y7hDsF5mh/SY+D+/pTxFacRfZYqpw7ehAl5rsIOTF7XejubrDNW1FJnaZ8v1T3h5xL+76+az9uGxpgT4q1zJ74ODt8dSWnSAwVd7R5Gru2cF5suUm8/syHtGFBjC2jR9d1WKo6OtWloaK2; 4:76oZx6I2JESN4OKP/5pPmJQR4L5Xt0ZKeb8T6168L2jQFCzQVqhH8DP+/pGnojTSJbN9qVXcNbfWtGDr82MTtpFWAOssXAfBgfkjghjExA5sJhV4uSLmh0AGp6mvbR0DqeQvXMRo3UrJnbglT19k3qgu60p1RmkIcS+t4SQ6hM47D32eQGxDrvBskEFPbZS9BOvYiT6FlnOo+HkTub6pQD2XW8FMSMDomlH6aJ8Pc8DxWRD+T2Fx8SXBwNUCHcVrYD6DRvhKarGNwWB0fSZNfMyobf4KvDW9/gfVb4y8lGE/A2BK9MbYfaW5Qt5hteVE X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231022)(3002001)(10201501046)(6041248)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(20161123558100)(6072148)(201708071742011); SRVR:AM3PR07MB306; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM3PR07MB306; X-Forefront-PRVS: 0504F29D72 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(366004)(376002)(39860400002)(346002)(54534003)(199003)(189002)(51444003)(575784001)(478600001)(2950100002)(101416001)(53936002)(6512007)(16586007)(316002)(305945005)(51416003)(7736002)(52116002)(25786009)(6486002)(6506006)(97736004)(6666003)(16526018)(4326008)(68736007)(76176999)(105586002)(33646002)(106356001)(50986999)(47776003)(2361001)(8936002)(2351001)(86362001)(36756003)(66066001)(81166006)(81156014)(6116002)(3846002)(6916009)(50466002)(48376002)(8676002)(5660300001)(50226002)(2906002)(189998001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM3PR07MB306; H:elxacz23q12.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; AM3PR07MB306; 23:5y/PMDI1OHyVTuOswUuAIQr61ehWd6FbaXv6+b1VWN?= =?us-ascii?Q?PZ972Bh9+zKyKhodDZIUV+VaMcKyN3esHIn4ZYGUrrwIphaZBlsxXeCc5rEq?= =?us-ascii?Q?ZaMXk6rBUCHfTF5ZcWpvlNJ0MOKSIBHnFQ2h4z+iAdDt/t2k65cYW60Kk9K7?= =?us-ascii?Q?gnFI6ngRljuLblBJlPi4c8R3waXqg8Ut1SILGkbzj5pesF58pvLjT3IoFNNG?= =?us-ascii?Q?eRlbLc1UvMzJSmsNKO3J2HwVqscUgmgT47nE0Sq1VTpOmbZN5XdftB50Hvdg?= =?us-ascii?Q?eiiVoYXKo/10RIJSHY7s4XhSe4fcO3TM++7CCGmwPYa2uMT6LmiJNhFDdonU?= =?us-ascii?Q?aZbvY5XEQeje1mr8WCHsOidlxazEh1flS1Qo0KvyIsX93IX/IFyaIh6emCGs?= =?us-ascii?Q?ReAakKvYWqqQjsQUZ2U94q53VPEAKKovrqUZpGY3u5ej1dg6y53mwXXxhyX+?= =?us-ascii?Q?/Y6Ydz16qrzI0r4T+qVDQ3AFGmgwF+AUGauZGEdcOd1grnbU+feNLLE34t/L?= =?us-ascii?Q?2IWbXS2QuiX5JibTGwwmrmx/RHzT+7Ds5xusuR61AC1ZRQwbNsPfvZIoZrSi?= =?us-ascii?Q?drJzkG1ixAjKcRQhNFR+T+OVgGivKsKIfHHnRW7RSqKP6StAJq53WOILy99B?= =?us-ascii?Q?f28YGsQYPwFdcTFGO+crfkjxBhp5eLbwGOV9gNB/L18eeCw5/Jj/l4hpKow1?= =?us-ascii?Q?iU8BQqsk7EZqu4TaNGzQgZyYbwt61M5oYB8/doK1ewTsb4GgombqdN3Z6jHp?= =?us-ascii?Q?tzt/POGZ1KDLudYsN+hPXFE0Fiag+jmgWDEHMWnYhL3DrXFe/cYWc4pAW0TT?= =?us-ascii?Q?zNvJmMA4i45cw9FIPGxarmRcHUoi+YB1qRxKnx9XlHA4JKfYrdkF1/O+i0hl?= =?us-ascii?Q?1/WFUOq2LWOXZ2Xe70tCf8wtbqn1FNg9dh1bwZqeFDcn8tWVUwbgPLkj+jeu?= =?us-ascii?Q?YkfMBpChZ+J8Aioe/weSvbCXbiwPWQY6t8CXDOz7GVfR2Y12VLu2h/r855Uf?= =?us-ascii?Q?nEJUZJtvZLPdaLsgYf9ZApPUr4jkQruX/oU+Jvq7ZMD8iPjitSVwkX9JDrRd?= =?us-ascii?Q?XQB6068PPWsxk7s9lqXbi4Fz/mDFVycTCss4xydo9EmOpv8kMDR6MZw1Dl1W?= =?us-ascii?Q?FZWVqEbjgl83P4uWlhQ9g7m2Ic7agTpRnfYanQ/WVjOuK+CvBMrCIzkmuoaM?= =?us-ascii?Q?STJ50L7zsYXmj70/8DJVUxpH5dpXExa+dYu92ileHMaFHrNZNEMIhlgg=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; AM3PR07MB306; 6:lJnRL9rpESMDi49zXl1sj91FG6QKTOc+7+kOxgN8/T8Re4HDsP8j598+Ml3xUIvaw9tmhG2rxdLLYIdbdux2A7wjZD+dH0dyKjI34JPn5rcgyB7t+ZAHCI98yITRh6+j06gmgYT/FbcGib46UBKERFY/+Scfz9S3V66yGcDZl6UVfVWIecsyvnEksspM7Ji8Qc84+Lh6YFVn8KYE2eo5X3/vw+5MJNLDNaZrRterWRc6q17iL6GVWh8HgzMe5l2BTlwVsmVx4WvfNaSvXdQlfEx5eYSeEQ5bdq60Xt/PCaTjQFOkatZpNa19pwCQlVAR7APzf7gogqbyxqBIR1Rkgc7+Z5M8vkx8pMZnBIzYP2U=; 5:rrWzoyjZcUdTXaY2bxSXcsjsMTuc8qfLKn0ERT32OBB/fQh5wn0+DjAP7N8n3qstowTMDLUV5bMfBrv0zbNuxIW4/PriCNnnc3tTkVqXv6XE0jigRcRj8utQ96Z6tQ6z66Drx/uiJ4CeH/Mzor7bmoyaizQsOnvynIzK3phf4Vg=; 24:YU/VBSIO55bCFWezl1oXnQXZ4n38/y4GaEL1nYZO/ZuoFh3CeWyRxYdVc89jXWBTMWhxGO8hpFJqOMetkDZh4hZXbrk7EV5//W+DJuKWeuk=; 7:+XcK4NlMGYwVHqDT+74BfzEAcT8paHuRGy+rY7QnHnNcaZ29mCIpw7TaDJlH0+xKsl3nC3YwRS6aYoA538+0/h/o++Mc8nVMk9artOHP7gjfWQOid7icauVQ+CvuwBEjGd4meQ/dmw9b+EWeFiwzULHSU1jodTq2z/g4h3z1Zhj32qydE72nUZxLdZfGRvdOwqD4JQPnmmjAC2ZjlSdMpqZQbt75uE/QRRnUzCTefMqj4iBuO+1CAVFEbc+/4gbo SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2017 13:53:56.4005 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2b41a914-7248-43d9-0b37-08d5359e4ddb X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR07MB306 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes From: Simon Marchi I think that the clone method of xmethod_worker can be removed. It is only used in find_overload_match, to clone an xmethod we want to keep. Instead, we can just std::move it out of the vector and into value_from_xmethod. value_from_xmethod creates a value that will own the xmethod_worker from that point. Other xmethod_workers left in the vector will get destroyed when the vector gets destroyed, but the chosen one will keep living inside the value struct. gdb/ChangeLog: * extension.h (struct xmethod_worker) : Remove. * python/py-xmethods.c (struct python_xmethod_worker) : Remove. (python_xmethod_worker::clone): Remove. * valops.c (find_overload_match): Use std::move instead of clone. --- gdb/extension.h | 7 ------- gdb/python/py-xmethods.c | 17 ----------------- gdb/valops.c | 2 +- 3 files changed, 1 insertion(+), 25 deletions(-) diff --git a/gdb/extension.h b/gdb/extension.h index e1f26ac..ebdcb34 100644 --- a/gdb/extension.h +++ b/gdb/extension.h @@ -182,13 +182,6 @@ struct xmethod_worker virtual value *invoke (value *obj, value **args, int nargs) = 0; - /* Clone this worker, returns a new but identical worker. - The function get_matching_xmethod_workers returns a vector of matching - workers. If a particular worker is selected by GDB to invoke a method, - then this function can help in cloning the selected worker. */ - - virtual std::unique_ptr clone () = 0; - /* Return the arg types of the xmethod encapsulated in this worker. An array of arg types is returned. The length of the array is returned in NARGS. The type of the 'this' object is returned as the first element of diff --git a/gdb/python/py-xmethods.c b/gdb/python/py-xmethods.c index 6d839c5..31d0bda 100644 --- a/gdb/python/py-xmethods.c +++ b/gdb/python/py-xmethods.c @@ -48,10 +48,6 @@ struct python_xmethod_worker : xmethod_worker value *invoke (value *obj, value **args, int nargs) override; - /* Implementation of xmethod_worker::clone for Python. */ - - xmethod_worker_up clone () override; - /* Implementation of xmethod_worker::do_get_arg_types for Python. */ ext_lang_rc do_get_arg_types (int *nargs, type ***arg_types) override; @@ -80,19 +76,6 @@ python_xmethod_worker::~python_xmethod_worker () Py_DECREF (m_this_type); } -/* See declaration. */ - -xmethod_worker_up -python_xmethod_worker::clone () -{ - /* We don't do much here, but we still need the GIL. */ - gdbpy_enter enter_py (get_current_arch (), current_language); - - xmethod_worker *worker = new python_xmethod_worker (m_py_worker, m_this_type); - - return xmethod_worker_up (worker); -} - /* Invoke the "match" method of the MATCHER and return a new reference to the result. Returns NULL on error. */ diff --git a/gdb/valops.c b/gdb/valops.c index f9f9439..32dc083 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -2778,7 +2778,7 @@ find_overload_match (struct value **args, int nargs, } else *valp = value_from_xmethod - (xm_worker_vec[ext_method_oload_champ]->clone ()); + (std::move (xm_worker_vec[ext_method_oload_champ])); } else *symp = oload_syms[func_oload_champ];